21 volatile
保证线程间可见性,修改立即对其他线程可见。
禁止指令重排,让代码执行顺序更符合预期。
常用于标志位、单例模式。
22 Arrays.sort 原理
基本类型使用双轴快速排序,速度快。
对象类型使用 TimSort(归并+插入优化算法)。
复杂度稳定在 O(n log n)。
23 使用缓存的优缺点
优点:访问速度提升显著。
缺点:需要维护一致性,可能出现伪共享、缓存过期错乱等情况。
24 线程安全集合
包括 Vector、Hashtable、ConcurrentHashMap、CopyOnWriteArrayList。
现代开发更倾向 ConcurrentHashMap、CopyOnWrite 系列。
25 LRU 算法
最近最少使用,淘汰最长时间未用的数据。
常用于缓存、页面置换。
26 BeanFactory
负责 Bean 的创建、管理、销毁,是 Spring 最基础的 IOC 容器。
27 IoC(控制反转)
对象的创建与生命周期由容器管理,而不是业务代码手动 new,降低耦合、提升灵活性。
28 依赖注入
Spring 自动将需要的 Bean 注入到类中,例如构造注入、Setter 注入、字段注入。
29 Bean 作用域
singleton:单例,全局唯一对象。
prototype:多例,每次 getBean 都会创建新对象。
可使用 @Lazy 延迟加载。
30 反射的作用
可在运行时动态获取类结构、创建对象、访问方法。
大量框架(Spring、MyBatis)依赖反射实现灵活性。