02.26 最新BAT资深Java面经合集:CMS+红黑树+线程状态+事务隔离+中间件

马上进入求职招聘高峰,总结了一份BAT(阿里、百度等)资深Java相关的面试题合集给到大家。

文末有相关的2019最新BAT资深java面试题答案~用于参考

JVM

JVM内存模型结构方法区和直接内存什么时候会oom?JVM收集器G1的内存模型和CMS的内存模型有什么不同?jvm调优用过吗?如何查看java内存使用情况(jconsole、命令jmap、jstack等等)

集合

Arraylist、linkedlist差异,应用场景;HashMap在JDK1.8有哪些改动?HashCurrentMap和HashMap的区别在哪里?Hashmap什么时候使用红黑树?

多线程

线程的几种状态,请画出具体的状态流转图?Java wait、sleep的区别?volatile如何实现指令重排序?线程池中的阻塞队列如果满了怎么办(拒绝策略)?Synchronized和AQS异同,AQS公平非公平如何实现;多线程里面对一个整型做加减为啥不能用volatile;voliatile和synchonized有什么区别?synchonized和jdk提供的Lock包又有什么区别?

算法

二叉树宽度遍历红黑树数据结构的话,链表,树,图的基本知识得懂了解树的先序遍历,中序遍历,后序遍历。图的广度优先搜索算法,深度优先搜索算法。

Spring

Bean的生命周期;什么是DI、为什么DI、DI的类型(构造器注入、方法注入);Spring boot和spring的差别,tomcat如何嵌入spring boot的/spring boot中的tomcat是如何启动的;Spring如何解决循环依赖问题;

数据库

Join(inner、left、right)的区别?Union和union all区别?ACID,具体是啥意思?事务隔离级别?幻读和不可重复读的区别?Mysql和mongodb有啥区别?

计算机网路

RPC和http的区别详细描述TCP四次挥手过程

中间件

秒杀项目会使用到哪些中间件?为什么Redis是单线程?如何保证Redis和数据库双写一致?如何设计一个消息队列中间件?分库分表后,id主键如何处理?如何设计一个类似Dubbo的RPC?

以上就总结的资深BAT(阿里、百度等) Java面试题合集,以下最新总结的2019 BAT高级Java必考题答案,用于参考~

2019 BAT高级Java必考题答案

答案获取方式

转发后+回复关键词 【bat】即可获取~

重要的话说三遍,先转发,转发,转发,然后私信才可拿到必考题答案哦!