Tag: 类型

将大量小文件读入内存的最快方法是什么?

我需要在每个服务器启动时读取~50个文件,并将每个文本文件的表示放入内存中。 每个文本文件都有自己的字符串(这是用于字符串持有者的最佳类型?)。 将文件读入内存的最快方法是什么?保存文本的最佳数据结构/类型是什么,以便我可以在内存中操作它(主要是搜索和替换)? 谢谢

Javagenerics和varargs

我想用generics和varargs实现一个函数。 public class Question { public static void doNastyThingsToClasses(Class parent, Class… classes) { /*** something here ***/ } public static class NotQuestion { } public static class SomeQuestion extends Question { } public static void main(String[] args) { doNastyThingsToClasses(Object.class, Question.class, SomeQuestion.class); // OK doNastyThingsToClasses(Question.class, SomeQuestion.class); // OK doNastyThingsToClasses(Question.class, Object.class, SomeQuestion.class); // compilation failure } } […]

Java中的数字是否有默认类型

如果我写这样的东西 System.out.println(18); 哪种类型有’18’? 是int还是byte ? 或者它没有类型吗? 它不能是int,因为这样的东西是正确的: byte b = 3; 这是不正确的: int i = 3; byte bb = i; //error! 编辑:我想我在Assignment Conversion的规范中找到了正确的部分: 常量的编译时缩小意味着代码如下: byte theAnswer = 42; 被允许。 如果没有缩小,整数文字42的类型为int的事实意味着需要转换为字节: byte theAnswer =(byte)42; //允许施放但不是必需的

Java中generics参数类的反映?

想象一下以下场景: class MyClass extends OtherClass{ String myName; //Whatever } class OtherClass { T myfield; } 我正在使用特定的reflection分析MyClass (MyClass.class).getDeclaredFields() ,在这种情况下,我将获得以下字段(和类型,使用字段的getType()): myName –> String myField –> T 我想获得T的实际类型,由于扩展符号中的显式“字符串”,它在运行时已知,如何获取myField的非遗传类型? 编辑决议: 似乎答案是“你不能”。 对于那些以后可能会看到这个问题的人,我建议使用Jackson(我试图这样做来生成JSON)并以这样的方式注释你的类和字段,以便jackson知道inheritance层次结构并且可以自动地做什么建议的正确答案如下。

generics,类型参数和通配符

我试图理解javagenerics,它们似乎很难理解。 例如,这很好…… public class Main { public static void main(String[] args) { List list = null; method(list); } public static void method(List list) { } } ……就这样…… public class Main { public static void main(String[] args) { List<List> list = null; method(list); } public static void method(List list) { } } … 和这个 … public […]

是否可以在Java中使用基本类型(int)作为generics类型?

具体来说,使用SortedMap<Vector, int>我得到“在此( int )标记之后预期的维度”。 帮帮我!

为什么byte + = 1编译但是byte = byte + 1不是?

如果我有一个字节变量: byte b = 0; 为什么以下工作: b++; b += 1; // compiles ……但这不是吗? b = b + 1; // compile error 编译器首先将其理解为byte ,将第二个理解为int吗 [编辑] 我知道施法,但我想提请你注意b++, b += 1 and b = b + 1 我认为它们是平等的,为什么编译器会有所不同? 有什么区别 b += 1 and b = b + 1 ?

Java Raw Type和generics交互

如果我有一个Stack类 class Stack {} 现在,如果我这样做: 1) Stack s = new Stack() 2) Stack s = new Stack() 3) Stack s = new Stack() 谁能解释我这些互动(通用原始)会导致什么? 主要是我对第1点的疑问。事实上,如果我这样做,那么它是不安全的,因为该堆栈可以存储除Integer之外的其他类型。 是的,但是如果我有一个push方法并尝试存储除Integer以外的值,那么编译器会阻止我…所以当我有不安全的操作时?