面向对象:四大特征封装、抽象、继承、多态;方法重载(同一类参数不同)、重写(子类重写父类)。 String:被final 修饰不可变,底层final char[];StringBuilder线程不安全高效,StringBuffer线程安全低效。 包装类:Integer 缓存 **-128~127**,仅自动装箱复用缓存对象。 2. 集合框架 核心实现与规则 List:ArrayList(数组,查询快增删慢)、LinkedList(链表,增删快查询慢)、Vector(线程安全)。 Set:HashSet(HashMap 实现,无序不重复)、TreeSet(排序)。 Map: HashMap:默认容量 16,加载因子 0.75,链表长度 **≥8 树化 **,≤6 退化为链表;JDK1.8 采用数组 + 链表 + 红黑树。 ConcurrentHashMap:JDK1.7 分段锁,1.8CAS+synchronized,高并发安全。 Collection 与 Collections:前者是集合接口,后者是集合工具类。 3. JUC 并发编程 核心机制 线程创建:继承 Thread、实现 Runnable/Callable、线程池。 线程池:7 大参数(核心线程数、最大线程数、空闲时间、时间单位、任务队列、线程工厂、拒绝策略),推荐手动创建。 锁机制: synchronized:JVM 层面锁,可重入、非公平。 ReentrantLock:API 层面锁,可重入、公平 / 非公平。 CAS:无锁算法,存在ABA 问题,用AtomicStampedReference解决。 线程状态:新建、就绪、运行、阻塞、死亡。 死锁条件:互斥、请求保持、不可剥夺、环路等待,打破其一即可预防。 4. Java Web 核心组件 HTTP:GET(参数可见、长度限制)、POST(安全、无长度限制)。 Servlet:生命周期实例化→初始化→服务→销毁;forward服务器转发(一次请求),redirect客户端重定向(两次请求)。 会话:Cookie 存客户端,Session 存服务器;Token/JWT 实现无状态认证。 5. 数据库 核心规则 存储引擎:InnoDB(支持事务、行锁),MyISAM(不支持事务、表锁)。 查询:where 过滤行,having 过滤分组;内连接取交集,左右连接保留主表数据。 聚合函数:sum、avg、max、min、count。 6. 索引优化 核心原理 索引结构:InnoDB 采用B + 树,聚簇索引(主键,存完整数据),非聚簇索引(存主键,需回表)。 索引分类:主键索引、唯一索引、普通索引、联合索引、覆盖索引。 优化规则:遵循最左匹配原则,避免索引列运算、% 开头 like、or 查询导致索引失效。 7. 事务 核心特性 ACID:原子性(不可分割)、一致性(数据完整)、隔离性(并发无干扰)、持久性(修改永久生效)。 隔离级别:读未提交→读已提交→可重复读(MySQL 默认)→串行化,级别越高安全性越高、性能越低。 并发问题:脏读、不可重复读、幻读。 8. Spring 框架 核心思想 IOC:控制反转,对象创建交给 Spring 容器,降低耦合。 DI:依赖注入,自动装配对象依赖,支持字段、构造器、Setter 注入。 AOP:面向切面编程,抽取公共逻辑(日志、事务),通知类型:前置、后置、环绕、异常、最终。 事务:7 种传播行为,失效场景:异常捕获、非 public 方法、检查异常未配置 rollbackFor。