一、Java基本类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
1、整数:包括int,short,byte,long ,初始值为0
2、浮点型:float,double ,初始值为0.0
3、字符:char ,初始值为空格,即'' ",如果输出,在Console上是看不到效果的。
4、布尔:boolean ,初始值为false
二、包装类
包装类把基本类型转换为对象,每个基本类型在java.lang包中都有一个相应的包装类
包装类型: Integer 、Long、Short、Byte、Character、Double、Float、Boolean、BigInteger、BigDecmail
其中BigInteger、BigDecimal没有相对应的基本类型,主要应用于高精度的运算,BigInteger 支持任意精度的整数,BigDecimal支持任意精度带小数点的运算,主要用于金钱的计算上。
三 8种基本类型对应的包装类如下:
四 基本类型和包装类的异同
4.1 在Java中,一切皆对象,但八大基本类型却不是对象。
4.2声明方式的不同,基本类型无需通过new关键字来创建,而封装类型需new关键字。
4.3存储方式及位置的不同,基本类型是直接存储变量的值保存在堆栈中能高效的存取,
封装类型需要通过引用指向实例,具体的实例保存在堆中。
4.4初始值的不同,封装类型的初始值为null,基本类型的的初始值视具体的类型而定,
比如int类型的初始值为0,boolean类型为false;
4.5使用方式的不同:如与集合类合作使用时只能使用包装类型。
举个例子,一个Student类,其成绩属性,我们设置为
private Integer socre;
而不设置为
private int socre;
这是因为有的学生会出现考0分,而有的学生缺考,这样,就没有办法去区分了。
包装类型 Integer 和 基本类型 int 的最大区别就是包装类可以设置为 null。
缺考设置为null,就ok了。
再举例 在我们使用mybatis的时候,mybatis会判断参数属性是否为空null,而我们实体类中的某个属性如果使用基本数据类型,如int,默认为0,那mybatis就无法对这个参数进行判断。