突破年薪百万难关!吃透这套Java真题合集
前言
我相信大多 Java 开发的程序员或多或少经历过BAT一些大厂的面试,也清楚一线互联网大厂 Java 面试是有一定难度的,小编经历过多次面试,有满意的也有备受打击的。因此呢小编想把自己这么多次面试经历以及近期的面试真题来个汇总分析,阐述下如何去准备,去回答面试官的提问,可以和面试官有个愉快的交谈。
小编分享的这份BAT必考Java真题合集包含了性能调优、并发编程、框架源码、分布式框架、微服务架构、项目实战、互联网工具等七个大专题技术点真题模块分享,都是小编在各个大厂面试总结出来的面试真题 ,已经有很多粉丝靠这份真题合集拿下面试收到了offer

小编这篇分享篇幅可能有点长,观看的朋友可以先了解一下目录
一、性能调优
JVM面试题
MySQL面试题
Tomcat调优面试题
Nginx调优面试题
二、并发编程
并发同步(乐观锁、悲观锁、重入锁、公平锁、非公平锁及锁的粒度详解)
Executor线程池面试题
三、框架源码
Spring ioc面试题
Spring aop面试题
Spring mvc面试题
Spring面试题
Mybatis面试题
四、分布式框架(分布式中间件)
RabbitMQ面试题
RocketMQ面试题
Kafka面试题
Redis面试题
Zookeeper面试题
Dubbo面试题
Netty面试题
五、微服务架构
Spring Boot面试题
Spring cloud面试题
六、项目实战
七、互联网工具
Linux面试题
一、性能调优
JVM面试题
1、什么情况下会发生栈内存溢出。
java中的栈一般存储的是栈帧。
所以栈内存溢出就是栈帧的数量太多超过了系统预先设定的值,所以导致内存溢出。
可能的原因就是方法循环调用,栈帧充满了整个栈后溢出。
2、说一下 JVM 的主要组成部分及其作用?

类加载器:加载类文件到内存。Class loader只管加载,只要符合文件结构就加载,至于能否运行,它不负责,那是有Exectution Engine 负责的。
执行引擎:也叫解释器,负责解释命令,交由操作系统执行。
本地库接口:本地接口的作用是融合不同的语言为java所用
运行时数据区:

