java中 Integer 手动、自动装箱、拆箱

一、手动拆箱和装箱:

手动装箱:

概念:

把基本类型的数据,包装到包装类中(基本类型的数据->包装类)

方法一:使用构造方法:

Integer(int value)
构造一个新分配的 Integer对象,该对象表示指定的 int值。
Integer(String s)
构造一个新分配 Integer对象,表示 int由指示值 String参数。

代码示例:

		  Integer in=new Integer(1);
          System.out.println(in);// 1
          
          Integer in2=new Integer("1");//不能写A因为不能转换为数值型.
          System.out.println(in2);//1
         

方法二:使用静态方法

static Integer valueOf(int i)
返回一个 Integer指定的 int值的 Integer实例。
static Integer valueOf(String s)
返回一个 Integer对象,保存指定的值为 String

代码示例:

          Integer in3=Integer.valueOf(3);
          System.out.println(in3);  //3
          
          Integer in4=Integer.valueOf("3");
          System.out.println(in4); //3

手动拆箱:

概念:

在包装类中取出基本类型的数据(包装类->基本类型的数据)
方法:
int intvalue()以int类型返回Integer的值。
代码示例:

	int i=in.intValue();
    System.out.println(i);  //1

二、自动拆箱和装箱:

在Java SE5中,为了减少开发人员的工作,Java提供了自动拆箱与自动装箱功能。

自动装箱:

将基本数据类型自动转换成对应的包装类。
代码示例:

Integer in=5;
自动装箱,将5使用Integer.valueof(5)方法自动装箱;

in=in+3;
先是自动拆箱,应为in是个包装类没法直接参与运算,所以调用in.intvalue()方法拆成int型数据进行数据的计算,
再调用方法Integer.value(8)方法转换为integer类装箱。
System.out.println(in); //打印为8

自动拆箱:

将包装类自动转换成对应的基本数据类型。

//自动拆箱和上面所用方法相同;

拓展:
Integer 在-128 至 127 值,可以直接使用==进行判断;
Integer 在-128 至 127 值之外的范围,要用equals 方法进行判断;
无论如何,Integer与new Integer()不会相等。要使用equals 方法进行判断;
无论如何,Integer与int比较,只要值相等,都会返回true。

参考

Guess you like

Origin blog.csdn.net/qq_43521500/article/details/120773413