Integer和new Integer

Posted Jachin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Integer和new Integer相关的知识,希望对你有一定的参考价值。

Java code
 
?
1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) {
    Integer i1=10;
    Integer i2=10;
    Integer i3=new Integer(10);
    Integer i4=128;
    Integer i5=128;
    System.out.println(i1==i2);//true
    System.out.println(i1==i3);//false
    System.out.println(i4==i5);//false
}



Integer x = 10;//自动装箱,如果在-128到127之间,则值存在常量池中
Integer y = new Integer(10);//普通的堆中的对象

 

Java自动装箱和拆箱定义

       Java 1.5中引入了自动装箱和拆箱机制:

       (1)自动装箱:把基本类型用它们对应的引用类型包装起来,使它们具有对象的特质,可以调用toString()、hashCode()、getClass()、equals()等方法。

        如下:

        Integer a=3;//这是自动装箱

        其实编译器调用的是static Integer valueOf(int i)这个方法,valueOf(int i)返回一个表示指定int值的Integer对象,那么就变成这样: 

        Integer a=3;   =>    Integer a=Integer.valueOf(3);

        (2)拆箱:跟自动装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为基本类型的数据。

         如下:

         int i = new Integer(2);//这是拆箱

         编译器内部会调用int intValue()返回该Integer对象的int值

         注意:自动装箱和拆箱是由编译器来完成的,编译器会在编译期根据语法决定是否进行装箱和拆箱动作。

 

以上是关于Integer和new Integer的主要内容,如果未能解决你的问题,请参考以下文章

Integer n=new Integer和int n=1的区别

(Integer)session.getAttribute("userType")).equals(new Integer(1))啥意思~

Java中int和Integer的区别

java 中的 Integer

List<Integer>list =new ArrayList<Integer>(); <Integer> 啥意思?

Arrays.asList(array) 和 new ArrayList<Integer>(Arrays.asList(array)) 的区别