Java基本数据类型与封装类的区别

Java的基本数据类型:int , double , float , long, byte , char ,boolean缓存

对应的封装类:Integer , Double ,Float ,Long , Byte , Char ,Booleanspa

复杂类型和基本类型的内存模型本质上是不同的,简单数据类型的存储原理是这样的:全部的简单数据类型不存在“引用”的 概念,简单数据类型都是直接存储在内存中的内存栈上的,数据自己的值就是存储在栈空间里面,而Java语言里面只有这八种数据类型是这种存储模型;而其余的只要是继承于Object类的复杂数据类型都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据 存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象自己的值存储在内存堆上的。对象

对基本数据类型封装以后,封装类有能够有方法和属性,而后就能够利用这些方法和属性来处理数据,好比Ingeter对象中有parseInt(String s),能够把字符串转换为int类型等。咱们都知道有些类型的数据会有默认值,基本数据类型跟封装类型的默认值是不同的,好比int 默认为0;可是Integer为null;由于封装类产生的是对象,而对象默认值为null。继承


对于封装过以后,每一个类型都有对应的缓存:内存

Byte 所有缓存字符串

Boolean 所有缓存get

Integer <=127 缓存原理

Character <=127 缓存
数据类型

Short  -128~127 缓存
引用

Long -128~127缓存

Float 没有缓存

Double  没有缓存


示例以下:

若是超过缓存范围,那么在比较的时候返回结果为true,若是是使用new的方式来得值,那么不管在什么范围都是false,即不是基本类型。

相关文章
相关标签/搜索