3、详解JVM内存模型
java定义内存模型的目的是:为了屏蔽各种硬件和操作系统的内存访问之间的差异。 java内存模型规定了所有的变量都存储在主内存中,每条线程拥有自己的工作内存,工作内存保存了主内存中变量的副本。
4、说一下 JVM 运行时数据区
5、JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor。
6、深拷贝和浅拷贝
7、为什么要分为Eden和Survivor?为什么要设置两个Survivor区?
8、说一下堆栈的区别?
9、你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。
10、队列和栈是什么?有什么区别?
11、HotSpot虚拟机对象探秘
12、JVM内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存。
13、对象的创建
14、简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。
15、为对象分配内存
16、什么是类加载器?
17、处理并发安全问题
18、为什么需要双亲委派模型?
19、对象的访问定位
20、说说你知道的几种主要的JVM参数
21、句柄访问
22、怎么打破双亲委派模型?
23、直接指针
24、内存溢出异常
25、怎么打出线程栈信息
26、Java会存在内存泄漏吗?请简单描述
27、垃圾收集器
28、垃圾收集器与内存分配策略
29、简述Java垃圾回收机制
30、GC是什么?为什么要GC
31、虚拟机性能监控与故障处理工具
32、垃圾回收的优点和原理。并考虑2种回收机制
33、垃圾回收器的基本原理是什么?
34、Java 中都有哪些引用类型?
35、怎么判断对象是否可以被回收?
36、垃圾回收器可以马上回收内存吗?
37、有什么办法主动通知虚拟机进行垃圾回收?
38、在Java中,对象什么时候可以被垃圾回收
39、JVM中的永久代中会发生垃圾回收吗
40、说一下 JVM 有哪些垃圾回收算法?
41、标记-清除算法标记无用对象,然后进行清除回收。
42、复制算法
43、标记-整理算法
44、分代收集算法
45、虚拟机类加载机制
46、说一下 JVM 有哪些垃圾回收器?
47、详细介绍一下 CMS 垃圾回收器?
48、虚拟机字节码执行引擎
49、新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?
50、类加载及执行子系统的案例与实战
60、简述分代垃圾回收器是怎么工作的?
61、线程安全与锁优化
62、内存分配策略
63、大对象直接进入老年代
64、对象优先在 Eden 区分配
65、虚拟机类加载机制
66、描述一下JVM加载Class文件的原理机制
67、长期存活对象将进入老年代
68、简述java内存分配与回收策率以及Minor GC和Major GC
69、简述java类加载机制?
70、说一下类装载的执行过程?
71、什么是类加载器,类加载器有哪些?
72、JVM调优
73、什么是双亲委派模型?
74、常用的 JVM 调优的参数都有哪些?
75、说一下 JVM 调优的工具?
MySQL面试题
1、为什么要使用数据库
2、MySQL 中有哪几种锁?
3、数据保存在文件的优缺点?
4、MySQL 中有哪些不同的表格?
5、什么是SQL?
6、简述在MySQL 数据库中 MyISAM 和InnoDB 的区别
7、数据库三大范式是什么
8、MySQL 中InnoDB 支持的四种事务隔离级别名称,以及逐
9、MySQL的binlog有有几种录入格式?分别有什么区别?
10、CHAR 和VARCHAR 的区别?
11、列对比运算符是什么?
12、什么是索引?
13、主键和候选键有什么区别?
14、myisamchk 是用来做什么的?
15、InnoDB引擎的4大特性
16、你怎么看到为表格定义的所有索引?
17、如果一个表有一列定义为TIMESTAMP,将发生什么?
18、MySQL_fetch_array 和MySQL_fetch_object 的区别是什么?
19、索引有哪些优缺点?
20、BLOB 和TEXT 有什么区别?
21、可以使用多少列创建索引?
22、索引使用场景(重点)
23、MyISAM 表格将在哪里存储,并且还提供其存储格式?
24、MySQL 如何优化DISTINCT?
25、如何显示前 50 行?
26、MySQL 里记录货币用什么字段类型好
27、索引有哪几种类型?
28、什么是非标准字符串类型?
29、索引的数据结构(b树,hash)
30、MySQL 支持事务吗?
31、NOW()和 CURRENT_DATE()有什么区别?
32、MySQL 有关权限的表都有哪几个?
33、列的字符串类型可以是什么?
34、什么是通用 SQL 函数?
35、MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?
36、锁的优化策略
37、索引的底层实现原理和优化
38、存储时期
39、什么情况下设置了索引但无法使用
40、实践中如何优化 MySQL
41、完整性约束包括哪些?
42、优化数据库的方法
43、简单描述 MySQL 中,索引,主键,唯一索引,联合索引
44、数据库中的事务是什么?
45、Myql 中的事务回滚机制概述
46、SQL 注入漏洞产生的原因?如何防止?
47、为表中得字段选择合适得数据类型
48、索引算法有哪些?
49、SQL 语言包括哪几部分?每部分都有哪些操作关键字?
50、对于关系型数据库而言,索引是相当重要的概念,请回答
51、解释 MySQL 外连接、内连接与自连接的区别
Tomcat调优面试题
1、Tomcat是什么?
2、Tomcat的缺省端口是多少,怎么修改?
3、Tomcat工作模式?
4、tomcat 有哪几种Connector 运行模式(优化)?
5、Tomcat顶层架构
6、Tomcat有几种部署方式?
7、Connector和Container的微妙关系
8、Tomcat一个请求的完整过程
9、tomcat容器是如何创建servlet类实例?用到了什么原理?
10、Container架构分析
11、tomcat 如何优化?
12、Container如何处理请求的
13、打印类的加载情况及对象的回收情况
14、垃圾回收策略调优
15、共享session处理
16、关于Tomcat的session数目
17、添加JMS远程监控
18、专业点的分析工具有
19、监视Tomcat的内存使用情况
20、内存调优
21、Tomcat历史
22、Tomcat总体架构
23、创建Server
24、你怎样给 tomcat 去调优?
25、如何加大 tomcat 连接数
26、tomcat 中如何禁止列目录下的文件
Nginx调优面试题
1、为什么Nginx性能这么高?
2、什么是Nginx?
3、什么是正向代理和反向代理?
4、为什么要用Nginx?
5、Nginx怎么处理请求的?
6、Nginx应用场景?
7、使用“反向代理服务器的优点是什么?
8、Nginx的优缺点?
9、Nginx目录结构有哪些?
10、Nginx静态资源?
11、如何用Nginx解决前端跨域问题?
12、基于虚拟主机配置域名
13、location的作用是什么?
14、Nginx配置文件nginx.conf有哪些属性模块?
15、Nginx虚拟主机怎么配置?
16、基于端口的虚拟主机
17、限流怎么做的?
18、location的语法能说出来吗?
19、Location正则案例
20、限制并发连接数
21、为什么要做动静分离?
22、漏桶流算法和令牌桶算法知道?
23、突发限制访问频率(突发流量):
24、Nginx负载均衡的算法怎么实现的?策略有哪些?
25、怎么限制浏览器访问?
26、Rewrite全局变量是什么?
27、正常限制访问频率(正常流量):
28、Nginx怎么判断别IP不可访问?
29、Nginx怎么做的动静分离?
二、并发编程
多线程面试题:
1、什么是多线程,多线程的优劣?
2、并发编程的优缺点:
3、在 Java 程序中怎么保证多线程的运行安全?
4、并行和并发有什么区别?
5、并发编程有什么缺点
6、并发编程三要素是什么?
7、进程与线程的区别?
8、什么是线程和进程?
9、为什么要使用并发编程?
10、什么是上下文切换?
11、如何在 Windows 和 Linux 上查找哪个线程cpu利用率最高?
12、线程和进程区别
13、什么是线程死锁?
14、如何避免线程死锁?
15、守护线程和用户线程有什么区别呢?
16、创建线程有哪几种方式?
17、说一下 runnable 和 callable 有什么区别?
18、线程的 run()和 start()有什么区别?
19、形成死锁的四个必要条件是什么?
20、说说线程的生命周期及五种基本状态?
21、为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?
22、什么是 Callable 和 Future?
23、什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?
24、sleep() 和 wait() 有什么区别?
25、你是如何调用 wait() 方法的?使用 if 块还是循环?为什么?
26、请说出与线程同步以及线程调度相关的方法。
27、什么是 FutureTask?
28、为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在 Object 类里?
29、Java 中用到的线程调度算法是什么?
30、线程的调度策略
31、Thread 类中的 yield 方法有什么作用?
32、为什么 Thread 类的 sleep()和 yield ()方法是静态的?
33、Java 中 interrupted 和 isInterrupted 方法的区别?
34、如何停止一个正在运行的线程?
35、什么是阻塞式方法?
36、为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?
37、线程的 sleep()方法和 yield()方法有什么区别?
38、如何在两个线程间共享数据?
39、Java 如何实现多线程之间的通讯和协作?
40、Java 中你怎样唤醒一个阻塞的线程?
41、在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?
42、notify() 和 notifyAll() 有什么区别?
43、同步方法和同步块,哪个是更好的选择?
44、在 Java 程序中怎么保证多线程的运行安全?
45、如果你提交任务时,线程池队列已满,这时会发生什么
46、什么叫线程安全?servlet 是线程安全吗?
47、线程类的构造方法、静态块是被哪个线程调用的
48、什么是线程同步和线程互斥,有哪几种实现方式?
49、一个线程运行时发生异常会怎样?
50、synchronized 的作用?
51、说说自己是怎么使用 synchronized 关键字,在项目中用到了吗
52、Java 中怎么获取一份线程 dump 文件?你如何在 Java 中获取线程堆栈?
53、你对线程优先级的理解是什么?
54、Java 线程数过多会造成什么异常?
55、什么是自旋?
56、当一个线程进入一个对象的 synchronized 方法 A 之后,其它线程是否可进入此对象的 synchronized 方法 B?
57、线程 B 怎么知道线程 A 修改了变量
58、synchronized、volatile、CAS 比较
59、synchronized 和 ReentrantLock 区别是什么?
60、说一下 synchronized 底层实现原理?
61、synchronized 和 Lock 有什么区别?
62、多线程中 synchronized 锁升级的原理是什么?
63、volatile 能使得一个非原子操作变成原子操作吗?
64、volatile 关键字的作用
65、volatile 修饰符的有过什么实践?
66、Java 中能创建 volatile 数组吗?
67、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势?
68、什么是 CAS?
69、什么是死锁?
70、volatile 变量和 atomic 变量有什么不同?
71、synchronized 和 volatile 的区别是什么?
72、CAS 的会产生什么问题?
73、产生死锁的条件是什么?怎么防止死锁?
74、死锁与活锁的区别,死锁与饥饿的区别?
75、多线程锁的升级原理是什么?
76、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
Executor线程池面试题
1、什么是 Executor 框架?
2、有哪几种创建方式?
3、在 Java 中 Executor 和 Executors 的区别?
4、线程池有什么优点?
5、为什么使用 Executor 框架?
6、什么是线程组,为什么在 Java 中不推荐使用?
7、什么是线程池?
8、你知道怎么创建线程池吗?
9、ThreadPoolExecutor构造函数重要参数分析?
10、线程池中 submit() 和 execute() 方法有什么区别?
11、线程池都有哪些状态?
12、ThreadPoolExecutor饱和策略?
13、Executors和ThreaPoolExecutor创建线程池的区别?
14、在 Java Concurrency API 中有哪些原子类(atomic classes)?
15、什么是原子操作?
16、说一下 atomic 的原理?
17、并发工具之CountDownLatch与CyclicBarrier
18、在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?
19、ScheduledThreadPoolExecutor详解FutureTask详解?
20、Semaphore 有什么作用
21、什么是线程间交换数据的工具Exchanger
22、并发工具之Semaphore与Exchanger
23、常用的并发工具类有哪些?
三、框架源码
Spring ioc面试题
1、在配置类上写@CompentScan 注解来进行包扫描
2、你对spring ioc容器的定义:
3、xml 配置文件的形式 和配置类的形式的区别
4、FilterType.CUSTOM 自定义类型如何使用?
5、排除用法 excludeFilters
6、说说@ComponentScan.Filter type 的类型
7、什么是 bean 的生命周期?
8、如何@Scope 指定的作用域方法取值?
9、如何通过实现 FacotryBean 接口来实现注册组件?
10、
AnnotationConfigApplicationContex 的创建为我们做了什么?
11、如何通过 InitializingBean 和 DisposableBean 的二个接口实现?
12、我们自己的组件如何使用 Spring Ioc 底层组件?
13、控制反转(IOC)有什么作用
14、IOC的优点是什么?
15、Spring IOC 的实现机制
Spring aop面试题
1、什么是Spring AOP?
2、简述一下Spring AOP的设计原理
3、代理如何进行创建和调用的?
4、Spring中有哪些通知类型(advice)?
5、在Spring AOP中关注点和横切关注点有什么不同?
6、Spring AOP的代理是什么?
7、说说AspectJAutoProxyRegistrar 类是用来干什么的?
8、代理对象创建
9、代理对象调用目标方法
Spring mvc面试题
1、Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?
2、什么是Spring MVC?简单介绍下你对Spring MVC的理解?
3、什么是Spring MVC框架的控制器?
4、Spring MVC的主要组件?
5、请描述Spring MVC的工作流程?
6、什么是DispatcherServlet
7、描述一下 DispatcherServlet 的工作流程?
8、Spring MVC的优点
9、注解原理是什么
10、SpingMvc中的控制器的注解一般用哪个,有没有别的注解可以替代?
11、MVC框架
12、MVC是什么?MVC设计模式的好处有哪些
13、@RequestMapping注解的作用
14、@ResponseBody注解的作用
15、Spring MVC常用的注解有哪些?
16、@PathVariable和@RequestParam的区别
17、Spring MVC与Struts2区别
18、@Controller注解的作用
19、Spring MVC怎么和AJAX相互调用的?
20、Spring MVC的异常处理?
21、如果在拦截请求中,我想拦截get方式提交的方法,怎么配置
22、怎样在方法里面得到Request,或者Session?
23、Spring MVC中函数的返回值是什么?
24、Spring MVC怎么样设定重定向和转发的?
25、Spring MVC用什么对象从后台向前台传递数据的?
26、Spring MVC里面拦截器是怎么写的
27、如何解决POST请求中文乱码问题,GET的又如何处理呢?
28、如果想在拦截的方法里面得到从前台传入的参数,怎么得到?
29、如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
30、怎么样把ModelMap里面的数据放入Session里面?
Spring面试题
1、Spring的优缺点是什么?
2、什么是spring?
3、Spring框架的设计目标,设计理念,和核心是什么
4、Spring的俩大核心概念
5、Spring 应用程序有哪些不同组件?
6、Spring 框架中都用到了哪些设计模式?
7、Spring框架中有哪些不同类型的事件
8、详细讲解一下核心容器(spring context应用上下文) 模块
9、Spring有哪些应用场景
10、Spring由哪些模块组成?
11、什么是基于Java的Spring注解配置? 给一些注解的例子
12、怎样开启注解装配?
13、@Required 注解有什么作用
14、使用 Spring 有哪些方式?
15、@Autowired和@Resource之间的区别
16、@RequestMapping 注解有什么用?
17、解释对象/关系映射集成模块
18、spring DAO 有什么用?
19、spring JDBC API 中存在哪些类?
20、使用Spring通过什么方式访问Hibernate?
21、Spring事务的实现方式和实现原理
22、Spring支持的事务管理类型, spring 事务实现方式有哪些?
23、@Qualifier 注解有什么作用
24、使用 Spring 访问 Hibernate 的方法有哪些?
25、Spring框架的事务管理有哪些优点?
26、解释JDBC抽象和DAO模块
Mybatis面试题
1、传统JDBC开发存在的问题
2、MyBatis是什么?
3、MyBatis框架适用场景
4、ORM是什么
5、Mybatis优缺点
6、为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
7、Hibernate 和 MyBatis 的区别
8、MyBatis编程步骤是什么样的?
9、JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?
10、MyBatis的功能架构是怎样的
11、为什么需要预编译
12、请说说MyBatis的工作原理
13、Mybatis都有哪些Executor执行器?它们之间的区别是什么?
14、MyBatis的解析和运行原理
15、Mybatis中如何指定使用哪一种Executor执行器?
16、模糊查询like语句该怎么写
17、MyBatis的框架架构设计是怎么样的
18、在mapper中如何传递多个参数
19、如何获取生成的主键
20、什么是MyBatis的接口绑定?有哪些实现方式?
21、Mapper 编写有哪几种方式?
22、当实体类中的属性名和表中的字段名不一样 ,怎么办
23、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
24、使用MyBatis的mapper接口调用时有哪些要求?
25、简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?
26、简述Mybatis的插件运行原理,以及如何编写一个插件。
27、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
28、Mybatis如何执行批量操作
29、Mybatis映射文件中,如果A标签通过include引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?
30、Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
31、Mybatis是否可以映射Enum枚举类?
32、Mybatis的一级、二级缓存
33、Mybatis是如何进行分页的?分页插件的原理是什么?
34、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
35、Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?
36、MyBatis实现一对一,一对多有几种方式,怎么操作的?
四、分布式框架(分布式中间件)
RabbitMQ面试题
1、解耦、异步、削峰是什么?
2、什么是MQ?
3、你们公司生产环境用的是什么消息中间件?
4、MQ的优点?
5、Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?
6、消息队列有什么缺点
7、rabbitmq 的使用场景
8、什么是RabbitMQ?
9、RabbitMQ的工作模式
10、MQ 有哪些常见问题?如何解决这些问题?
11、 消息如何分发?
12、RabbitMQ基本概念
13、消息基于什么传输?
14、如何保证RabbitMQ消息的顺序性?
15、如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性?
16、如何保证RabbitMQ消息的可靠传输?
17、如何保证高可用的?RabbitMQ 的集群
18、消息怎么路由?
19、如何解决消息队列的延时以及过期失效问题?
20、消息队列满了以后该怎么处理?有几百万消息持续积压几小时,怎么办?
21、 为什么不应该对所有的 message 都使用持久化机制?
22、如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
23、设计MQ思路
RocketMQ面试题
1、中小型公司首选RabbitMQ的原因是?
2、消息低延迟的原因?
3、Broker的Buffer满了怎么办?
4、回溯消息:
5、消息中间件的主要功能是?
6、RabbitMQ是什么?
7、RabbitMQ物理部署结构?
8、RabbitMQ的逻辑结构?
9、RabbitMQ数据存储结构是怎么样的?
10、RabbitMQ的使用场景?
11、RabbitMQ的基本概念?
12、RabbitMQ的工作模式?
Kafka面试题
1、producer 是否直接将数据发送到 broker 的 leader(主节点)?
2、Kafka 的设计时什么样的呢?
3、Kafka 消息是采用 Pull 模式,还是 Push 模式?
4、Kafka 高效文件存储设计特点:
5、Kafka 判断一个节点是否还活着有那两个条件?
6、Kafa consumer 是否可以消费指定分区消息?
7、数据传输的事物定义有哪三种?
8、Kafka 存储在硬盘上的消息格式是什么?
9、Kafka 新建的分区会在哪个目录下创建
10、kafka 的 ack 机制
11、消费者负载均衡策略
12、Kafka 的消费者如何消费数据
13、Kafka 与传统消息系统之间有三个关键区别
14、partition 的数据如何保存到硬盘
15、Kafka 创建 Topic 时如何将分区放置到不同的 Broker 中
16、kafaka 生产数据时数据的分组策略
17、数据有序
18、数据一致性保证
Redis面试题
1、Redis回收使用的是什么算法?
2、什么是Redis?
3、Redis有哪些数据类型
4、Redis有哪些优缺点?
5、Redis回收进程如何工作的?
6、使用redis有哪些好处?
7、为什么要用 Redis / 为什么要用缓存
8、假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?
9、Redis为什么这么快
10、Redis的应用场景
11、为什么要用 Redis 而不用 map/guava 做缓存?
12、如何选择合适的持久化方式
13、使用Redis做过异步队列吗,是如何实现的
14、Redis key的过期时间和永久有效分别怎么设置?
15、我们知道通过expire来设置key 的过期时间,那么对过期的数据怎么处理呢?
16、Redis如何实现延时队列
17、持久化
18、Redis 的持久化机制是什么?各自的优缺点?
19、Redis主要消耗什么物理资源?
20、Redis的内存淘汰策略有哪些
21、Redis持久化数据和缓存怎么做扩容?
22、Redis的过期键的删除策略
23、Redis的内存用完了会发生什么?
24、什么是事务?
25、MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据
26、事务管理(ACID)概述
27、Redis如何做内存优化?
28、Redis事务保证原子性吗,支持回滚吗
29、哨兵模式
30、基于客户端分配
31、Redis线程模型
32、Redis事务支持隔离性吗
33、Redis事务的概念
34、Redis集群之间是如何复制的?
35、Redis事务的三个阶段
36、Redis事务相关命令
37、Redis事务其他实现
38、Redis集群最大节点个数是多少?
39、官方Redis Cluster 方案(服务端路由查询)
40、为什么要做Redis分区?
41、基于代理服务器分片
42、说说Redis哈希槽的概念?
43、Redis集群会有写操作丢失吗?为什么?
44、生产环境中的 redis 是怎么部署的?
45、Redis集群的主从复制模型是怎样的?
46、Redis是单线程的,如何提高多核CPU的利用率?
47、Redis 主从架构
48、Redis实现分布式锁
49、Redis官方为什么不提供Windows版本?
50、Redis集群如何选择数据库?
51、Redis如何做大量数据插入?
52、Redis分区有什么缺点?
53、一个字符串类型的值能存储最大容量是多少?
54、什么是redis穿透?
55、如何解决 Redis 的并发竞争 Key 问题
56、什么是redis穿透?
57、Redis和Redisson有什么关系?
58、你知道有哪些Redis分区实现方案?
59、什么是 RedLock
60、缓存热点key
61、Redis与Memcached的区别
62、什么是redis雪崩?
63、Redis常见性能问题和解决方案?
64、缓存预热
65、缓存降级
66、分布式Redis是前期做还是后期规模上来了再做好?为什么?
67、如何保证缓存与数据库双写时的数据一致性?
68、Redis支持的Java客户端都有哪些?官方推荐用哪个?
69、Jedis与Redisson对比有什么优缺点?
70、热点数据和冷数据
Zookeeper面试题
1、集群支持动态添加机器吗?
2、 ZooKeeper 是什么?
3、 集群最少要几台机器,集群规则是怎样的?
4、 Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?
5、Zookeeper 文件系统
7、 Zookeeper Watcher 机制 -- 数据变更通知
8、 Zookeeper 的典型应用场景
9、说说ZooKeeper文件系统
10、Zookeeper节点宕机如何处理?
11、说几个 zookeeper 常用的命令。
12、Zookeeper 有哪几种几种部署模式?
13、ZooKeeper 提供了什么?
14、Zookeeper的java客户端都有哪些?
15、Zookeeper有哪几种几种部署模式?
16、ZAB 协议?
17、Zookeeper的典型应用场景?
18、 ZAB 和 Paxos 算法的联系与区别?
19、四种类型的数据节点 Znode
20、Znode有哪些类型
21、客户端注册 Watcher 实现
22、 ACL 权限控制机制
23、服务端处理Watcher的流程?
24、客户端回调 Watcher流程?
25、客户端回调 Watcher
26、说一下Zookeeper Watcher机制
27、Zookeeper对节点的 watch监听通知是永久的吗?为什么不是永久的?
28、客户端注册Watcher的流程?
29、说说ACL权限控制机制
30、Chroot 特性
31、 zookeeper 负载均衡和 nginx 负载均衡区别
32、Zookeeper 下 Server 工作状态
33、Zookeeper 下 Server工作状态有哪些?
34、ZooKeeper和dubbo的区别?
35、zookeeper 是如何保证事务的顺序一致性的?
36、分布式集群中为什么会有 Master?
Dubbo面试题
1. 为什么要用 Dubbo?
2. Dubbo 是什么?
3. Dubbo 的使用场景有哪些?
4. Dubbo 核心功能有哪些?
5. Dubbo 核心组件有哪些?
6. Dubbo 服务器注册与发现的流程?
7. Dubbo 的整体架构设计有哪些分层?
8. Dubbo Monitor 实现原理?
9. Dubbo 类似的分布式框架还有哪些?
10. Dubbo 和 Spring Cloud 有什么关系?
11. Dubbo 和 Spring Cloud 有什么哪些区别?
12. Dubbo 和 Dubbox 之间的区别?
13. Dubbo 有哪些注册中心?
14. Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?
15. Dubbo集群提供了哪些负载均衡策略?
16. Dubbo的集群容错方案有哪些?
17. Dubbo 配置文件是如何加载到 Spring 中的?
18. 说说核心的配置有哪些?
19. Dubbo 超时设置有哪些方式?
20. 服务调用超时会怎么样?
23. Dubbo 用到哪些设计模式?
24. 服务上线怎么兼容旧版本?
25. Dubbo telnet 命令能做什么?
26. Dubbo 支持服务降级吗?
26. Dubbo 支持服务降级吗?
28. Dubbo SPI 和 Java SPI 区别?
29. Dubbo 支持分布式事务吗?
30. Dubbo 可以对结果进行缓存吗?
31. Dubbo 必须依赖的包有哪些?
32. Dubbo 支持哪些序列化方式?
33. Dubbo 在安全方面有哪些措施?
34. 服务调用是阻塞的吗?
35. 服务提供者能实现失效踢出是什么原理?
36. 同一个服务多个注册的情况下可以直连某一个服务吗?
37. Dubbo 服务降级,失败重试怎么做?
38.Dubbo 使用过程中都遇到了些什么问题?
39. 为什么要有RPC
40. 什么是RPC
41. PRC架构组件
42. RPC和SOA、SOAP、REST的区别
Netty面试题
1、Netty 线程模型和 Reactor 模式
2、Netty 是什么?
3、Netty 设计模式
4、Netty 的特点是什么?
5、Netty 单机百万实战
6、Netty 支持哪些心跳类型设置?
7、JDK原生NIO程序的问题
8、Netty常见使用场景
9、Netty 发送消息有几种方式?
10、如何选择序列化协议?
11、Netty 和 Tomcat 的区别?
12、Netty 的优势有哪些?
13、Netty解码器 Decoder
14、Netty 的应用场景有哪些?
15、TCP 粘包/拆包的原因及解决方法?
16、Netty 高性能表现在哪些方面?
17、BIO、NIO和AIO的区别?
18、NIO的组成?
19、Netty 中有哪种重要组件?
20、Netty的线程模型?
21、NIOEventLoopGroup源码?
22、什么是 Netty 的零拷贝?
23、了解哪几种序列化协议?
24、默认情况 Netty 起多少线程?
25、何时启动?
五、微服务架构
Spring Boot面试题
1、 Spring Boot 中如何实现定时任务 ?
2、SpringBoot 实现热部署有哪几种方式?
3、 Spring Boot 有哪些优点?
4、 SpringBoot Starter的工作原理
5、 Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
6、 Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
7、Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?
8、 SpringBoot支持什么前端模板,
9、 Spring Boot 需要独立的容器运行吗?
10、
spring-boot-starter-parent 有什么用 ?
11、 SpringBoot如何实现打包
12、开启 Spring Boot 特性有哪几种方式?
13、运行 Spring Boot 有哪几种方式?
14、Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?
15、如何在 Spring Boot 启动的时候运行一些特定的代码?
16、spring boot 核心配置文件是什么?bootstrap.properties 和 application.properties 有何区别 ?
17、Spring Boot 是否可以使用 XML 配置 ?
18、Async异步调用方法
19、 什么是 Spring Profiles?
20、SpringBoot的缺点
21、Spring Boot 有哪几种读取配置的方式?
22. 什么是 YAML?
23、什么是 Spring Boot?
24、 你如何理解 Spring Boot 配置加载顺序?
25、 什么是 JavaConfig?
26、SpringBoot与SpringCloud 区别
27、YAML 配置的优势在哪里 ?
28、SpringBoot事物的使用
29、 SpringBoot的自动配置原理是什么
30、为什么要用SpringBoot
31、 SpringBoot微服务中如何实现 session 共享 ?
32、 SpringBoot多数据源拆分的思路
33、 我们如何监视所有 Spring Boot 微服务?
34、 如何实现 Spring Boot 应用程序的安全性?
35、 保护 Spring Boot 应用有哪些方法?
36、 比较一下 Spring Security 和 Shiro 各自的优缺点 ?
37、 SpringBoot性能如何优化
38、您使用了哪些 starter maven 依赖项?
39、 Spring Boot 中如何解决跨域问题 ?
40、 Spring Boot 中的监视器是什么?
41、SpringBoot多数据源事务如何管理
42、 如何使用 Spring Boot 实现全局异常处理?
43、 Spring Boot 中的 starter 到底是什么 ?
44、 如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?Spring Boot项目如何热部署?
Spring cloud面试题
1、SpringBoot和SpringCloud的区别?
2、什么是微服务架构
3、 使用 Spring Boot 开发分布式微服务时,我们面临什么问题?
4、 Spring Cloud 是什么
5、 Spring Cloud和SpringBoot版本对应关系
5、 SpringCloud的优缺点
6、 Spring Cloud 和dubbo区别?
7、 什么是Eureka
8、 为什么需要学习Spring Cloud
9、SpringCloud由什么组成
10、 什么是Eureka的自我保护模式,
11、Eureka和ZooKeeper都可以提供服务注册与发现的功能,请说说两个的区别
17. 网关的作用是什么
18、服务注册和发现是什么意思?Spring Cloud 如何实现?
19、 DiscoveryClient的作用
20、 什么是Spring Cloud Zuul(服务网关)
21、 Eureka怎么实现高可用
22、 网关与过滤器有什么区别
23、 既然Nginx可以实现网关?为什么还需要使用Zuul框架
24、Zuul网关如何搭建集群
25、什么是网关?
26、 常用网关框架有那些?
27、 Ribbon是什么?
28、Zuul与Nginx有什么区别?
29、 如何实现动态Zuul网关路由转发
30、 Ribbon底层实现原理
31、ZuulFilter常用有那些方法
32、谈谈服务雪崩效应
33、服务雪崩效应产生的原因
34、 Nginx与Ribbon的区别
35、 负载平衡的意义什么?
36、 如何设计一套API接口
37、谈谈服务降级、熔断、服务隔离
38、在微服务中,如何保护服务?
39、什么是 Spring Cloud Bus?
40、什么是断路器
41、什么是Spring Cloud Confifig?
42、SpringCloud有几种调用接口方式
43、Ribbon和Feign调用服务的区别
44、分布式配置中心的作用?
45、服务降级底层是如何实现的?
46、分布式配置中心有那些框架?
47、什么是Feign?
48、什么是Spring Cloud Gateway?
49、SpringCloud Confifig 可以实现实时刷新吗?
六、项目实战
1、Spring Cloud Confifig
2、Spring Cloud Netflflix(重点,这些组件用的最多)
3、Spring Cloud Security
4、Spring Cloud Consul
5、Spring Cloud Task
6、Spring Cloud Sleuth
7、Spring Cloud Stream
8、Spring Cloud和SpringBoot版本对应关系
9、Spring Cloud OpenFeign
10、Spring Cloud Gateway
11、Spring Cloud Zookeeper
12、Spring Cloud的版本关系
13、Spring Cloud Bus
14、Spring Cloud和各子项目版本对应关系
七、互联网工具
Linux面试题
1、如何规划一台 Linux 主机,步骤是怎样?
2、什么是Linux
3、Linux 性能调优都有哪几种方法?
4、什么是 Linux 内核?
5、BASH和DOS之间的基本区别是什么?
6、Windows和Linux的区别
7、 请问当用户反馈网站访问慢,你会如何处理?
8、 Unix和Linux有什么区别?
9、Linux的基本组件是什么?
10、 Linux 开机启动过程?
11、 Linux 使用的进程间通信方式?
12、Linux 的体系结构
13、 Linux系统安装多个桌面环境有帮助吗?
14、什么是BASH?
15、 什么是root帐户
16、 Linux系统缺省的运行级别?
17、什么是GUI?
18、 Linux 有哪些系统日志文件?
19、开源的优势是什么?
20、 Linux 的目录结构是怎样的?
21、什么是交换空间?
22、什么是硬链接和软链接?
23、 什么是LILO?
24、 一台 Linux 系统初始化环境后需要做一些什么安全工作?
25、 GNU项目的重要性是什么?
26、 什么是CLI?
27、 RAID 是什么?
28、 Shell 脚本是什么?
29、 什么是 inode ?
30、简单 Linux 文件系统?
31、什么是网站数据库注入?
32、如何选择 Linux 操作系统版本?
以上就是小编分享的BAT必考Java真题合集,由于篇幅有限,小编已经把每个专题对应的面试题(附答案解析)整理成了文档,下面是整理的真题合集。

