1. 变量和类型
1.1 整型变量
字节
使用以下代码查看 Java 中的整型数据范围 :
再看一段代码:
int max=Integer.MAX_VALUE+1;
System.out.println(max);
这里可以看到,int整形最大值+1之后打印变成了负数
int是4个字节,也就是32位
那么,int的取值范围可以表示为
1.2 长整型变量
基本语法格式:
代码示例:
注意事项:
使用以下代码查看 Java 中的长整型数据范围:
System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE)
1.3 双精度浮点型变量(重点)
基本语法格式
代码示例 :
1.4类型转换
隐式类型转换
以下代码就是隐式类型转换,可以理解为悄悄地把数据的属性给换了
//int 和 long/double 相互赋值:
int a = 10;
long b = 20;
a = b; // 编译出错, 提示可能会损失精度.
b = a; // 编译通过.
int a = 10;
double b = 1.0;
a = b; // 编译出错, 提示可能会损失精度.
b = a; // 编译通过.
显式类型转换(强制)
int a = 0;
double b = 10.5;
a = (int)b;
这样就可以把double类型的b强转成整形a,但是会有数据丢失。
结论: 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行.
int 和 boolean 相互赋值:
int a = 10;
boolean b = true;
b = a; // 编译出错, 提示不兼容的类型
a = b; // 编译出错, 提示不兼容的类型
如果使用强制类型转换:
结论: int 和 boolean 是毫不相干的两种类型, 不能相互赋值.
1.5数值提升
int 和 long 混合运算
int a = 10;
long b = 20;
int c = a + b; // 编译出错, 提示将 long 转成 int 会丢失精度
long d = a + b; // 编译通过.
byte 和 byte 的运算
byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c);
// 编译报错
Test.java:5: 错误: 不兼容的类型: 从int转换到byte可能会有损失
强转:
1.6 int 和 String之间的相互转换
int 转成 String
int num = 10;
// 方法1
String str1 = num + "";
// 方法2
String str2 = String.valueOf(num);
String 转成 int
String str = "100";
int num = Integer.parseInt(str);
小结:
