自动数据类型转换
long 表示的范围更大, 可以将 int 赋值给 long, 但是不能将 long 赋值给 int.
double 表示的范围更大, 可以将 int 赋值给 double, 但是不能将 double 赋值给 int.
结论 :
不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行 .
int 和 boolean 是毫不相干的两种类型, 不能相互赋值.
使用字面值常量赋值的时候, Java 会自动进行一些检查校验, 判定赋值是否合理
手动(强制)数据类型转换
使用 (类型) 的方式可以将 double 类型强制转成 int. 但是
强制类型转换可能会导致精度丢失.强转之后10.5 就变成 10 了, 小数点后面的部分被忽略.
强制类型转换不是一定能成功, 互不相干的类型之间无法强转.
混合运算类型转换
1.当 int 和 long 混合运算的时候, int 会提升成 long, 得到的结果仍然是 long 类型, 需要使用 long 类型的变量来接收结果. 如果非要用 int 来接收结果, 就需要使用强制类型转换.
2.CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short 这种低于4 个字节的类型, 会先提升成 int类型再进行运算
int 和 String 之间的相互转换
1.int转String
int num = 10;
// 方法1
String str1 = num + "";
// 方法2
String str2 = String.valueOf(num);
2.String转int
String str = "100";
int num = Integer.parseInt(str);