java封装类和基本数据类型的比较

java封装类和基本数据类型的比较

由低到高,可以隐式自动转换,数据类型自动提升

引用类型是一个对象类型,除了8中基本类型以外剩下的都是引用类型
原始类型 封装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float

int和integer有什么区别(自动拆箱装箱)
java封装类和基本数据类型的比较java封装类和基本数据类型的比较

1、Integer是int的包装类,int是一种基本的数据类型,int是JAVA缺省的8中基本数据类型之一.不是类的对象.

2、Integer变量必须实例化后才能使用,而int变量不需要

3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值

4、Integer的默认值是null,int的默认值是0,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。

返回数据库字段值是null的话,实体类中用int类型接收的话会报错。int是基本数据类型,其声明的是变量,而null则是对象。所以建议用integer;

int 是基本类型
integer是引用类型

比如int a= 5;
Integer b = 5;

对于a你只能用来做计算。。比如加减乘除。。

b你可以用来做很多事情,因为他是一个对象,他有很多方法,你可以像使用String对象那样使用它。 java.lang.Integer是一个类.对它的操作要通过类的方法,可以toString等,而int不行

另外,Integer对于-128到127之间的数,会进行缓存,Integer i = 127时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存中取,就不会new了

  • 引用类型和基本类型

总结一下几个点:

  1. int 和Integer在进行比较的时候,Integer会进行拆箱,转为int值与int进行比较。

  2. Integer与Integer比较的时候,由于直接赋值的时候会进行自动的装箱,那么这里就需要注意两个问题,一个是-128<= x<=127的整数,将会直接缓存在IntegerCache中,那么当赋值在这个区间的时候,不会创建新的Integer对象,而是从缓存中获取已经创建好的Integer对象。二:当大于这个范围的时候,直接new Integer来创建Integer对象。

  3. new Integer(1) 和Integer a = 1不同,前者会创建对象,存储在堆中,而后者因为在-128到127的范围内,不会创建新的对象,而是从IntegerCache中获取的。那么Integer a = 128, 大于该范围的话才会直接通过new Integer(128)创建对象,进行装箱


作者:国服第一黄焖鸡
来源:****
原文:https://blog.****.net/qq_33223761/article/details/82876032
版权声明:本文为博主原创文章,转载请附上博文链接!