相关文章:

突破年薪百万难关!吃透这套Java真题合集
前言我相信大多 Java 开发的程序员或多或少经历过BAT一些大厂的面试,也清楚一线互联网大厂 Java 面试是有一定难度的,小编经历过多次面试,有满意的也有备受打击的。因此呢小编想把自己这么多次面试经历以及近期的面试真题来个汇总分析&#x…...

[黑马程序员SSM框架教程] Spring-11-setter注入
思考:向一个类中传递数据要几种? set方法构造方法 思考:依赖注入描述了在容器中建立bean与bean之间依赖关系的过程,如果bean运行需要数字或字符呢 引用类型简单类型(基本数据类型和字符串) 注入方式&#x…...

Java多线程(一)--多线程基础知识
1. 为什么要使用并发编程提升多核CPU的利用率:一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论上讲操作系统可以将多个线程分配给不同的CPU去执行,每个CPU执行一个线程,这样就提高了CPU的使用效率&…...

AutoDock, AutoDock-vina等对接工具安装
AutoDock, AutoDock-vina等对接工具安装 AutoDock-GPU安装 下载地址: https://autodock.scripps.edu/downloads/ 将压缩包传送至安装目录中,并解压到当前路径 unzip AutoDock-GPU-develop.zip 找到服务器的cuda的路径,cuda的路径一般默认…...

