Board logo

标题: 深入【Java】底层细节知识点(6)int和Integer的区别 [打印本页]

作者: look_w    时间: 2018-12-15 13:18     标题: 深入【Java】底层细节知识点(6)int和Integer的区别

intI
nteg
er


基本区别:
深入比较:
package com.nuc;public class Demo {    public static void main(String[] args) {        Integer i1 = new Integer(1);        Integer i2 = new Integer(1);        Integer i3 = 1;        Integer i4 = 127;        Integer i5 = 127;        Integer i6 = 128;        Integer i7 = 128;        int i8 = 1;        //1、直接比较时,比较两者的地址,每次new生成的都是新的对象        System.out.println(i1==i2);//false        //2、integer和int比较时会自动拆箱转换为int类型,然后比较两者的值        System.out.println(i1==i8);//ture        //3、非new生成i3指向的是java常量池的对象,new是新生成的        System.out.println(i1==i3);//false        //4、127和128问题,JavaAPI中对Integer定义:在-128到127(含)之间的数会缓存,只存在一个对象中,即在此创建只是从缓存中取            //超过这个每次创建就会new,即产生新的对象        System.out.println(i4==i5);//true        System.out.println(i6==i7);//false    }}
以上是测试结果




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0