Java面试总结

长期更新

Java基础语法部分

  1. 类的初始化过程
  2. 值传递和引用传递
  3. 静态变量和成员变量的差异
  4. 子类初始化的流程
  5. this和Super的差距
  6. 什么是父类对象的隐藏

Java反射部分

  1. 什么是反射
  2. 反射的应用场景

Java线程

  1. 线程的生命周期
  2. 线程的实现方式
  3. Java线程和物理机线程的关系
  4. 如何启动线程
  5. ThreadLocal

Java线程池

  1. 4种线程池
  2. 线程池的参数和含义
  3. 线程次的初始化流程

Java集合部分

JVM虚拟机部分

  1. JVM内存模型
  2. 方法区里都有什么东西
  3. 堆和栈里都有什么东西
  4. 新生代,老年代和永久代?
  5. MinorGC的过程
  6. 如何确定垃圾[引用计数法/可达性分析算法]
  7. 可以作为GCroot的有那些?
  8. 确定的垃圾什么时候会被回收?[不可达对象经过2次标记后依然是可回收对象才会进行回收原因]
  9. 如何清除垃圾?[分代收集]
  10. 4种引用类型
  11. 双亲委派模型
  12. 类加载过程

原则定理

  1. 数据库三范式
  2. 数据库反三范式
  3. 分布式CAP定理
  4. 面向对象常见设计原则
  5. RPC是什么
  6. ACID是什么

协议

  1. 了解过哪些协议[TCP/UDP]
  2. TCP/UDP的差异
  3. HTTPS和HTTP的差异
  4. HTTP1.1和2.0的差异
  5. 网络通信三要素是哪些?
  6. 简单讲下三次握手和四次挥手

数据库

  1. 数据库的隔离级别
  2. 简单讲下ACID
  3. 数据库三范式
  4. 数据库的反三范式
  5. 什么是回表
  6. 常见索引
  7. 索引的三星系统
  8. Mysql索引是那种数据结构
  9. 索引为什么不用B树
  10. 如何对SQL进行优化
  11. 数据库优化的步骤
  12. 什么情况下索引会失效

项目部分

Spring & SSM

  1. AOP的2种实现方式以及区别
  2. 什么是IOC/DI
  3. Servlet的生命周期
  4. Servlet和cgi的区别
  5. Servlet 和JSP的区别
  6. cookie和Seesion的区别
  7. SpringMVC的请求流程

Spring Boot

  1. 什么是Spring Boot

Spring Cloud

  1. Eureka/Ribbon/Feign/Hystrix/zuul 简单讲下
  2. 简单讲下隔离熔断和降级
  3. Hystrix如何实现容错
  4. 简单讲下Eureka的原理
  5. Spring Cloud和Dobbo的区别
  6. Eureka和ZK的异同
  7. Ribbon和Feign的差别
  8. 什么是微服务?

实际项目

  1. 简单讲下JWT
  2. 你们项目中的redis如何保证一致性的
  3. 项目中用到的线程池和选用理由
原文地址:https://www.cnblogs.com/threecha/p/13716116.html