优先级记忆方法
转:https://blog.youkuaiyun.com/pc_gad/article/details/52861838
优先级记忆方法:单目乘除为关系,逻辑三目后赋值。(前辈总结的)
单目运算符:一次作用一个变量的运算符,又叫一元运算符
单目:单目运算符+ –(正负数) ,++ --,!(逻辑非),~(按位取反)
乘除:算数运算符:* / % + - (* / %优先级肯定是大于+-的)
为:位运算符:~(按位取反)<<(左移) >>(右移),^(也可以位运算,二进制异或)
关系:关系运算符:> < >= <= == !=
逻辑:逻辑运算符(除!)&& || & | ^
三目:条件运算符A > B ? X : Y
后:无意义,仅仅为了凑字数
赋值:= += -= *= /= %= |= &= ^=
说明:前优先级大于后,比如单目运算符~也是位运算符,~的优先级是单目级别的。至于赋值运算符中没有见过的自行测试
与或优先级
我在一段时间里认为与或的优先级一样,在一起使用也按照同级运算符是顺序执行的来认为的,实际上与的优先级是与大于或。
位运算与或
//位运算与优先级大于位运算或,顺序执行10|01&01结果为1,而正确答案是3
System.out.println(2|1&1);
逻辑与或
//逻辑与的优先级要大于逻辑或,顺序执行false ,而正确答案是ture
System.out.println(true||true&&false);
数据库中的与或
自己给自己出的题
byte i = 0;
String s = 4 - ++i*2 >> 2-1 > 0 ? "分析正确" : "分析错误";
System.out.println(s);
答案嘛,你猜!