2018-05-03
基本类型包装类
一、装箱和拆箱
虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。 沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单、有效地进行常规数据处理。
这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了 Object 类的特性,要转换为 String 类型(经常有这种需要)时只要简单调用 Object 类中定义的toString()即可,而基本数据类型转换为 String 类型则要麻烦得多。为解决此类问题 ,Java为每种基本数据类型分别设计了对应的类,称之为包装类(Wrapper Classes),也有教材称为外覆类或数据类型类。
基本数据类型 | 对应的包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
每个包装类的对象可以封装一个相应的基本类型的数据,并提供了其它一些有用的方法。包装类对象一经创建,其内容(所封装的基本类型数据值)不可改变。
-------------------------------------------------------------------------------------------------------------
装箱:把基本数据类型转成对应的包装对象。
拆箱:把包装类对象转成对应的基本数据类型。
自动装箱:可把一个基本类型变量直接赋给对应的包装类变量。
自动拆箱:允许把包装类对象直接赋给对应的基本数据类型变量。
自动装箱和拆箱是编译器级别的一个新特性,在底层依然是手动装箱和拆箱。
-----------------------------------------------------------------------------------------------------------
switch语句支持的数据类型:byte,short,chart,int与此同时也支持对应的包装类。为何?
因为在底层,switch中会对包装类做手动拆箱操作。
---------------------------------------------------------------------
Object可以接受一切数据类型的值。
参考:https://www.cnblogs.com/ok932343846/p/6749488.html
--------------------------------------------------------------------------------------------------