MySQL常见面试题(2023年最新)
目录1.char和varchar的区别2.数据库的三大范式3.索引是什么4.索引的优点和缺点5.索引怎么设计(优化)6.索引的类型7.索引的数据类型8.索引为什么使用树结构9.二叉查找树、B树、B树10.为什么使用B树不用B树11.最左匹配原则12.MylSAM和InnoDB的区别13.什么是事务14.事务的四大特性…...

C# 泛型详解
C# 泛型详解1、泛型概述2、定义泛型3、泛型的特性4、泛型委托5、泛型的优点在 C# 中,泛型(Generic)是一种规范,它允许我们使用占位符来定义类和方法,编译器会在编译时将这些占位符替换为指定的类型,利用泛型…...

数据仓库相关术语
数据仓库数据集市事实维度级别数据清洗数据采集数据转换联机分析处理(OLAP OnlineAnalytical Processing )切片切块星型模式雪花模式粒度度量度量值口径指标 原子指标:派生指标衍生指标标签自然键持久键代理键退化维度下钻上卷T0与T1数据挖掘数据科学家总线架构总线…...

【IDEA】常用快捷键
代码补全 快捷键说明sout快速输出System.out.println();psvm快速输出public static void main(String[] args) {}Ctrl Alt Space代码补全 编辑类 快捷键说明Shift Enter向下键入一行,并将光标移到下一行的开头Ctrl Alt Enter当前行上方生成空行,并…...

