博客园站长
这是人类成长进步中记录的每一时刻
posts - 717,comments - 69,views - 156万

理论:

1
2
3
IntegerCache 缓存
JAVA的Integer有IntegerCache会缓存-128~127之间的对象。
如:Integer x = 100,会调用Integer的valueOf()方法,这个方法就是返回一个Integer对象,但是在返回前,作了一个判断,判断要赋给对象的值是否在[-128,127]区间中,且IntegerCache(是Integer类的内部类,里面有一个Integer对象数组,用于存放已经存在的且范围在[-128,127]中的对象)中是否存在此对象,如果存在,则直接返回引用,否则,创建一个新对象返回。

 

实践:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        Integer a=2;
            Integer b=2;
            System.out.println(a==b);
            Integer c=18;
            Integer d=18;
            System.out.println(c==d);
            Integer e=127;
            Integer f=127;
            System.out.println(e==f);
            Integer g=128;
            Integer h=128;
            System.out.println(g==h);
            Integer i=3;
            Integer j=3;
            System.out.println(i==j);
 
得出
true
true
true
false
true 

 

结论

在 [-128,127]区间中 进行匹配用==  是可以的,超过了就会false,可以改成  .equals()   就可以了

 

posted on   dm3344  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2012-03-31 js 数值转换为3位逗号分隔
2012-03-31 鼠标移过显示提示信息框(自动获取鼠标坐标)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示