转载博客:http://t.csdnimg.cn/rQajx ava中运算符的优先级 优先级记忆方法:单目乘除为关系,逻辑三目后赋值。(前辈总结的) 单目运算符:一次作用一个变量的运算符,又叫一元运算符 单目:单目运算符+ –(正负数) ,++ –,!(逻辑非),~(按位取反) 乘除:算数运算符:* / % + - (* / %优先级肯定是大于+-的) 为:位运算符:~(按位取反)<<(左移) >>(右移),^(也可以位运算,二进制异或) 关系:关系运算符:> < >= <= == != 逻辑:逻辑运算符(除!)&& || & | ^ 三目:条件运算符A > B ? X : Y 后:无意义,仅仅为了凑字数 赋值:= += -= *= /= %= |= &= ^= 说明:前优先级大于后,比如单目运算符~也是位运算符,~的优先级是单目级别的。至于赋值运算符中没有见过的自行测试 所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最低。譬如,x = 7 + 3 * 2 得到的结果是 13 “先乘后加”嘛! PS:大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。例如: 分析:小括号优先级最高,因此 1、 执行 a + 18 ,结果为 30 2、 执行( a + 18 ) % 4 取模,结果为 2 3、 执行 a * ( ( a + 18 ) % 4 ),结果为 24 例子1: public class HelloWorld { public static void main(String[] args) { int m = 5; int n = 7; int x=(m*8/(n+2))%m; System.out.println(“m:” + m); System.out.println(“n:” + n); System.out.println(“x:” + x); } } 运行结果: m:5 n:7 x:4 例子2: 表达式( 11+ 3* 8 ) / 4 % 3 的结果是? 第一步:计算3*8,结果为24;第二步:计算11+3*8,结果为35;第三步:计算(11 + 3 * 8) / 4,结果为8;第四步:计算(11 + 3 * 8) / 4 % 3,结果为2