/*
JDk5.0新特性:
以下的特性适合JDK1.5版本以后的,包括1.5
自动装箱(auto_boxing)和自动拆箱(auto_unboxing)是程序编译阶段的概念,和程序运行无关
主要目的是为了方便程序员的编码
*/
public class fuck8{
public static void main(String[] args){
//JDK 5.0以前
Integer i1=new Integer(10);//装箱
int i2=i1.intValue();//拆箱
//JDK 5.0以后
Integer i3=10; //自动装箱
int i4=i3; //自动拆箱
//Integer是引用类型,变量保存的是内存地址
//比较是否相等应该用equals方法,比较的时候会自动重写Object中的toString方法
//如果数据是在(-128~127)之间,java中引入了一个"整形常量池",在方法区中
//i3,i4保存的都是数据在常量池中的内存地址,当然一样
//这个程序不会在堆中创建对象,会直接从整形常量池中拿
Integer i3=127;
Integer i4=127;
System.out.println(i3==i4);
Integer i5=128;//等同于 Integer i5=new Integer(128);
Integer i6=128;//等同于 Integer i6=new Integer(128);
//这个程序会创建对象,new了两次内存地址不一样
System.out.println(i5==i6);
}
}
JDk5.0新特性:
以下的特性适合JDK1.5版本以后的,包括1.5
自动装箱(auto_boxing)和自动拆箱(auto_unboxing)是程序编译阶段的概念,和程序运行无关
主要目的是为了方便程序员的编码
*/
public class fuck8{
public static void main(String[] args){
//JDK 5.0以前
Integer i1=new Integer(10);//装箱
int i2=i1.intValue();//拆箱
//JDK 5.0以后
Integer i3=10; //自动装箱
int i4=i3; //自动拆箱
//Integer是引用类型,变量保存的是内存地址
//比较是否相等应该用equals方法,比较的时候会自动重写Object中的toString方法
//如果数据是在(-128~127)之间,java中引入了一个"整形常量池",在方法区中
//i3,i4保存的都是数据在常量池中的内存地址,当然一样
//这个程序不会在堆中创建对象,会直接从整形常量池中拿
Integer i3=127;
Integer i4=127;
System.out.println(i3==i4);
Integer i5=128;//等同于 Integer i5=new Integer(128);
Integer i6=128;//等同于 Integer i6=new Integer(128);
//这个程序会创建对象,new了两次内存地址不一样
System.out.println(i5==i6);
}
}