Java八股文:核心知识点梳理

Java八股文:核心知识点梳理

经验文章nimo972025-05-26 0:20:461A+A-

一、Java基础

1. Java基本数据类型

  • 8种基本类型:
    • 整型:byte(1), short(2), int(4), long(8)
    • 浮点型:float(4), double(8)
    • 字符型:char(2)
    • 布尔型:boolean(1)
  • 包装类:Byte, Short, Integer, Long, Float, Double, Character, Boolean
  • 自动装箱与拆箱

2. String相关

  • String不可变性
  • String, StringBuilder, StringBuffer区别
    • String:不可变,线程安全
    • StringBuilder:可变,非线程安全
    • StringBuffer:可变,线程安全(synchronized)
  • 字符串常量池
  • intern()方法作用

3. 面向对象特性

  • 封装、继承、多态
  • 抽象类与接口区别
    • 抽象类:可以有构造方法,可以有普通成员变量
    • 接口:JDK8后可以有默认方法,JDK9可以有私有方法
  • 重载(Overload)与重写(Override)区别

二、Java集合框架

1. Collection体系

  • List:有序可重复
    • ArrayList:数组实现,查询快,增删慢
    • LinkedList:链表实现,增删快,查询慢
    • Vector:线程安全版ArrayList
  • Set:无序不可重复
    • HashSet:基于HashMap
    • LinkedHashSet:保持插入顺序
    • TreeSet:红黑树实现,有序
  • Queue
    • PriorityQueue:优先队列
    • ArrayDeque:双端队列

2. Map体系

  • HashMap:数组+链表+红黑树(JDK8)
    • 扩容机制:默认16,负载因子0.75,2倍扩容
    • 解决哈希冲突:拉链法
    • 线程不安全
  • LinkedHashMap:保持插入/访问顺序
  • TreeMap:红黑树实现,按键排序
  • ConcurrentHashMap:线程安全
    • JDK7:分段锁
    • JDK8:CAS+synchronized

三、JVM相关

1. 内存区域

  • 程序计数器
  • 虚拟机栈(Stack)
  • 本地方法栈
  • 堆(Heap)
  • 方法区(元空间)

2. 垃圾回收

  • 判断对象可回收:
    • 引用计数法(循环引用问题)
    • 可达性分析法(GC Roots)
  • 垃圾回收算法:
    • 标记-清除
    • 标记-整理
    • 复制算法
    • 分代收集
  • 垃圾收集器:
    • Serial/Serial Old
    • ParNew
    • Parallel Scavenge/Parallel Old
    • CMS
    • G1
    • ZGC

3. 类加载机制

  • 加载过程:
    • 加载
    • 验证
    • 准备
    • 解析
    • 初始化
  • 类加载器:
    • Bootstrap ClassLoader
    • Extension ClassLoader
    • Application ClassLoader
    • 自定义ClassLoader
  • 双亲委派模型

四、多线程与并发

1. 线程基础

  • 创建线程方式:
    • 继承Thread类
    • 实现Runnable接口
    • 实现Callable接口
  • 线程状态:
    • NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED

2. 线程安全

  • synchronized
    • 修饰实例方法
    • 修饰静态方法
    • 同步代码块
  • volatile
    • 可见性
    • 禁止指令重排序
  • CAS与原子类
  • ThreadLocal

3. JUC包

  • Lock体系:ReentrantLock, ReadWriteLock
  • 并发集合:ConcurrentHashMap, CopyOnWriteArrayList
  • 线程池:
    • ThreadPoolExecutor参数
    • 执行流程
    • 拒绝策略
  • 同步工具:CountDownLatch, CyclicBarrier, Semaphore

五、IO与NIO

1. BIO/NIO/AIO

  • BIO:同步阻塞
  • NIO:同步非阻塞(Channel, Buffer, Selector)
  • AIO:异步非阻塞

2. 网络编程

  • Socket编程
  • NIO实现多路复用
  • Netty框架特点

六、设计模式

1. 创建型模式

  • 单例模式
  • 工厂模式
  • 建造者模式

2. 结构型模式

  • 适配器模式
  • 代理模式
  • 装饰器模式

3. 行为型模式

  • 观察者模式
  • 策略模式
  • 模板方法模式

七、Spring框架

1. Spring核心

  • IOC/DI原理
  • AOP实现原理
  • Bean生命周期
  • 事务管理

2. Spring MVC

  • 请求处理流程
  • 常用注解

3. Spring Boot

  • 自动配置原理
  • 启动流程
  • 常用starter

八、数据库与ORM

1. MySQL

  • 索引原理(B+树)
  • 事务特性(ACID)
  • 隔离级别
  • 锁机制

2. MyBatis

  • #{}与${}区别
  • 一级缓存与二级缓存
  • 动态SQL

九、分布式与微服务

1. 分布式基础

  • CAP理论
  • BASE理论
  • 一致性算法:Paxos, Raft

2. 微服务组件

  • 服务注册发现:Eureka, Nacos
  • 服务调用:Feign, Ribbon
  • 熔断限流:Hystrix, Sentinel
  • 网关:Zuul, Gateway
  • 配置中心:Config, Nacos

3. 分布式事务

  • 2PC
  • 3PC
  • TCC
  • 本地消息表
  • Seata框架

十、消息队列

1. Kafka

  • 架构设计
  • 消息存储
  • 高可用机制

2. RabbitMQ

  • 交换机类型
  • 消息确认机制

3. RocketMQ

  • 消息存储
  • 事务消息

十一、Redis

1. 数据类型

  • String, Hash, List, Set, ZSet
  • 特殊数据结构:BitMap, HyperLogLog

2. 持久化

  • RDB
  • AOF

3. 高可用

  • 主从复制
  • 哨兵模式
  • Cluster集群

4. 应用场景

  • 缓存
  • 分布式锁
  • 限流

十二、性能优化

1. JVM调优

  • 内存分配
  • GC日志分析
  • 常用参数

2. SQL优化

  • 执行计划
  • 索引优化
  • 分库分表

3. 代码优化

  • 减少对象创建
  • 合理使用集合
  • 并发控制

以上是Java面试中常见的技术点大概梳理,实际面试中可能会根据岗位需求有所侧重。
需要这份Java面试题(2025版)文档的小伙伴,观住+留“求资料”免费领取!

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7