zoukankan      html  css  js  c++  java
  • Integer之-128~127


    对于integer而言,有一个特殊的区间,范围是-128~127


    -------------------------------------------------------------------------------


    Integer a = 1;
            Integer b = 1;

    像这样赋值,在这个区间里面,ab都是同一个对象,即== 为true


    ----------------------------------------------------------------------------------


            Integer a =new Integer(1);
    Integer b =new Integer(1);

    如果通过new的方式,即使在区间里面,  == 也为false,不是同一个对象。

    -------------------------------------------------------------------------------------


    那么超过这个区间了

                    Integer a = 200;
    Integer b = 200;

    即使这样  ==  也为false,为两个不同的对象



    ---------------------------------------------------------


    为什么呢?

    因为将int类型的值赋值给Integer,那么就会调用 Integer.valueOf();的方法。

    看源码




    high为 127  ,low为-128

    传入的值如果在这个范围内,就返回cache数组里面的值

    否知就new一个


  • 相关阅读:
    Java数组分配内存空间
    Java中的数组
    Java中可变参数
    什么是方法的重载
    break语句与continue语句
    三大循环结构
    程序流程控制
    Java的运算符
    基本数据类型转换之向上转型和向下转换
    修改IIS虚拟目录名称
  • 原文地址:https://www.cnblogs.com/fangyuandoit/p/13713891.html
Copyright © 2011-2022 走看看