标题:
深入【Java】底层细节知识点(6)int和Integer的区别
[打印本页]
作者:
look_w
时间:
2018-12-15 13:18
标题:
深入【Java】底层细节知识点(6)int和Integer的区别
六
、
i
n
t
和
I
n
t
e
g
e
r
的
区
别
基本区别:
(1)Integer是int的包装类;int是基本数据类型;
(2)Integer变量必须实例化后才能使用;int变量不需要;
(3)Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ;
(4)Integer的默认值是null;int的默认值是0。
深入比较:
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