首页 > java面试高频考点
头像
小工妹
发布于 01-18 20:57 上海
+ 关注

java面试高频考点

1. 面向对象

  • 三大特性:封装、继承、多态的理解和应用
  • 重载与重写的区别
  • 抽象类与接口的区别,Java 8接口新特性
  • 内部类、匿名内部类、Lambda表达式

2. 数据类型与集合

  • 基本数据类型与包装类,自动装箱拆箱
  • String、StringBuilder、StringBuffer区别
  • equals()与==的区别,hashCode()与equals()的关系
  • ArrayList vs LinkedList,HashMap vs ConcurrentHashMap
  • HashMap底层实现(数组+链表+红黑树),扩容机制,hash冲突解决
  • ConcurrentHashMap的实现原理(JDK 1.7 vs 1.8)

3. 异常处理

  • 异常体系结构(Throwable、Error、Exception)
  • Checked Exception vs Unchecked Exception
  • try-catch-finally执行顺序,finally一定会执行吗?
  • 自定义异常的使用场景

4. IO流

  • BIO、NIO、AIO的区别
  • 字节流与字符流的区别
  • 序列化与反序列化,serialVersionUID的作用

二、并发编程(高频重点)

1. 线程基础

  • 线程的创建方式(继承Thread、实现Runnable、Callable+FutureTask)
  • 线程的生命周期和状态转换
  • sleep() vs wait() vs yield() vs join()
  • 守护线程与用户线程

2. 锁机制

  • synchronized关键字原理(对象头、Monitor、锁升级)
  • volatile关键字作用(可见性、禁止指令重排序)
  • ReentrantLock vs synchronized
  • 公平锁与非公平锁、可重入锁、读写锁
  • 死锁的产生条件和避免方法

3. 并发工具类

  • ThreadLocal原理及内存泄漏问题
  • CountDownLatch、CyclicBarrier、Semaphore的使用场景
  • 线程池核心参数、工作原理、拒绝策略
  • 常见线程池类型(FixedThreadPool、CachedThreadPool等)

4. JUC包

  • AQS(AbstractQueuedSynchronizer)原理
  • CAS(Compare And Swap)原理及ABA问题
  • Atomic原子类的使用

三、JVM(必考深度)

1. 内存结构

  • 运行时数据区(堆、栈、方法区、程序计数器、本地方法栈)
  • 堆内存划分(新生代、老年代、Eden、Survivor)
  • 方法区与元空间(JDK 1.8变化)

2. 垃圾回收

  • 对象存活判断(引用计数 vs 可达性分析)
  • 四种引用类型(强、软、弱、虚引用)
  • 垃圾回收算法(标记清除、标记整理、复制算法、分代收集)
  • 垃圾收集器(Serial、ParNew、CMS、G1、ZGC)
  • Minor GC vs Full GC触发条件

3. 类加载

  • 类加载过程(加载、验证、准备、解析、初始化)
  • 双亲委派模型及其破坏
  • 自定义类加载器的应用场景

4. 性能调优

  • JVM参数配置(-Xms、-Xmx、-XX:MaxPermSize等)
  • OOM的几种情况及排查方法
  • 常用JVM调优工具(jps、jstat、jmap、jstack、VisualVM)

像这些内容在我的java专栏都涵盖了:https://www.nowcoder.com/creation/manager/columnDetail/0n9XOd

四、Spring框架(必考)

1. Spring核心

  • IOC(控制反转)与DI(依赖注入)原理
  • Bean的作用域(singleton、prototype等)
  • Bean的生命周期(实例化、属性赋值、初始化、销毁)
  • @Autowired vs @Resource注入方式
  • 循环依赖问题及Spring的解决方案(三级缓存)

2. AOP

  • AOP的实现原理(JDK动态代理 vs CGLIB)
  • 切面、切点、通知的概念
  • @Aspect注解的使用
  • 事务失效的场景

3. Spring MVC

  • 请求处理流程(DispatcherServlet工作原理)
  • 常用注解(@Controller、@RequestMapping、@ResponseBody等)
  • 拦截器与过滤器的区别

4. Spring Boot

  • 自动配置原理(@SpringBootApplication、@EnableAutoConfiguration)
  • Starter机制
  • 配置文件加载顺序
  • 常用注解(@ConditionalOnProperty等)

五、数据库(MySQL必考)

1. 索引

  • 索引类型(B+树、Hash、全文索引)
  • 聚簇索引与非聚簇索引
  • 索引失效场景(like左模糊、类型转换、函数计算等)
  • 联合索引与最左前缀原则
  • 覆盖索引、索引下推

2. 事务

  • ACID特性
  • 事务隔离级别(读未提交、读已提交、可重复读、串行化)
  • 脏读、不可重复读、幻读的区别
  • MVCC(多版本并发控制)原理
  • undo log、redo log、binlog的作用

3. 锁机制

  • 表锁、行锁、间隙锁、临键锁
  • 乐观锁与悲观锁
  • 死锁的产生和解决

4. 性能优化

  • 慢查询优化方法(explain分析)
  • 分库分表策略
  • 主从复制原理
  • 读写分离实现

六、Redis(高频)

1. 数据结构

  • 五种基本类型(String、List、Set、Hash、ZSet)及应用场景
  • 底层数据结构(SDS、跳表、压缩列表、哈希表等)

2. 持久化

  • RDB vs AOF的区别
  • 持久化策略选择

3. 高可用

  • 主从复制原理
  • 哨兵模式(Sentinel)
  • 集群模式(Cluster)

4. 常见问题

  • 缓存穿透、缓存击穿、缓存雪崩的解决方案
  • 分布式锁的实现(Redisson)
  • 数据一致性问题(双写一致性、延迟双删)
  • Redis过期策略与淘汰策略

七、消息队列(RabbitMQ/Kafka)

1. 基础概念

  • 消息队列的作用(解耦、异步、削峰)
  • 消息模型(点对点、发布订阅)

2. 可靠性保障

  • 消息丢失的解决方案
  • 消息重复消费的处理(幂等性)
  • 消息顺序性保证
  • 事务消息

3. 高可用

  • RabbitMQ的镜像队列
  • Kafka的分区与副本机制

八、分布式(进阶)

1. 分布式理论

  • CAP定理、BASE理论
  • 分布式事务解决方案(2PC、3PC、TCC、Saga、本地消息表)

2. 微服务

  • Spring Cloud核心组件(Eureka、Ribbon、Feign、Hystrix、Gateway)
  • 服务注册与发现
  • 负载均衡策略
  • 熔断降级限流

3. 分布式锁

  • Redis实现分布式锁
  • Zookeeper实现分布式锁
  • 两者的区别和选择

九、算法与数据结构(必考)

1. 常见算法

  • 排序算法(快排、归并、堆排序)
  • 二分查找及其变种
  • 动态规划(背包问题、最长公共子序列)
  • 贪心算法、回溯算法

2. 数据结构

  • 链表(反转、环检测、合并)
  • 树(二叉树遍历、BST、红黑树)
  • 图(DFS、BFS、最短路径)
  • 栈、队列、堆的应用

3. LeetCode高频题

  • 两数之和、三数之和
  • 无重复字符的最长子串
  • LRU缓存实现
  • 岛屿数量、括号匹配
  • 链表反转、合并K个有序链表

十、设计模式(常考)

  • 单例模式(懒汉、饿汉、双重检查锁、枚举)
  • 工厂模式、抽象工厂模式
  • 代理模式(静态代理、动态代理)
  • 观察者模式、策略模式
  • 模板方法模式、适配器模式

全部评论

(1) 回帖
加载中...
话题 回帖

热门推荐