基本数据类型的 autoboxing

来源:互联网 发布:淘宝上发表论文真实吗 编辑:程序博客网 时间:2024/06/05 16:11
    // 基本数据类型的 autoboxing 过程 产生的对象    public static void main(String[] args) {        Integer first = new Integer(3); // 指定new 一个对象        Integer second = 3; // 隐式自动包装        int three = 3; // 基本数据类型        Integer four = 3; // 隐式自动包装        Integer five = 128; // 隐式自动包装        Integer six = 128; // 隐式自动包装        int seven = 128;        //first可以从cache读取,但是代码明确指明 new Intger()        System.out.println(first == second);        System.out.println(first == three);//自动包装时从cache读取        //自动包装时,没有越过上下限,因此直接从cache读取        System.out.println(second == four);        System.out.println(five == six);//自动包装时,128>h=128;,所以会重新new Integer        //自动包装时,是new 还是从cache中取值, Integer与int的==,比较的均为值        System.out.println(six == seven);    } 

这里写图片描述

if 判断 数值是否越过IntegerCache范围
在其内,直接返回cache,否则new Integer对象

下图是 Integer类内的 私有静态类 IntegerCache
这里写图片描述

原创粉丝点击