public class AssignmentOperatorTest01 { public static void main(String[] args){ byte b = 10; b+=1; System.out.println("b="+b);//11 /* * 实际上 java 对于扩展类的赋值运算符进行了特殊的处理, * 所有的扩展赋值运算符,最终都不会改变运算的结果类 * 型,假设前面的变量是 byte 类型,那么后面的表达式运 * 算之后的结果还是 byte 类型。所以实际上 b += 1 等同于: */
以上代码实际上等同于:b = (byte)(b + 1000);
分析得出,显然结果已经超出了 byte 类型取值范围,
所以精度一定会损失,最终的结果需要对计算机
二进制的原码反码补码进行研究。
代码分开:
b=(byte)(b+1);//12 System.out.println("b="+b); b+=1000; System.out.println("b="+b);//-12 } }
三目运算符最经典的用法,瞄一眼就行:
public class ConditionalOperatorTest01 { public static void main(String[] args) { boolean flag = true; int k = flag ? 1 : 0; System.out.println("k=" + k);//1 //三目运算符最经典的用法 boolean sex = true; char gender = sex?'男':'女'; System.out.println("性别;"+gender);//男 sex = false; gender = sex?'男':'女'; System.out.println("性别;"+gender);//女 int x = 100; int y = 100; System.out.println(x==y?"x和y相等":"x和y不相等");//x和y相等 } }
算术运算符
public class PlusTest01 { public static void main(String[] args){ int a = 10; int b = 20; int c = a + b; System.out.println("a+b="+c);//30 System.out.println(a+"+"+b+"="+(a+b));//10+20=30 /*1、在拼接的位置添加一个英文双引号;2、在双引 号中间添加两个加号;3、把字符串变量放到两个加号 中间。 */ String name = "jack"; System.out.println("登录成功,欢迎“+name+”回来!");//登陆成功,欢迎Jack回来! //K++先循环在加1,++k是加1再循环。 int K = 10; System.out.println(K++);//10 int k = 10; System.out.println(++k);//11 } }