Java开发工程师面试常见问题
本文为笔者身体经历总结,此知识指引可以为有面试需求或者想换工作的指引学习方向,提前准备这些知识点,可以帮助少走很多弯路。
Java集合
HashMap的内部结构? 答案: HashTable和ConcurrentHashMap的区别? 答案:
Java常用对象
StringBuilder和StringBuffer的区别? 答案:
设计模式
单例模式的实现 懒汉模式、饿汉模式
并发相关
AtomicInteger如何实现? 答案:
Synchronized和ReentrantLock的区别?
多线程
实例化三个线程,一个线程打印a,一个线程打印b,一个线程打印c,三个线程同时执行,要求打印出10个连着的abc(笔试)。 答案:
多线程实现方式,多线程的运行状态,以及多线程之间如何通讯? 答案: 答案: 答案:
Java多线程方法里面的参数的解释,是否看过源码? 答案:
JVM相关
JVM垃圾回收算法 答案:
JVM内存模型 答案:
内存溢出、内存泄漏 答案:
Spring相关
SpringIOC原理? 答案:
SpringAOP原理? 答案:
SpringMVC请求的流程 答案:
ContextLoaderListener和 DispatcherServlet的作用是什么?是否能删除一个? 答案:
Mybatis相关
Mybatis事务传播属性和隔离级别 答案:
Mybatis二级缓存 答案:
数据库
数据库优化
数据库索引失效的场景?
mysql数据库引擎,mysql中的Scheme
mysql的主键为什么设置自增编号? 从数据库索引实现原理分析
数据库主备数据复制机制?
中间件
Redis除了缓存还有哪些功能? 配置、MQ、注册中心
Redis数据持久化机制?
zookeeper的作用
Zookeeper分布式锁实现方式
Zookeeper选主模式过程?
缓存雪崩、缓存击穿、缓存穿透
场景
商品秒杀的设计
金钱事务性问题 保证查询和更新在同一条sql语句中(CAS),确保事务的一致性
