基本类型 ----> 8种基本数据类型
基本类型通过8种关键字,来进行声明定义,结构简单
- byte 整型 占用8位(一个比特位)
- short 整型 占用16位(两个比特位)
- int 整型 占用32位(四个比特位)
- long 整型 占用64位(八个比特位)
- float 浮点型 占用32位(四个比特位)
- double 浮点型 占用64位(八个比特位)
- boolean 布尔型 占用8位(一个比特位)
- char 字符型 占用16位(两个比特位)
包装类:虽然这8种基本类型使用起来很简单,但是具体在面向对象语言中使用还是有很多弊端的
基本类型使用关键字定义,不是面向对象的语言(Java为了简单省事,直接抄隔壁C语言的)
在Java语言中,为每种基本类型都提供了一个类进行包装(后来Java发现直接抄过来的不好用,所以给每一种基本类型又加上了"包装类"),这样就是以面向对象的方式进行操作
简单的例子:
同样的两个都是数值型,int不能调用Java中的方法,而如果使用了包装类Integer,那么就可以
使用Java中的一些基本方法(比如查看最大值,转换为String类型)而这些都是int做不到的
有8种基本数据类型,Java为我们提供了8个包装类
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
那么包装类型与基本类型有什么不同呢??
拿int与integer举例
"空" 值不一样
int : 0
integer : null
包装类型可用于泛型,而基本类型不可以。
List<int> list = new ArrayList<>(); //这里会报错,提示类型不符
List<Integer> list = new ArrayList<>();
基本类型比包装类型更高效
基本类型在栈中直接存储的具体数值
包装类型则存储的是堆中的引用
一般来说,调用基本类型比调用包装类型所用时间更短,更高效