Skip to main content

知识点整理

一、Java 基础知识

  1. 面向对象特性

    • 封装、继承、多态、抽象的概念及应用
    • 重载(Overload)与重写(Override)的区别
    • 抽象类与接口的区别(Java 8+ 接口默认方法)
  2. 基本数据类型

    • 8 种基本数据类型及其包装类
    • 自动装箱与拆箱(Autoboxing)
    • Integer 缓存机制(Integer.valueOf()
  3. 字符串处理

    • StringStringBuilderStringBuffer 的区别
    • 字符串常量池(String Pool)
    • substring() 方法内存泄漏问题(Java 6)

二、集合框架

  1. 常用集合

    • ArrayListLinkedList 的底层结构
    • HashMap 实现原理(Java 7 数组+链表 vs Java 8 数组+链表+红黑树)
    • ConcurrentHashMap 线程安全机制(Java 7 分段锁 vs Java 8 CAS+Synchronized)
  2. 集合源码

    • HashMap 的扩容机制(resize())
    • CopyOnWriteArrayList 的写时复制原理
    • TreeMap 红黑树插入与平衡操作

三、多线程与并发

  1. 线程基础

    • 创建线程的三种方式及其优缺点
    • 线程生命周期(NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED)
    • 线程池核心参数(corePoolSize、maximumPoolSize、workQueue 等)
  2. 同步机制

    • synchronized 底层实现(对象头 Mark Word、Monitor)
    • ReentrantLocksynchronized 的区别
    • volatile 关键字(内存可见性、禁止指令重排)
  3. JUC 包

    • CountDownLatchCyclicBarrierSemaphore 的应用场景
    • FutureCompletableFuture 的使用
    • 原子类(AtomicInteger 等)的 CAS 实现

四、JVM 底层原理

  1. 内存模型

    • JVM 内存区域划分(堆、栈、方法区、本地方法栈、程序计数器)
    • 堆内存分代(新生代、老年代)及垃圾回收机制
    • OOM(OutOfMemoryError)常见原因及排查方法
  2. 类加载机制

    • 类加载过程(加载、验证、准备、解析、初始化)
    • 双亲委派模型(Parent Delegation Model)
    • 自定义类加载器实现
  3. 性能调优

    • GC 算法(CMS、G1、ZGC)的特点及适用场景
    • JVM 常用参数(-Xms、-Xmx、-XX:SurvivorRatio 等)
    • 性能分析工具(jstat、jmap、VisualVM、MAT)

五、数据库与ORM

  1. JDBC 操作

    • JDBC 连接步骤(注册驱动、获取连接、执行 SQL、处理结果、关闭资源)
    • 预编译语句(PreparedStatement)的优点
    • 数据库连接池原理(HikariCP、Druid)
  2. 事务管理

    • 数据库事务四大特性(ACID)
    • Spring 事务传播行为(PROPAGATION_REQUIRED、PROPAGATION_REQUIRES_NEW 等)
    • 分布式事务解决方案(2PC、TCC、Saga)
  3. ORM 框架

    • Hibernate 一级缓存与二级缓存
    • MyBatis 动态 SQL 实现
    • 延迟加载与 N+1 查询问题

六、设计模式与架构

  1. 设计模式

    • 单例模式(饿汉式、懒汉式、双重检查锁、静态内部类、枚举)
    • 工厂模式(简单工厂、工厂方法、抽象工厂)
    • 观察者模式与发布-订阅模式的区别
  2. 微服务架构

    • 服务拆分原则(按领域、按业务流程)
    • API 网关(Spring Cloud Gateway、Kong)
    • 服务注册与发现(Eureka、Consul、Nacos)
  3. 高并发设计

    • 限流算法(令牌桶、漏桶)
    • 熔断降级(Hystrix、Sentinel)
    • 缓存策略(Cache-Aside、Read-Through、Write-Through)

七、网络编程

  1. Socket 编程

    • TCP 与 UDP 的区别
    • BIO、NIO、AIO 的对比
    • 长连接与短连接的应用场景
  2. HTTP 协议

    • HTTP 1.1 与 HTTP 2.0 的主要区别
    • RESTful API 设计原则
    • 常见 HTTP 状态码(200、301、302、400、401、403、404、500)

八、新技术与框架

  1. Spring 框架

    • Spring IOC(控制反转)与 DI(依赖注入)
    • Spring AOP(面向切面编程)底层实现(JDK 动态代理 vs CGLIB)
    • Spring 事务管理实现原理
  2. 响应式编程

    • Reactor 框架(Flux、Mono)
    • 响应式流规范(Reactive Streams)
    • 背压机制实现原理
  3. 容器化与云原生

    • Docker 镜像与容器的区别
    • Kubernetes 核心概念(Pod、Deployment、Service)
    • CI/CD 流程(Jenkins、GitLab CI、GitHub Actions)

九、算法与数据结构

  1. 常见算法

    • 排序算法(快排、归并排序、堆排序)
    • 查找算法(二分查找)
    • 递归与动态规划(斐波那契数列、背包问题)
  2. 数据结构

    • 链表、栈、队列、树(二叉树、红黑树)
    • B 树与 B+ 树的区别
    • 图的遍历(DFS、BFS)

十、项目与场景题

  1. 项目经验

    • 项目架构设计与技术选型
    • 遇到的技术挑战及解决方案
    • 性能优化实践(数据库、JVM、代码层面)
  2. 场景设计

    • 高并发场景下的限流、熔断、降级方案
    • 海量数据处理(分库分表、数据分片)
    • 分布式唯一 ID 生成方案(UUID、Snowflake)