![](https://upload-images.jianshu.io/upload_images/11633898-a055c2d7a303f062.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
现在是求职招聘高峰,总结了一份BAT(阿里、百度等)资深Java相关的面试题答案合集给到大家。
该板块的各面试章节,后续会持续迭代更新最新一线互联网公司的面试题目,建议收藏该页面,不定期更新查看~
**Java虚拟机(JVM)**
* JVM内存模型结构
* 方法区和直接内存什么时候会oom?
* JVM收集器G1的内存模型和CMS的内存模型有什么不同?
* jvm调优用过吗?
* 如何查看java内存使用情况(jconsole、命令jmap、jstack等等)
**Java集合类**
* Arraylist、linkedlist差异,应用场景;
* HashMap在JDK1.8有哪些改动?
* HashCurrentMap和HashMap的区别在哪里?
* Hashmap什么时候使用红黑树?
**Java多线程**
* 线程的几种状态,请画出具体的状态流转图?
* Java wait、sleep的区别?
* volatile如何实现指令重排序?
* 线程池中的阻塞队列如果满了怎么办(拒绝策略)?
* Synchronized和AQS异同,AQS公平非公平如何实现;
* 多线程里面对一个整型做加减为啥不能用volatile;
* voliatile和synchonized有什么区别?synchonized和jdk提供的Lock包又有什么区别?
**多线程面试答案参考**
[Java线程面试题](https://www.jianshu.com/p/6d99896fb8ac)
**算法**
* 二叉树宽度遍历
* 红黑树
* 数据结构的话,链表,树,图的基本知识得懂
* 了解树的先序遍历,中序遍历,后序遍历。图的广度优先搜索算法,深度优先搜索算法。
**Spring**
* Bean的生命周期;
* 什么是DI、为什么DI、DI的类型(构造器注入、方法注入);
* Spring boot和spring的差别,tomcat如何嵌入spring boot的/spring boot中的tomcat是如何启动的;
* Spring如何解决循环依赖问题
**Spring面试答案参考**
[Java面试题:String, String Pool, StringBuilder](https://www.jianshu.com/p/bf22716c8031)
**数据库**
* Join(inner、left、right)的区别?
* Union和union all区别?
* ACID,具体是啥意思?
* 事务隔离级别?
* 幻读和不可重复读的区别?
* Mysql和mongodb有啥区别?
**计算机网路**
* RPC和http的区别
* 详细描述TCP四次挥手过程
**Java中间件**
* 秒杀项目会使用到哪些中间件?
* 为什么Redis是单线程?
* 如何保证Redis和数据库双写一致?
* 如何设计一个消息队列中间件?
* 分库分表后,id主键如何处理?
* 如何设计一个类似Dubbo的RPC?
最后,给大家推荐一个**Java进阶内推交流群937053620**,不管你在地球哪个方位,不管你参加工作几年都欢迎你的入驻!(群内会免费提供一些群主收藏的免费学习书籍资料以及整理好的几百道面试题和答案文档!)
![](https://upload-images.jianshu.io/upload_images/11633898-502930daca368223.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
有疑问加站长微信联系(非本文作者)