美文网首页
Java之数据类型缓存机制

Java之数据类型缓存机制

作者: zhglance | 来源:发表于2020-02-13 09:41 被阅读0次

    问题描述:

    public class IntegerTest {
    
        public static void main(String[] args) {
    
            Integer a = 5;
            Integer b = 5;
    
            System.out.println("a==b:" + (a==b));
    
            Integer c = 200;
            Integer d = 200;
    
            System.out.println("c==d:" + (c==d));
    
            Integer e = new Integer(5);
            Integer f = new Integer(5);
    
            System.out.println("e==f:" + (e==f));
    
        }
    }
    
    

    输出结果:

    a==b:true
    c==d:false
    e==f:false
    

    说明:

    JVM对Byte、Short、Integer、Long、Character进行了缓存,缓存范围为 -128 到 127(Character范围为 0 到 127)。因此 ‘a==b:true’,但是** ‘c==d:false’,e和f使用了new,对象是分配到堆内存中的,e==f判断的是地址是否相同,因此‘e==f:false’**

    备注:

    只有Integer可以指定缓存的范围(-XX:AutoBoxCacheMax=size设置上届,下界不能指定,只能为-128),其它类都不行。

    相关文章

      网友评论

          本文标题:Java之数据类型缓存机制

          本文链接:https://www.haomeiwen.com/subject/jyhkfhtx.html