来看一个小例子:
public class Test{
public static void main(String[] args){
Integer i1 = 100;
Integer i2 = 100;
System.out.println(i1==i2);
}
}
/*
public class Test{
public static void main(String[] args){
Integer i1 = 200;
Integer i2 = 200;
System.out.println(i1==i2);
}
}
*/
结果前者为true,后者为false,这有点令人惊讶,两个例子语法完全一样,只不过改了个数值而已,结果却相反,其实这与==运算符的比较有关,==操作符既可以用来比较两个基本数据类型的变量值是否相等,也可以用于判断两个对象变量名称是否引用至同一个对象.在jdk5.0开始,有了自动装箱这个功能,对于值从-128到127之间的值,它们被装箱为Integer对象后,会存在内存中被重用,所以上面的第一个例子使用==进行比较时,i1和i2实际上引用至同一个对象,结果返回true,如果超出此范围,被装箱后的Integer对象并不会被重用,即相当于每次装箱时都新建一个Integer对象,所以后面的例子使用==进行比较时,i1和i2引用的是不同的对象.如果使用"i1.equals(i2)"那就是返回true了.我们使用自动装箱和拆箱功能时一定要小心.
分享到:
相关推荐
3. **自动装箱与拆箱**:JDK 5.0中,原始类型(如int)与对应的包装类(如Integer)之间可以自动进行装箱(将原始类型转换为对象)和拆箱(将对象转换为原始类型)操作,简化了代码编写。 4. **可变参数(Varargs)...
总结来说,JDK5.0是Java发展中的关键版本,引入了泛型、枚举、自动装箱/拆箱等新特性,极大地简化了编码。正确下载、安装并配置JDK5.0后,就可以开始愉快的Java编程之旅,而"HelloWorld"则是学习任何编程语言的第一...
2. **自动装箱与拆箱**:在JDK5.0之前,基本类型与对应的包装类之间需要手动进行装箱和拆箱操作。JDK5.0引入了自动装箱,使得基本类型与对象之间的转换更加便捷,如Integer i = 10;自动将int转换为Integer对象。 3....
在JDK 5.0中,引入了一个非常实用的功能——自动装箱和自动拆箱,这极大地方便了开发者在处理基本数据类型和它们对应的封装类之间的转换。以前,我们可能需要手动将一个`int`类型转换成`Integer`,或者反过来,但...
3. **自动装箱与拆箱(Autoboxing and Unboxing)**:JDK 5.0引入了自动装箱和拆箱功能,使得基本类型与对应的包装类之间可以自动转换,简化了代码。例如,int和Integer可以无缝切换。 4. **增强的for循环...
JDK 5.0简化了基本类型与对应的包装器类型之间的转换,引入了自动装箱和拆箱机制。这意味着开发者不再需要手动进行如Integer i = new Integer(5); 这样的转换,可以直接写作Integer i = 5;。 四、变量注解...
在JDK 5.0中,你可以为局部变量提供一个初始值,即使这个变量在声明时没有被初始化,但必须确保它在使用前被赋予一个值。 7. **静态导入(Static Import)** 静态导入允许将类的静态成员引入到当前作用域,这样...
Java JDK 5.0是Java发展历程中的一个重要里程碑,它引入了许多新特性,极大地提升了开发效率和代码质量。..."良葛格Java JDK 5.0学习笔记"这份资料应该会详细解释这些概念,为初学者提供宝贵的参考资料。
2. 自动装箱/拆箱(Autoboxing and Unboxing):自动装箱允许基本数据类型与对应的包装类之间进行无缝转换,简化了代码,提高了编写效率。 3. 枚举类型(Enums):JDK5.0引入了枚举类型,使得常量的定义更加规范,...
JDK5.0是Java开发的一个重要里程碑,它引入了11个主要的新特性,极大地提升了编程效率和代码安全性。以下是对这些特性的详细说明: 1. 泛型(Generic) 泛型的引入是为了解决类型安全问题,避免在运行时进行不必要...
自动装箱和拆箱是Java 5.0为了简化编程而引入的特性。它使得基本类型(如int)与对应的包装类(如Integer)之间可以自动转换。这意味着开发者不再需要手动调用如Integer.valueOf()或intValue()这样的方法。 四、可...
2. **自动装箱与拆箱**:JDK 5.0引入了自动装箱和拆箱机制,简化了基本类型与包装类之间的转换。这意味着你可以直接将一个int赋值给Integer对象,反之亦然,而无需手动调用对应的包装或解包方法。 3. **枚举类型...
Java 5.0引入了自动装箱和拆箱特性,使得基本类型和其对应的包装类之间可以无缝转换。例如,int和Integer之间的转换无需手动进行Boxing(包装)和Unboxing(拆箱)操作。 四、变量注解(Annotations) 注解是一种元...
2. **自动装箱/拆箱**:在JDK 5.0中,Java引入了自动装箱和拆箱功能,使得基本类型与对应的包装类之间可以无缝转换,提高了代码的可读性和简洁性。 3. **枚举类型**:枚举是Java中一种新的数据类型,用于定义一组...
2. **自动装箱与拆箱**:之前,基本类型和对应的包装类之间需要手动进行装箱和拆箱操作,而JDK 5.0引入了自动装箱,使得基本类型与对象之间可以无缝转换。 3. **枚举类型(enum)**:在JDK 5.0之前,Java中的枚举...