Java中Integer与int对比的一些坑
Integer与int类型的关系“ 需要注意的是Integer里面默认的缓存数字是-128-127,
int跟int比较int数据类型,都是在栈内存中存储,如果这个数字在栈内存中存在就会直接指向这个内存地址,如果不存在,就会重新开辟内存空间,所以int和int类型的比较,相同的值不会存在内存不等的情况 八个基本数据类型不能看作对象(这点很特殊),存放在栈中。栈内操作速度快,创建销毁很容易 int跟Integer比较会自动拆箱,变成int与int对比 Integer跟Integer比较上面提到Integer里面会有缓存数字
实战int a = 200; Integer b = 200; System.out.println(a == b);//会自动拆箱 Integer c = 100; Integer d = 100; System.out.println(c == d);//在Integer缓存范围内,对比的是值 c = 200; d = 200; System.out.println(c == d);//超出Integer缓存范围,对比的对象的内存地址 输出结果: true true false (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |