分页查询优化实战:告别深分页慢查询,从LIMIT到游标分页
2026/10/10 7:03:29
安排上了 📘
下面这份是**“必背级别 + 面试/实战双用”的 Java 面向对象(OOP)初阶核心手册,帮你把地基一次性夯实**。
一句话定位:
看完这篇,你至少能写对代码、看懂设计、扛住初级/中级面试
定义
将数据和操作数据的方法绑定在一起,对外隐藏实现细节
publicclassUser{privateStringname;publicStringgetName(){returnname;}}核心点
private📌 面试一句话:
封装是通过访问控制,保证对象状态的安全性和一致性
classAnimal{voideat(){}}classDogextendsAnimal{voidbark(){}}核心规则
is-a关系❗ 不要为了复用而继承
📌 面试一句话:
继承用于表达“是一个”的关系,增强代码复用和多态能力
Animala=newDog();a.eat();多态成立条件
关键结论
| 概念 | 含义 |
|---|---|
| 类 | 抽象模板 |
| 对象 | 具体实例 |
Carcar=newCar();publicUser(Stringname){this.name=name;}必背规则
this.name=name;作用:
| 修饰符 | 当前类 | 同包 | 子类 | 其他包 |
|---|---|---|---|---|
| public | ✅ | ✅ | ✅ | ✅ |
| protected | ✅ | ✅ | ✅ | ❌ |
| default | ✅ | ✅ | ❌ | ❌ |
| private | ✅ | ❌ | ❌ | ❌ |
📌 高频考点:
protected是包 + 子类@Overridepublicvoideat(){}private / final / static📌 面试雷点:
static 是“隐藏”,不是重写
abstractclassAnimal{abstractvoideat();}特点:
interfaceFlyable{voidfly();}特点:
public static final常量public abstract| 维度 | 抽象类 | 接口 |
|---|---|---|
| 继承数量 | 单 | 多 |
| 成员变量 | 可以 | 常量 |
| 构造器 | 有 | 无 |
| 设计定位 | is-a | 能力 |
toString()equals()hashCode()getClass()| 对比 | == | equals |
|---|---|---|
| 基本类型 | 值 | ❌ |
| 引用类型 | 地址 | 内容(可重写) |
📌 面试必杀句:
equals 和 hashCode 必须同时重写
finalclassA{}finalvoidmethod(){}finalintx=10;作用:
❌ 错误示例:
classCarextendsEngine{}✅ 正确示例:
classCar{privateEngineengine;}📌 原则:
能组合就不要继承
1️⃣ 成员变量未初始化就使用
2️⃣ 忘记重写 equals / hashCode
3️⃣ 误以为成员变量有多态
4️⃣ 滥用继承
5️⃣ 构造方法当普通方法用
封装藏细节,继承表关系
多态靠重写,运行看右边
接口表能力,组合赢一切
我可以直接给你:
你想往面试 / 实战 / 进阶设计哪个方向继续?