You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
3.2 KiB

面向对象:四大特征封装、抽象、继承、多态;方法重载(同一类参数不同)、重写(子类重写父类)。
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。