知识点总结
- “ + ” 的作用
public class PlusDemo{ public static void main(String[] args){ // 正号 int a = +3; // 加法运算 a = 5+10; // 连接字符串 System.out.println("祝大家"+"天天开心");// 祝大家天天开心 } }
- 字符串和任意数据类型做加法运算得到的还是字符串
- 用 + 做拼接运算的顺序是从左到右,有括号就括号优先
- 布尔数据类型的值不能和其他基本数据类型做运算
public class BooleanDemo{ public static void main(String[] args){ System.out.println(true+22);// 报错 System.out.println(true+'d');// 报错 System.out.println(true+"d");// trued } }
- 强制类型转换:
格式: 目标类型 变量名 = (目标类型) 要转换的值;
eg : long a = 1L;
int b = (int) a; //此时 long 类型的 a 就转换成了 int 类型的 b - 在 8 种基本数据类型中,出了布尔类型的值,其他 7 种基本数据类型之间都可以使用强制类型转换
- 在引用数据类型中,会经常使用强转,并且只能从父类转到子类(向下转型)
- 强制类型转换注意事项:精度损失。若将 long 类型的值转换为 int 类型时,该值已经大于 int 类型的范围,就会损失精度
- 将 int 类型的 130 转换为 byte 类型
byte c = (byte)130;
整数 130 的补码为:
0000 0000 0000 0000 0000 0000 1000 0010
转为 byte 类型只取末尾八位,即
1000 0010 补码
1000 0001 反码
1111 1110 原码
所以转换后的二进制数为1111 1110,首位为1,代表负数,最后结果为-126 - 可以把 long 类型的值赋给 float 类型的变量,因为 float 的最大值远大于 long 的最大值
- 类型计算转换:byte、short、char -> int -> long -> float -> double