我是靠谱客的博主 火星上吐司,最近开发中收集的这篇文章主要介绍java中Integer判断相等==大坑,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Integer integer = 127;
Integer integer2 = 127;
System.out.println(integer == integer2); //ture 
Integer integer = 128;
Integer integer2 = 128;
System.out.println(integer == integer2); //false 

原因在于Integer类中有一个静态内部类IngeterCache,里面定义了一个Integer[],虚拟机初始化Integer类时默认从-128到127的Integer类型的对象都初始化到这个数组里了,只要是在-128到127的Integer类型的对象都是从这个数组中获取的,所以用“==”判断是true,超出这个范围会重新new一个Integer类型的对象,用“==”判断是false。

Byte、Short、Integer、Long包装类型都是类似设计,Character包装类也是类似设计,不同的是Character中数组的封装范围从0到127。

注意:Integer类型对象判断相等不是用“==”而是用equalse()方法。

 

最后

以上就是火星上吐司为你收集整理的java中Integer判断相等==大坑的全部内容,希望文章能够帮你解决java中Integer判断相等==大坑所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部