1.基本数据类型的取值范围
基本类型 | 取值范围 |
---|---|
byte | [-128 ~ 127] |
short | [-32768 ~ 23767] |
int | === |
long | === |
float | === |
double | === |
boolean | true false |
char | [0 ~ 65535] |
2. 八种基本数据类型的默认值
基本类型 | 默认值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0 |
float | 0.0 |
double | 0.0 |
boolean | false |
char | \u0000 |
3. char
定义 : char x = 'a'; char y = '中'; char z = '\n';
'\' 这是一个转义字符;
'\n' 这是换行符;
'\t' 这是制表符;
'\\' 这是普通的反斜杠;
' \' ' 这是普通的单引号;
' \" ' 这是普通的双引号;
'\u0000' -- \u 会将后面的字符看成Unicode编码,
......
4. int类型的显示
- java语言中的整数型字面值默认当做int 类型处理;
- java语言中整数型字面值有三种表示方式
- 十进制 : 默认的表示方式; int a = 10;
- 八进制 : 以 0 开始 ; int b = 010;
- 十六进制: 以 0X 开始 ; int c = 0X10; int d = 0x10;
5. 数据类型转换
Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
5.1 自动类型转换
取值范围小的类型 自动提升为 取值范围大的类型
public static void main(String[] args) {
int i = 1;
byte b = 2;
// byte x = b + i; // 报错 //int类型和byte类型运算,结果是int类型 int j = b + i;
System.out.println(j);
}
同样道理,当一个 int 类型变量和一个 double 变量运算时, int 类型将会自动提升为 double 类型进行运算。
public static void main(String[] args) {
int i = 1;
double d = 2.5; //int类型和double类型运算,结果是double类型 //int类型会提升为double类型
double e = d+i;
System.out.println(e);
}
5.2 强制类型转换
强制类型转换:将 取值范围大的类型 强制转换成 取值范围小的类型 。
将 1.5 赋值到 int 类型变量会发生什么?产生编译失败,肯定无法赋值。
int i = 1.5; // 编译错误
想要赋值成功,只有通过强制类型转换,将 double 类型强制转换成 int 类型才能赋值
语法:
数据类型 变量名 = (数据类型)被转数据值;
int i = (int)1.5;
同样道理,当一个 short 类型与 1 相加,我们知道会类型提升,但是还想给结果赋值给short类型变量,就需要强制转换。
public static void main(String[] args) {
//short类型变量,内存中2个字节
short s = 1;
/*
出现编译失败 s和1做运算的时候,1是int类型,
s会被提升为int类型 s+1后的结果是int类型,
将结果在赋值会short类型时发生错误 short内存2个字节,
int类型4个字节 必须将int强制转成short才能完成赋值
*/
s = s + 1;//编译失败
s = (short)(s+1);//编译成功
}
6. 总结
- 基本数据类型的取值范围
- 自动类型转换
- 强制类型转换