【调试】sysRq按键使用方法
SysRq键简介 SysRq键是一个魔术案件,只要在内核没有完全卡死的情况下,内核都会相应SysRq 键的输入,使用这些组合键都可以搜集包括系统内存使用、CPU任务处理、进程运行状态等系统运行信息。 配置 内核配置选项中要使能CONFIG_MAGIC_SYSRQ选…...

Jenkins Pipeline 语法
官网 ## https://www.jenkins.io/doc/book/pipeline/ 参考文章 ## https://www.jianshu.com/p/215584419f3d 根据Jenkins官网Pipeline给出的解释, 流水线语法分为两种, 一种是声明式流水线(Declarative Pipeline)另一种是脚本…...

rust语言实现超级简单的杀毒软件,通过哈希扫描病毒。
以下是一个简单的rust语言程序,用于扫描病毒文件并使用哈希表进行比较。该程序可以扫描指定目录中的所有文件,并查找其中是否包含特定的病毒文件。程序可以通过计算文件哈希值并将其与已知的病毒哈希值进行比较来确定文件是否是病毒。注意,这…...

Git仓库中的常用命令
1.第一次使用Git软件前,告诉Git你是谁 git config --global user.name "自定义用户名" git config --global user.email "用户邮箱" 2.查看配置列表 git config --list 3.初始化一个Git仓库,用来管理当前项目 git i…...

