一.基本概念

装箱:把基本类型数据转成对应的包装类对象。

拆箱:把包装类对象转成对应的基本数据类型数据。

Sun公司从Java5开始提供了的自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)

功能 :

自动装箱:可把一个基本类型变量直接赋给对应的包装类变量。

自动拆箱:允许把包装类对象直接赋给对应的基本数据类型变量。

自动装箱和拆箱,也是一个语法糖/编译器级别新特性. 在底层依然是手动装箱和拆箱操作. 但是:装箱操作使用的是Integer.valueOf的方式,而不是直接new Integer.

自动装箱和拆箱,也是一个语法糖/编译器级别新特性. 在底层依然是手动装箱和拆箱操作. 但是:装箱操作使用的是Integer.valueOf的方式,而不是直接new Integer.

二.包装类的常用操作方法:

1:包装类中的常量:       MAX_VALUE/MIN_VALUE/SIZE(在内存中存储占多少位)/TYPE(对应的基本类型)

2:包装类的构造器,xxx类型的包装类Xxx:(xxx表示8大基本数据类型).    

Xxx(xxx value):接受自己的基本类型值,如Integer(int val)/Boolean(boolean val)    

Xxx(String value): 但是,Character除外.  

构造器的作用:创建包装类对象.

3:基本类型和包装类型的转换(装箱和拆箱).    

装箱:               Integer i1 = new Integer(123);              

                       Integer i2 = Integer.valueOf(123);//推荐,带有缓存.  

拆箱:               int val = i1.intValue();

4:String和基本类型/包装类型之间的转换操作:      

String和int/Integer之间的转换操作:转换方法必须在String类中或Integer类中.    

把String转换为包装类类型:    

方式1: static Xxx  valueOf(String str)  :把String转换为包装类的对象          

           Integer i1 = Integer.valueOf(“123”);    

方式2: new  Xxx(String str):        

 Integer i2= new Integer(“123”);    

 把包装类对象转换为String.         String  str =  任何对象.toString();    

 把基本数据类型转换为String:         String  str = 17 + ””;    

 把String转换为基本数据类型:       static xxx parseXxx(String s)      :xxx表示8大基本数据类型      

String  input=”12345”;      

int num = Integer.parseInt(input);

5:Boolean b = new Boolean("SB");//false            只认可true/TRUE,为true,其他都是false.

三.Integer与int的区别(包装类型和基本数据类型的区别):  

1):默认值:          

 int的默认值是0.            

Integer的默认值为null.            

推论:Integer既可以表示null,又可以表示0.    

2):包装类中提供了该类型相关的很多算法操作方法.        

static String toBinaryString(int i) :把十进制转换为二进制        

static String toOctalString(int i) : :把十进制转换为八进制        

static String toHexString(int i) : :把十进制转换为十六进制    

3):在集合框架中,只能存储对象类型,不能存储基本数据类型值.  

 4)Integer和int是相同的数据类型吗?不是 !!!         

5): 方法中的,基本类型变量存储在栈中,包装类型存放于堆中.建议使用包装类型.