变量就是申请内存来存储值。 java的两大数据类型:内置数据类型和引用数据类型
一、数据类型
共8种基本数据类型:
6种数据类型(4种整数型,2种浮点型),一种字符类型,一种布尔类型
数据类型 | 位数 | 描述 |
---|---|---|
byte | 8位 | -128 (-2^7) ~ 127(2^7-1) |
short | 16位 | -32768(-2^15) ~ 32767 (2^15-1) |
int | 32位 | -2147483648(-2^31) ~ 2147483647 (2^31-1) |
long | 64位 | -9223372036854775808(-2^63) ~ 9223372036854775807(2^63-1) |
float | 32位 | 默认值是 0.0f |
double | 64位 | 默认值是 0.0d |
boolean | true/false | 默认为false |
char | 16位 | Unicode字符 u0000 ~ uffff (0-65535) |
二、引用类型
引用类型指向一个对象,指向对象的变量就是引用变量。
对象、数组都是引用数据类型
所有引用数据类型的默认值都是null
三、自动类型转换
自动转换:依据每种类型所占位数来排序,当把低位数类型赋值给高位数类型时,会发生自动类型转换。
由低到高:
四、强制类型转换
强制转换:将高位数类型装换给低位数类型
注意精度问题
public class TestDay {
public static void main(String [] args){
byte a = 127; // byte 占1个字节, 8位 范围为 -128-127
int a1 = a; // int 占4字节,32位,范围比 byte 大,所以可以自动转换
int i = 128;
// byte a = 128; // 128 超出 byte 范围,位数不够,此时会报错
byte b = (byte)i; // 需要进行强制转换
System.out.println(b);
}
}
表达式的自动提升
算术表达式中包含多个基本类型的值时,表达式中的数据类型会发生自动提升。
- 所有 byte、short、char 类型将会提升到 int 类型