Java 1.4:将原始类型转换为Object(耦合与性能?)

时间:2011-03-16 14:07:16

标签: java performance coupling

这实际上与我之前提出的一个问题有关,但我对这个细节不以为然。我受限于Java 1.4,我想将int类型转换为Object。我是否真的需要使用Integer类对象,或者有一种直接转换它的方法(1.4中没有自动装箱)。这种“手动装箱”的成本是否值得将整个类从第3层导入第1层,从而增加耦合?

2 个答案:

答案 0 :(得分:9)

在Java 1.4中没有简单的方法将原语转换为基于对象的双胞胎,但是有一种缓慢而快速的方式。 new Integer(int)速度很慢,Integer.valueOf(int)很快。所有其他数字类型也是如此。

在Java 5中,您不需要太多代码,但在内部,编译器会在您使用自动装箱时为您插入valueOf()的调用。

答案 1 :(得分:4)

在Java 1.4环境中,不能将int转换为Object,因为它不是Object。

Java区分基本类型和引用类型。 int是基本类型。 boolean,byte,char,short,long,float和double也是如此。

引用类型的值是对某个对象的引用。 “对象”是所有对象的根类。

在Java 1.5及之后,自动装箱将引导第二个变量指向一个与原始变量i保持相同值的Integer对象。

    int i = 99;
    Object o = (Object) i;