文章目录
一.Java的基本数据类型介绍
类型 | 关键字 | 位数 | 默认值 | 取值范围 |
---|---|---|---|---|
字节型 | byte | 8 | 0 | -128~127 |
短整型 | short | 16 | 0 | -32768~32767 |
整型 | int | 32 | 0 | -2147483648~2147483647 |
长整型 | long | 64 | 0 | -9223372036854775808~ 9223372036854775807 |
单精度浮点型 | float | 32 | 0.0F | -3.40282347E+38~3.40282347E+38 |
双精度浮点型 | double | 64 | 0.0D | -1.79769313486231570E+308~ 1.79769313486231570E+308 |
字符型 | char | 16 | ‘\u0000’ | ‘\u0000’~’\uFFFF’ |
布尔型 | boolean | 8 | false | true,false |
二.各类基本数据之间的转换
1.自动转换(它只能按优先关系将位数少的数据类型向位数多的数据类型转换)
Byte、short、char → int → long → float → double
数据类型自动转换规则(总结:小转大,转后即为大)
操作数1的数据类型 | 操作数2的数据类型 | 转换后的数据类型 |
---|---|---|
Byte、int | int | int |
Byte、short、int | long | long |
Byte、short、int、long | float | float |
Byte、short、int、long、float | double | double |
char | int | int |
代码:(byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型)
public class practice {
public static void main(String[] args) {
char c = 'h';
byte b = 6;
int i = 100;
long l = 567L;
float f = 8.99f;// 单精度小数需用F或f为后缀
double d = 4.7788;// 双精度小数可用D、d或不加后缀表示
int aa = c + i;// c自动转换为int类型再运算
long ll = l - aa;// aa自动转换为long类型再运算
float ff = b * f;// b自动转换为float类型再运算
double dd = ff / aa + d;// aa自动转换为float类型运算,ff/aa得float结果后再自动转换为double类型再进行运算
System.out.println("aa=" + aa);
System.out.println("ll=" + ll);
System.out.println("ff=" + ff);
System.out.println("dd=" + dd);
}
}
结果:
2.强制转换:将高级数据转换成低级数据(其中的char类型与int类型转换有些特殊)
格式:要求强制转换的变量名前面用( )括上所要强制转换的类型符
代码:
public class practice {
public static void main(String[] args) {
char c = 'h';
byte b = 6;
int i = 100;
long l =