【IT168 技术文档】
自JDK1.0开始就存在包装器类,但是在JDK5.0之前,必须手工地插入打包和拆包的代码.JDK5.0中就有了自动打包功能,但在5.0中自动打包时存在一些差异,刚才看《java核心技术第7版》时才发现.
代码1:
Integer a=1000;
Integer b=1000;
System.out.println(a==b);//false
Integer a=100;
Integer b=100;
System.out.println(a==b);//true
Integer a=new Integer(100);
Integer b=new Integer(100);
System.out.println(a==b);//false第一段代码不成立,而第二段代码成立的原因是:自动打包
自动打包规范要求boolean,byte,char≤127,介于-128→127之间的short和int被包装到固定的对象中.
打包和拆包是编译器认可的,而不是虚拟机,编译器在生成类的字节码时,插入必要的方法调用,虚拟机只是执行这些字节码。
第三段代码不用多说肯定不成立.