算数运算符的概念和使用
算数运算符注意事项
算术运算符实现时间拆分
字符串连接符的概念与使用
关系运算符的概念和使用
关系运算符实现负数判断
自增减运算符运算符的概念和使用
前后加加的区别
自增减运算符的笔试考点
逻辑运算符的概念和使用
逻辑运算符的短路特性
逻辑运算符判断三位数
三目运算符的概念和使用
三目运算符查找最大值
赋值运算符的概念和使用
赋值运算符考点1
byte b1 = 10;
System.out.println("b1 = "+b1);
//b1 = b1 + 2; ////错误: 不兼容的类型: 从int转换到byte可能会有损失 byte + int 相加的结果还是int类型
//b1 = b1 + (byte)2; //错误: 不兼容的类型: 从int转换到byte可能会有损失 byte + byte 相加结果还是int类型 编译器优化
/*考虑到加法运算可能会溢出,编译时自动做了类型提升*/
//b1 = (byte)(b1 + 2); //强制类型转换,将int类型转成byte
b1 += 2; //等价与 (byte)(b1 + 2) 自带强转
System.out.println("b1 = "+b1);
- 两个
byte
的数值相加,结果是int
考虑到加法运算可能会溢出,编译时自动做了类型提升
相比于 = +
运算 +=
运算符自带强制类型转换, 即b1 += 2;
//等价与b1 = (byte)(b1 + 2)
赋值运算符考点2
/*
赋值运算符的概念与使用
*/
public class AssignTest {
public static void main(String[] args) {
//5. 笔试考点一 +=运算的强转效果
byte b1 = 10;
System.out.println("b1 = "+b1);
//b1 = b1 + 2; ////错误: 不兼容的类型: 从int转换到byte可能会有损失 byte + int 相加的结果还是int类型
//b1 = b1 + (byte)2; //错误: 不兼容的类型: 从int转换到byte可能会有损失 byte + byte 相加结果还是int类型 编译器优化
/*考虑到加法运算可能会溢出,编译时自动做了类型提升*/
//b1 = (byte)(b1 + 2); //强制类型转换,将int类型转成byte
b1 += 2; //等价与 (byte)(b1 + 2) 自带强转
System.out.println("b1 = "+b1);
System.out.println("===========================");
//6. 笔试考点二
int ia;
//ia == 2; 表达式判断变量ia是否2
//2 == ia; 表示判断2是否等于变量ia的数值 从结果上来说是等价的,推荐该方式,更能规避少写一个等号导致的错误,因为左值不能为常量.
//ia = 2; 表示将2赋值给变量ia,覆盖变量ia原来的值
//2 = ia; //错误: 意外的类型
}
}
ia == 2; 表达式判断变量ia是否2
2 == ia; 表示判断2是否等于变量ia的数值
从结果上来说是等价的,推荐该方式,更能规避少写一个等号导致的错误,因为左值不能为常量, 若少写一个等号,编译阶段就可以检查出问题.
移位运算符的概念
<< 左移
>> 右移
>>> 逻辑右移运算符 ==> 无符号右移运算符
移位运算符的使用