一.必须掌握的优先级
1.最高优先级
( ) - 括号. - 成员访问[ ] - 数组访问
2.单目运算符
+ +- - - 前置自增自减+- - 正负号! - 逻辑非+ +- - - 后置自增自减
3.创建与转换
new - 创建对象(type) - 类型转换
4.乘除模
*/%
5.加减
+-
6.关系
<<=>>=instanceof
7.相等
==!=
8.逻辑运算(重点难点)
& - 按位与/布尔与^ - 按位异或/布尔异或| - 按位或/布尔或&& - 逻辑与(短路)|| - 逻辑或(短路)
9.三元和赋值
? : - 三元运算符=+=-=等 - 赋值运算符
二、OCA 特别关注点
1.自增/自减优先级陷阱:
int x = 5; int y = x++ + ++x; // 考试常考:结果是 12 (5 + 7)2.逻辑运算符短路特性
&&:左边 false 则右边不计算||:左边 true 则右边不计算&和|:两边都计算(不短路)
3.关系运算符
< <= > >=优先级相同优先级高于
== !=不能链式比较:
a < b < c❌ 是语法错误
4.赋值运算最后计算:
int a = 1, b = 2, c = 3; a = b = c; // 从右向左:a = (b = c)三、考试常见题型优先级顺序
记住这个顺序就够了:
括号 → 点号/[] → ++--(前缀) → 正负! → ++--(后缀) → 强转/new → */% → +- → 移位 → 比较 → instanceof → ==!= → & → ^ → | → && → || → ?: → 赋值化记忆(考试够用):
括号点号自增减,正负非后新建型 乘除取余再加减,比较相等位运算 逻辑与或三目尾,赋值总是最后算四、必考题类型
混合自增运算:
x++ + ++x * 2逻辑短路判断:
false && (x++ > 0)的 x 值三元运算嵌套:
a > b ? c : d > e ? f : g赋值表达式:
a += b *= c的计算顺序类型转换混合:
(int) 5.6 + 3.2的结果类型
五、考试答题技巧
括号是王道:不确定就按括号重写表达式
注意短路:
&&和||可能不计算右边自增位置:
x++(先用后加)和++x(先加后用)赋值方向:所有赋值从右向左计算
类型提升:混合运算注意类型自动提升
六.一句话应付 OCA
括号点号 > 自增减 > 乘除 > 加减 > 比较 > 相等 > & > ^ > | > && > || > 三元 > 赋值,重点是短路和自增。
七.基本数据类型类型的一些原则:
1.性质
特性
Primitive 类型
引用类型(如 String)
是什么
基础数据类型(8种)
对象
存储
栈内存,直接存值
堆内存,栈存引用地址
传递
传值(副本)
传引用(地址)
默认值
0 / false 等
null
能否为 null
❌ 不能
✅ 能
比较用
==比数值
==比地址,.equals()比内容有无方法
❌ 没有
✅ 有
2.8 种类型速记
4 种整数:
byte(最小) →short→int(最常用) →long(最大)2 种小数:
float(单精度) →double(双精度,最常用)1 种字符:
char(单个字符)1 种布尔:
boolean(true/false):
3.三大黄金原则
1.值传递原则:
int a = 5; int b = a; // 复制 5 给 b a = 10; // b 还是 5,不受影响2.默认值原则
成员变量:自动给 0/false
局部变量:必须手动赋值
3.运算原则
整数除法会截断小数:
5 / 2 = 2浮点数不精确:
0.1 + 0.2 ≠ 0.3类型自动提升:
byte + short = int
4.一个易错点:
int a = 5; int b = 2; double r = a / b; // 结果是 2.0,不是 2.5! double 正确 = (double) a / b; // 这才是 2.5基本数据类型是轻量级数值,引用类型是对象盒子,记住 8 种类型和值传递,就能应对 90% 场景。