基本数据类
Java中的基本数据类型不是面向对象的,它们只是纯粹的数据,除了数值本身的信息之外,基本类型数据不带有其他信息或者可操作方法。
类型 | 字节数 |
---|---|
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
char | 2 |
float | 4 |
double | 8 |
boolean | 1 |
优点:
1,用于计算是效率高;
2,值比较方便,使用 == 就可以了。
缺点:
1,从数据库中查出值时可能会有null,基本类型接收NULL值有NPE风险(java.lang.NullPointerException NPE 空值异常);
2,默认值和NULL值不能传达同一种信息,例如考试分数字段,如果使用Integer类型,那么没有参加考试的分数可以设置为null;如果用int类型,那么分数值都是0,无法没有参加考试还是参加考试得0分。
包装类
为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类。
基本数据类 | 包装类 | 字节数 |
---|---|---|
byte | Byte | 16 |
short | Short | 16 |
int | Integer | 16 |
long | Long | 16 |
float | Float | 16 |
double | Double | 16 |
char | Character | 16 |
boolean | Boolean | 16 |
所有基本类型封装对象所占内存的大小都是16字节,但是还是有区别,比如:
Integer对象虽然占用了16个字节的内存,但是只是利用了Object所占内存(8个字节)+int所占内存(4个字节)=12字节,还有4个字节根本没有被使用。
优点:
1,可以存放null,从数据库中查出值时可能会有null;
缺点:
1,不能使用 == 比较相等。
2,占用更多的内存空间;
总结
1,所有POJO类属性必须使用包装数据类型;
2,所有的局部变量推荐使用基本数据类型。