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),确保事务的一致性

经验分享 程序员 微信小程序 职场和发展