Java 8种基本值类型
8种基本值类型
- byte/8
- char/16
- short/16
- int/32
- float/32
- long/64
- double/64
- boolean/~
Java编程语言是静态数据类型,所以在声明一个变量或者变量里必须指定类型,然后才能使用它们。
- byte:byte数据类型是8位带符号的二进制补码整数,最小值-127,最大值127(含)
- char: char数据类型为单个16位unicode字符,最小取值为\u0000,最大取值为\uffff
- short: short数据类型是一个16位带符号的二进制补码整数。最小值-32768,最大值32767(含)
- int: 默认情况下为32位带符号二进制补码整数,最小值-2^31 ,最大值 2^31 -1
- float: float数据类型是单精度32位IEEE764浮点。
- long: long数据类型是64位带符号二进制补码整数,最小值-2^63 ,最大值2^63 -1
- double: double数据类型是双精度64位IEEE764浮点
- boolean: boolean数据类型只有两个可能的值:true和false。
另外int、long可以使用包装类的compareUnsigned、divideUnsigned的方法表示无符号整数;float、double不能表示精确小数,只能表示近似值,所以不能用于需要精确表示小数据位的场景;如果需要表示精确小数位的场景可以使用java.math.BigDecimal类。
隐式值类型转换
- byte --> short -->char --> int -->long
- float --> double
java不能隐式的向下转型,因为这会丢失精确和溢出,所以long不能隐式的转换成int;double不能隐式的转换成float;加减乘除等运算都会触发隐式的类型转换。
值类型的包装类
Java中所有的基本类型都有与之对应的包装类型,在将基本类型赋值能包装类型时会自动进行装箱,在将包装类赋值能对应的基本类型时会自动拆箱;示例:
Integer x=11;//自动将基本类型int的11装箱,调用Integer.valueOf(11)
int y=x;//自动将包装类型拆箱,调用x.intValue()
基本类型与包装类型的对应关系:
- int --> Integer
- long --> Long
- double