在Java中为什么每一个基本类型都有一个包装类型,他们的区别又是什么
Posted AXiYa_Ari
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Java中为什么每一个基本类型都有一个包装类型,他们的区别又是什么相关的知识,希望对你有一定的参考价值。
1、什么是包装类型
JDK为我们提供了一些与基本数据类型对应的类,这些类的对象可以和基本数据类型的变量直接互相赋值,并且这些类对比基本数据类型而言具有更为强大的功能。这些类就被称为包装类型。
2、为什么需要包装类型
Java是一个面向对象的编程语言,一般是创建一个新的对象储存在堆里,然后我们通过栈中的引用来使用这些对象。所以Java中和C++一样,基本类型没有用new这个关键字来创建。但是Java是一个面对对象的编程语言,但是Java中的基本类型不是面向对象的,也不具有对象的性质,这让我们后面的代码产生了很多的麻烦,所以就创建了包装类,让其面对对象、有了对象的性质兵器添加了属性和方法。所谓包装类型就是将基本类型包装了起来,这就方便涉及对象的操作。
3、为什么会同时存在基本类型和包装类型
在Java中既然有了包装类型,为什么还要用基本类型呢?因为如果我们使用一个特别特别小的变量,如果在把他new出来,然后存储到堆上,再由栈中的引用来使用这个对象,只能说是太麻烦了。所以为了代码的高效,我们就要使用到基本数据类型。所以基本类型和包装类型同时存在是合理的。
4、基本的类型的包装类
数据类型 | 包装类型 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
5、图解
6、基本类型和包装类型的区别
1、声明方式不同
基本类型不用new关键字,而包装类型需要。
2、包装类型的值只能用equals方法来比
基本类型可以用“==”来比较数值的大小,但是如果包装类型用“==”来比较的话,是比较地址的,如果要比较包装类型的值必须要使用equals方法。
3、基本类型比包装类型更加高效
4、初始值不同
基本类型的初始值每个有每个不同的初始值,而包装类型的初始值是null。
5、基本类型不能在泛型中使用
泛型在编译时会进行类型擦除,最后只保留原始类型,而原始类型只能是 Object 类及其子类
6、基本类型不能使用于集合
集合中创建对象必须用包装类型,不能使用基本类型。
以上是关于在Java中为什么每一个基本类型都有一个包装类型,他们的区别又是什么的主要内容,如果未能解决你的问题,请参考以下文章