arduino和stm32和51和TSM32的区别,树莓派和jetson nano的区别
本科时段接触过很多嵌入式的微处理器和微控制器,但对其使用场景和区别一直没有一个总结,这次收集了一些信息在这总结一下。 Arduino、STM32、51、TMS320和树莓派和jetson nano都是不同的嵌入式系统,它们之间有以下的区别: 开发难度…...

如何进行nginx的负载配置
示例://多机负载策略:加权轮询(适用于服务器无状态,并且服务器硬件配置不均衡的场景)upstream setServ { server 47.100.110.58:80 weight1; server 47.100.110.59:8080 weight4; }location / {//转发到负载服务上proxy_pass http://setServ;}注意&#…...

从功能测试进阶自动化测试,熬夜7天整理出这一份3000字超全学习指南
一、为什么要学习自动化测试? 如果在前两年,可能10个测试员有6个都是做的功能测试,但随着测试技术的发展以及测试工作的深入,传统的手工测试已经无法满足多模块的测试需求,所以为了提高测试效率和测试质量,…...

[NOIP2011 提高组] 铺地毯
[NOIP2011 提高组] 铺地毯 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 n 张地毯,编号从 1 到 n。现在将这些地毯按照编号从小到大的顺序平行于…...

mac下ElasticSearch 集群搭建,使用Kibana配置和管理集群
Elasticsearch如果做集群的话Master节点至少三台服务器或者三个Master实例加入相同集群,三个Master节点最多只能故障一台Master节点,如果故障两个Master节点,Elasticsearch将无法组成集群.会报错,Kibana也无法启动,因为…...

