包装类与基本类型

包装类介绍

       所谓包装类,就是能够直接将简单类型的变量表示为一个类。

       数值型包装类都继承至Number,而字符型和布尔型继承至Object。

包装类与基本类型:

为什么需要包装类?

1.首先,Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,为基本数据类型设计一个对应的类进行代表,这种方式增强了Java面向对象的性质。

2.基本数据类型,在实际使用时将存在很多的不便,很多地方都需要使用对象而不是基本数据类型。例如,在集合类中,我们是无法将int 、double等类型放进去的,因为集合的容器要求元素是Object类型。而包装类型的存在使得向集合中传入数值成为可能,包装类的存在弥补了基本数据类型的不足。

 3.包装类还为基本类型添加了属性和方法,丰富了基本类型的操作。如当我们想知道int取值范围的最小值,我们需要通过运算,如下面所示,但是有了包装类,我们可以直接使用Integer.MAX_VALUE即可。


为什么要保留基本数据类型?

Java中用new关键字创建的对象是存储在堆里的,通过栈中的引用来使用这些对象,所以对象本身来说是比较消耗资源的。
对于经常用到的类型,如int等,如果每次使用这种变量的时候都需要new一个对象的话,就会比较笨重。所以Java提供了基本数据类型直接在栈内存中存储,更加高效。

包装类型与基本类型的异同

1. 在Java中,一切皆对象,但八大基本类型却不是对象

2. 声明方式的不同,基本类型无需通过new关键字来创建,而包装类型需new关键字

3. 存储方式及位置的不同,基本类型是直接存储变量的值保存在栈中能高效的存取,包装类型需要通过引用指向实例,具体的实例保存在堆中

4. 初始值的不同,包装类型的初始值为null,基本类型的的初始值视具体的类型而定,比如int类型的初始值为0

5. 使用方式的不同,比如与集合类合作使用时只能使用包装类型

包装类的特点

所有包装类都是使用final修饰的,不能被继承,包装类是不可变类,包装类的对象被创建后,它所包含的基本类型数据就不能改变。其中数值型对应的包装类都是继承自Number类,而字符型和布尔型继承至Object类。

包装类的使用

1.与基本数据类型的转换 拆箱 装箱

2.与字符串的转换   

基本类型转换为String类型 使用String的valueof()方法或者使用 +"" 这里就涉及到数据类型的自动提升。

String类型转换为基本类型使用包装类;

3.基本类型包装类对象间的比较("==")

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容