mak*_*chi 5 java performance coupling
这实际上与我之前提到过的一个问题有关,但我还是留在这个细节上.我只限于Java 1.4,我想将int
类型转换为Object
.我真的需要使用一个Integer
类对象,或者有一种直接投射它的方法(在1.4中没有自动装箱).这种"手动装箱"的成本是否值得将整个类从第3层导入第1层,从而增加耦合?
在Java 1.4中没有简单的方法将原语转换为基于对象的双胞胎,但是有一种缓慢而快速的方式.new Integer(int)
很慢,Integer.valueOf(int)
很快.所有其他数字类型也是如此.
在Java 5中,您不需要太多代码,但在内部,编译器将valueOf()
在您使用自动装箱时为您插入一个调用.
在 Java 1.4 环境中,您无法将 int 强制转换为对象,因为它不是对象。
Java 区分原始类型和引用类型。int 是一种原始类型。布尔型、字节型、字符型、短型、长型、浮点型和双精度型也是如此。
引用类型的值是对某个对象的引用。“Object”是所有对象的根类。
在 Java 1.5 及更高版本中,自动装箱将导致第二个变量指向与原始变量具有相同值的 Integer 对象i
。
int i = 99;
Object o = (Object) i;
Run Code Online (Sandbox Code Playgroud)