【软件测试】自动化测试的追求,水土不服?看看资深测试咋说的......
目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 大部分测试初学者入…...

Mac mini 外接移动硬盘无法显示,磁盘工具装载报错显示 com apple diskmanagement disenter
使用“启动安全性实用工具”可确保 Mac 始终从您指定的启动磁盘以及合法的受信任操作系统启动。 如果您使用的是配备 Apple T2 安全芯片的 Mac,则“启动安全性实用工具”提供以下三项功能来帮助保护您的 Mac 免受未经授权的访问:固件密码保护、安全启动…...

【图像处理OpenCV(C++版)】——4.6 限制对比度的自适应直方图均衡化
前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…...

设计模式--工厂模式
这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 工厂模式主要使用了C的多态特性。将存在继承关系的类&a…...

算法笔记(十三)—— 树形DP及Morris遍历
树形DP: Question1: 以X为头结点的树,最大距离: 1. X不参与,在左子树上的最大距离 2. X不参与,在右子树上的最大距离 3. X参与,左树上最远的结点通过X到右树最远的结点 最后的结果一定是三种情况的最大…...

【Classical Network】EfficientNetV2
原文地址 原文代码 pytorch实现1 pytorch实现2 详细讲解 文章目录EfficientNet中存在的问题NAS 搜索EfficientNetV2 网络结构codeEfficientNet中存在的问题 训练图像尺寸大时,训练速度非常慢。train size 512, batch 24时,V100 out of memory在网络浅…...

