java基础之Integer和Long对象相等比较 .
来源:互联网 发布:端口135 139 编辑:程序博客网 时间:2024/05/29 17:52
public static void main(String[] args) {
Integer a = new Integer(3);
Integer b = new Integer(3);
System.out.println(a==b);
Integer c = 129;
Integer d = 129;
System.out.println(c==d);
Integer e = 127;
Integer f = 127;
System.out.println(e==f);
Long h = 128L;
Long g = 128L;
System.out.println(h==g);
Long k = 127L;
Long m = 127L;
System.out.println(k==m);
}
输出结果:
false
false
true
false
true
////////////////////////////////////////////////////////////////////
a和b在堆中分别分配了两块内存区域所以二都不等很好理解,而c和d不等,然后e和f却相等呢?查看Integer源代码后发现Integer有个内部类IntegerCache,它维护了一个Integer数组cache[] ,长度为256,还有一个静态块
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Integer(i - 128);
}
很明显这个静态块已经默认认创建出了-128~127 的 Integer 数据,因此Integer在创建对象时,若值在(-128到127)范围内,则直接从缓冲区中取,若超过该范围则创建新对象,因此在-128到127范围内Integer对象值相同时,对象==返回true,Long对象同理。
- java基础之Integer和Long对象相等比较
- java基础之Integer和Long对象相等比较 .
- java基础之Integer和Long对象相等比较 .
- java之Integer类相等比较
- 1.00 【基础知识之基础类型】 JAVA中Long与Integer比较容易犯的错误
- Java常见问题之引用相等性和对象相等性
- Long型相等比较
- 比较一个对象list中的id值和List<Integer>的值是否相等
- Integer陷阱(0~127和其他 数值相等对象比较)
- integer 类型比较相等
- Integer Long大小比较
- java基础中Integer值用==和equals判断相等问题解析
- 【Java】Integer变量相等(==)比较问题
- java基础Integer与Integer比较
- java编写比较对象相等equals方法
- java比较自定义对象相等的方法
- Integer比较是否相等问题
- java中int和integer比较,integer和integer比较
- Agile Tour 2013大连站组织者、志愿者招募
- 文本文件搜索小工具
- [设计模式笔记]二. 结构型模式--12.Flyweight模式(享元模式)(二)
- python测试框架及应用
- ABAP 程序中退出操作(CHECK, EXIT, RETURN, LEAVE PROGRAM...)
- java基础之Integer和Long对象相等比较 .
- 【原始对偶费用流ver2.0】hdu4744
- Linux的运行模式
- JSP 文件上传下载系列之二[Commons fileUpload]
- cocos2d-x面试题
- HIVE再次尝试 用 Mysql 环境搭建 以及 mysql中文乱码完美解决
- VC++ 求绝对值函数abs、labs和fabs介绍
- 关于IN UPDATE TASK
- VT码