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

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

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

JVM

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

集合

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

多线程

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

算法

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

Spring

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

数据库

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

计算机网路

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

中间件

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

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


2020 BAT高级Java必考题答案

答案获取方式

点赞+关注,加助理VX:mxx2020666,即可免费领取

猜你喜欢

转载自blog.csdn.net/m0_46995061/article/details/108980460