当前位置: 首页 > 后端技术 > Java

2021最新BAT高级Java面授合集:CMS+红黑树+线程状态+事务隔离+中间件

时间:2023-04-01 20:09:00 Java

即将进入求职高峰,总结一个BAT(阿里、百度、字节跳动、美团、etc.)seniorJava相关面试题合集就在这里送给大家。文末有相关2021年最新BAT高级java面试题答案~供参考JVMJVM内存模型结构方法区和直接内存什么时候会oom?JVM收集器G1的内存模型和CMS的内存模型有什么区别?你用过jvm调优吗?如何查看java内存使用情况(jconsole、commandjmap、jstack等)集合Arraylist、linkedlist区别、应用场景;HashMap在JDK1.8中有什么变化?HashCurrentMap和HashMap有什么区别?Hashmap什么时候使用红黑树?多线程线程的几种状态,请画出具体的状态流程图?Java等待和睡眠的区别?volatile如何实现指令重排序?如果线程池中的阻塞队列满了怎么办(拒绝策略)?Synchronized与AQS的异同,AQS中如何实现公平与不公平;为什么volatile不能用于多线程中的整数加减法;volatile和synchronized有什么区别?synchonized和jdk提供的Lock包有什么区别?算法红黑树数据结构二叉树宽度遍历,链表、树、图的基础知识,了解树的前序遍历、中序遍历、后序遍历。图广度优先搜索算法,深度优先搜索算法。SpringBean的生命周期;什么是DI,为什么要DI,DI的类型(构造函数注入,方法注入);springboot和spring的区别,tomcat如何嵌入springboot/tomcat在springboot中是如何启动的;Spring如何解决循环依赖问题;数据库Join(inner,left,right)的区别?Union和unionall有什么区别?酸到底是什么意思?事务隔离级别?幻读和不可重复读的区别?Mysql和mongodb有什么区别?中间件?为什么Redis是单线程的?如何保证Redis和数据库双写一致?如何设计消息队列中间件?分库分表后id主键如何处理?如何设计一个类Dubbo的RPC?Redis的五种基本数据类型的使用场景缓存穿透、缓存击穿、缓存雪崩Redis的过期策略和内存淘汰机制Redis的zset底层数据结构,为什么要用跳表而不是红黑树设计模式代理模式(应用:一是创建多线程的方式使用Runnable接口申请静态代理;另一种是申请动态代理到SpringAOP)Adapter模式(申请:一种是创建多线程的方式使用Callable接口;另一种是SpringMVC中的HandleAdapter)工厂模式(应用:一种是SpringIOC;另一种是Mybatis中的SqlSessionFactory使用的是简单工厂模式)单例模式(一般单例模式的代码需要手撕,主要讲DCL模式关于指令重排,反射可以破坏枚举以外的几种方式;单例模式的应用是:第一,SpringBean的作用域默认使用单例模式;二、Mybatis中的ErrorContext类也是采用单例模式,该类用于记录线程执行环境的错误信息)装饰器模式(应用:JAVA的IO流使用装饰器模式)装饰器模式和装饰器模式有什么区别代理模式?策略模式(应用:Arrays类的sort方法使用策略模式,Comparator接口为策略接口,将排序方法定义为策略,用户可以自定义排序策略,可以是升序也可以是降序)观察者模式和发布订阅模式有什么区别?(JDK源码已经为我们提供了一套观察者模式,Observer是观察者接口,Observable类就是观察者,是一个具体的类,提供了所有观察者角色的集合,还提供了添加观察者、移除观察者、通知观察者等方法)面试题很多这里就不一一展示了一个。以上BAT高级Java面试题答案【点此】即可获取!这里有一些Java学习笔记和BAT高频面试题供参考~