Java面试范围
项目经验
- 项目整体概述,自己负责的项目功能模块
- 项目使用到的各种组件,以及其相互关系
- 复杂的业务问题、复杂的技术问题(准备一两个)
Java基础知识
面试常见的Java基础问题
- 基础类型和引用类型,自动拆箱、自动装箱
- string和int常量池问题、static、final
- 面向对象的基础知识(封装、继承、多态),重写和重载,接口和抽象类
- ==、equals、hashcode等,object中的方法
- 等等
集合框架
- list、set、collection
- arraylist、linkedlist,hashmap、linkedhashmap、concurrenthashmap
多线程
- 创建线程的方式
- Thread里面的方法
- 线程池相关
- 线程创建的四种方式
- CAS原理
- ThreadLocal和Volatile
- ThreadLocal关键字的理解
- ThreadPoolExecutor线程池
- 各种锁的问题
JVM相关问题
- JVM内存机制、Java内存机制
- 垃圾回收算法、垃圾判断、垃圾回收器的种类,GC
- OOM问题
- 类加载的过程,双亲委派模型
- 类加载的过程,双亲委派模型
- Java虚拟机(JVM)你只要看这一篇就够了!
- 等等
框架相关问题
- Springboot自动加载的原理
- SpringIOC和AOP的思想
- Spring 线程安全问题,Bean的作用域,Bean的生命周期
- Mybatis中的#和$问题
- SpringMVC的流程
- Spring事务失效的 8 大原因
- 等等
消息中间件
- 不同中间件的对比,重复提交,堆积问题,顺序消费等问题
Redis
- 数据结构、持久化机制、过期策略、内存不够怎么释放内存
- 高可用方案:单机、主从、哨兵、集群
- 缓存穿透、缓存雪崩、缓存击穿
- 缓存和数据的双一致性(双删)
- 为什么这么快
- redis基础
- Redisson框架官方介绍
- 分布式锁之Redis实现
- 等等
Mysql
- MyISAM与InnoDB 的区别(9个不同点)
- 深入解析MySQL索引原理
- MySQL——事务(Transaction)详解
- 数据库三大范式
- sql优化问题
- 索引原理,最左原则
- 谈谈MySQL的锁
- 事务
- 等等
其他
- 分布式事务
- 分布式session
- 接口幂等性
- linux,http,tcp/ip
- 代理-静态代理
- Java设计模式之JDK动态代理和CGLib动态代理的实现案例
- java经典讲解-静态代理和动态代理的区别
- Java两种动态代理JDK动态代理和CGLIB动态代理
- 等等