文章

Java SE 学习笔记:语法与核心机制

更新于 2026/09/20牛耕田

暂存笔记,持续补充中。Java SE 是后端方向的根基,面试必考。

一、面向对象#

  • 封装 / 继承 / 多态:多态是运行期绑定,父类引用指向子类对象。
  • == 比较引用地址,equals 比较内容(需重写);重写 equals 必须重写 hashCode。
  • 抽象类 vs 接口:抽象类用 extends(单继承),接口用 implements(多实现),接口 default 方法可有默认实现。

二、集合框架#

接口实现特点
ListArrayList / LinkedList有序可重复,前者数组、后者链表
SetHashSet / TreeSet去重,后者有序
MapHashMap / TreeMap键值对,后者按 key 有序
并发ConcurrentHashMap线程安全,分段锁/CAS
  • HashMap:数组 + 链表 + 红黑树(链表 > 8 且数组 ≥ 64 时转红黑树),负载因子 0.75。
  • ArrayList 扩容:约 1.5 倍,HashMap 扩容 2 倍。

三、异常#

  • Throwable 下分 Error(不可处理)和 Exception。
  • Exception 分受检异常(编译期强制处理)和运行时异常(RuntimeException,可选处理)。
  • try-catch-finally / try-with-resources(自动关闭资源)。

四、并发基础#

  • 线程创建:继承 Thread、实现 Runnable、Callable(有返回值)+ Future。
  • synchronized:对象锁,可修饰方法/代码块;ReentrantLock 更灵活(可中断、公平锁、条件变量)。
  • volatile:保证可见性 + 禁止指令重排,但不保证原子性。
  • 线程池:ThreadPoolExecutor 七大参数(核心/最大线程数、存活时间、队列、拒绝策略)。

五、JVM 内存模型(速记)#

  • 堆:对象实例,分新生代(Eden + 两个 Survivor)和老年代。
  • 方法区 / 元空间:类信息、常量、静态变量。
  • 虚拟机栈:栈帧(局部变量表、操作数栈),线程私有。
  • GC 算法:标记-清除、复制(新生代)、标记-整理(老年代)。

本文为暂存笔记,后续补充反射、泛型、Stream 流与常见面试题。

返回主页