以下来自:Java基本类型总结

Java基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从Java5.0(1.5)开始,JAVA虚拟机(Java Virtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候像使用基本类型一样使用它们的包装类,但这并不意味着你可以通过基本类型调用它们的包装类才具有的方法。另外, 所有基本类型(包括void)的包装类都使用了final修饰,因此我们无法继承它们扩展新的类,也无法重写它们的任何方法 。

一 八大基本类型

基本类型出现的原因

在Java编程思想的第一章就讲到:万物皆对象,new一个对象存储在堆中,我们通过堆栈的引用来使用这些对象,但是对于经常用到的一系列类型如int,如果我们用 new将其存储在堆里就不是很有效 ——特别是简单的小的变量。所以就出现了基本类型,同C++一样,Java采用了相似的做法,对于这些类型不是用new关键字来创建,而是 直接将变量的值存储在堆栈 中,因此更加高效。

基本类型和包装类型 - 图1

二 包装类型

包装类型出现的原因

Java是一个面向对象的语言,基本类型并不具有对象的性质,为了与其他对象“接轨”就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

Integer.valueOf()

image.png

示例: arr.remove(1) 表示删除list中下表为1的值,1在此处表示索引。 arr.remove(Integer.valueOf(1)) 表示删除列表中出现的第一个1值,从基本类型变为包装类型对象。 注意比较二者的不同
arr.remove(new Integer(1)) 跟上文效果相同

三 关联

基本类型 二进制位数 包装器类
boolean 1 Boolean
byte 8 Byte
char 16 Character
short 16 Short
int 32 Integer
long 64 Long
float 32 Float
double 64 Double