吴小小 2025-12-22 14:20:37
Java程序员面试核心考察点包括Java基础、集合框架、多线程与JVM原理及框架实战应用能力。
基础语法与特性
final与static关键字:final修饰类(不可继承)、方法(不可重写)和变量(常量);static用于静态成员,属于类而非实例。
对象相等性:==比较对象内存地址,equals()默认行为同==,需重写以实现逻辑相等(如String类重写后比较内容)。
异常体系:区分CheckedException(编译强制处理,如IOException)和UncheckedException(运行时异常,如NullPointerException),推荐try-with-resources自动管理资源。
面向对象三大特征
封装:通过私有字段+公共方法隐藏数据细节(例如private字段+getter/setter)。
继承:子类复用父类逻辑(extends),但需避免过度继承导致的耦合。
多态:父类引用指向子类对象(如Animala=newDog()),依赖运行时动态绑定实现。
集合类选型与原理
ListvsSetvsMap:
ArrayList基于动态数组,随机访问快但插入慢;LinkedList基于链表,插入高效但随机访问慢。
HashMap线程不安全,允许null键值;ConcurrentHashMap采用分段锁保证并发安全。
哈希冲突解决:HashMap使用链表+红黑树(JDK8后),当链表≥8时树化。
多线程与线程池
线程创建:继承Thread类或实现Runnable/Callable接口,后者支持返回值。
线程池参数:核心线程数、最大线程数、任务队列(如ArrayBlockingQueue)、拒绝策略(如AbortPolicy)。
并发工具:synchronized实现同步,ReentrantLock提供更灵活的锁控制。
JVM内存与垃圾回收
内存分区:堆(对象实例)、栈(局部变量)、方法区(类信息)。
GC算法:
新生代用复制算法(Eden/Survivor区);
老年代用标记-整理(减少碎片)。
调优指标:YoungGC频率应≤5次/分钟,单次耗时≤50ms;FullGC避免频繁触发。
Spring框架核心机制
IoC(控制反转):对象创建权交给容器,通过依赖注入(如Transactional注解声明事务边界,支持传播行为(如REQUIRED)和隔离级别。
数据库与缓存优化
索引失效场景:对字段使用函数、LIKE以%开头、类型隐式转换等。
Redis应用:
缓存穿透(布隆过滤器)、击穿(互斥锁)、雪崩(过期时间分散);
分布式锁(SETNX+EXPIRE)。
更多高频题如String不可变性、SpringBoot自动装配原理等,可参考。