索引类型FULLTEXT、NORMAL、SPATIAL、UNIQUE的区别
SQL索引的创建及使用请移步另一篇文章 (188条消息) SQL索引的创建及使用_sql索引的建立与使用_t梧桐树t的博客-CSDN博客 索引的种类 NORMAL 表示普通索引,大多数情况下都可以使用 UNIQUE 表示唯一索引,不允许重复的索引,如果该字段信息…...

稳定、可控、高可用:运维最应该加持哪些技术 buff?
如何保障开发需求高效交付,系统高峰扛得住、长期平稳,是项目组中的每位技术人必须面对的问题。 本文大纲 1、强稳定性Buff 2、风控服务实时性Buff 3、高资源利用率Buff 1.强稳定性Buff 强稳定性背后有三大挑战,其一是应对发布变更引起故障问…...

动态网站开发讲课笔记02:Java Web概述
文章目录零、本讲学习目标一、 XML基础(一)XML概述1、XML2、XML与HTML的比较(二)XML语法1、XML文档的声明2、XML元素的定义3、XML属性的定义4、XML注释的定义5、XML文件示例(三)DTD约束1、什么是XML约束2、…...

如何保护 IP 地址的隐私问题
是不是只有运营商才能查到某个人的住址信息呢?在大数据时代的今天,各种互联网应用收集了大量的数据信息,它们其实也可以根据这些信息,推断出某个人的大致地址位置。例如百度地图会一直用 App SDK 以及网页的方式记录 IP 和地址位置…...

高并发系统设计之限流
本文已收录至Github,推荐阅读 👉 Java随想录 文章目录限流算法计数器算法滑动窗口漏桶算法令牌桶算法限流算法实现Guava RateLimiter实现限流令牌预分配预热限流Nginx 限流limit_connlimit_req黑白名单限流这篇文章来讲讲限流,在高并发系统中…...

ZCMU--5286: Rose的字符串(C语言)
Description 一天Rose同学想得到一个仅由01组成的字符串S,Jack同学为了让Rose同学开心,于是打算去商店购买另一个也仅由01组成的字符串T。而商店的字符串价格由它的长度决定,比如字符串011售价3元,001011售价6元,商店…...

MAC下搭建hadoop
一:简介 Hadoop是一个用Java开发的开源框架,它允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。它的设计是从单个服务器扩展到数千个机器,每个都提供本地计算和存储。特别适合写一次,读多次的场景。 Hado…...