装箱和拆箱

 

其中BigInteger、BigDecimal没有相对应的基本类型,主要应用于高精度的运算,BigInteger 支持任意精度的整数,

装箱操作:把一个基本类型的值,转换成对应包装类对象。

方式一:Integer num1 = new Integer(17);

方式二:Integer num1 = Integer . valueOf(17);

----------

拆箱操作:把包装类对象转换成对应的基本类型变量。

int num3 = num1.intValue();

Sun公司从Java5开始提供了自动装箱和自动拆箱的功能。

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

自动拆箱:可以直接把一个包装类对象赋值给对应的基本数据类型。

 

通过反编译后我们发现:自动装箱和拆箱,是一个编译器级别新特性。

在底层依然是手动装箱和拆箱操作。

但是:装箱操作使用的是Integer . valueOf的方式,而不是直接new Integer 。

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

Switch支持的数据类型:byte、short、int、char、String也支持对象的包装类(jdk1.5以后)

测试我们发现,包装类也被switch所支持,通过反编译工具我们发现其实在switch判断表达式里面对包装类进行了拆箱操作而转换成一个int类的普通数据。

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

解释:Object obj = 17.

1):自动装箱:Integer i = 17;

2):引用的自动类型转换,把子类对象赋给父类对象:Object obj = i ;

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

Object可以接受一切数据类型的值。

Object数组:Object [ ] 数组名; 该数组可以装一切数据的类型。

包装类的常用操作方法:

1):包装类中的常量:

MAX_VALUE(最大值)/MIN_VALUE(最小值)SIZE(在内存中储存占用多少位) TYPE(对应的数据的基本类型)

2):包装类的构造器:

数据类型(数据类型 value):接受自己的基类性质。如:Integer (int value)

......(String value):但是char除外。因为char属于单字符。

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

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

 

4):String与基本数据类型/包装类型之间的转换

 

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

 

String 转换成基本包装类型

valueOf(String s)

返回一个 Integer对象,保存指定的值为 String

方式一:Integer one = Integer . valueOf(“转换的字符串”);

方式二:Integer two = new Integer(“转换的字符串”);

1.把基本数据类型转换成String

 

String  str = 17+” ”; 任何数字字符和双引号连接就形成了字符串。

2.把包装类对象转换成String

String str = 任何对象.toString();这是Object的一个方法:

 

3.把String转换为基本数据类型

 

parseXXX(String s); XXX代表八大基本数据类型。

将字符串参数解析为带符号的十进制整数。

4.:String转换成Boolean类型注意事项。

 

包装中的缓存设计(享元模式):

 

ByteShortIntegerLong:缓存(-128 ~ 127)区间的数据;

Character 缓存(0~127)区间的数据。

包装类型对象之间的比较操作:统统使用equals方法来比较,比较的是包装的数据。

 

posted on 2017-12-21 14:16  听风醉  阅读(236)  评论(0编辑  收藏  举报

导航

因为不可能,所以才值得相信。