龙空技术网

2022年各大企业java面试题解析,堪称全网最详细的java面试指南

麒麟Java工程师 207

前言:

目前同学们对“java有没有goto”大体比较重视,大家都需要剖析一些“java有没有goto”的相关资讯。那么小编也在网上网罗了一些对于“java有没有goto””的相关知识,希望兄弟们能喜欢,你们快快来学习一下吧!

前言

最近感慨面试难的人越来越多了,一方面是市场环境,更重要的一方面是企业对Java的人才要求越来越高了。

基本上这样感慨的分为两类人,第一,虽然挂着3、5年经验,但肚子里货少,也没啥拿得出手的项目,自己还意识不到问题;第二,自身有技术追求,但欠点儿火候,多练习多吸收知识,锤炼一下问题不大。

说实话,从打算跳槽到准备简历再到初期面试,很多人其实都处于“心虚”的状态。

你回忆一下,是不是盯着简历上的“了解、熟悉、掌握、精通”这几个词都得琢磨好久?写了精通吧,又开始担心面试官超岗发挥。要是问我Redis,五大结构我行,底层编码方式我都忘差不多了……

所以为了避免以上这些问题,小编也是把2022年所有的面试题都做了一个归纳总结,但凡有些面试经验的都能够更好的面试和复习,这样也是为了明年的职业规划做打算了,希望对你们有帮助。

一、java基础面试题

1、访问修饰符 public,private,protected,以及不写(默认)时的区别?

2、String 是最基本的数据类型吗?

3、float f=3.4;是否正确?

4、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

5、Java 有没有 goto?

6、int 和 Integer 有什么区别?

7、&和&&的区别?

8、解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法。

9、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

10、switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?

11、用最有效率的方法计算 2 乘以 8?

12、数组有没有 length()方法?String 有没有 length()方法?

13、在 Java 中,如何跳出当前的多重嵌套循环?

14、构造器(constructor)是否可被重写(override)?

15、两个对象值相同(x.equals(y) == true),但却可有不同的 hashcode,这句话对不对?

16、是否可以继承 String 类?

17、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

18、String 和 StringBuilder、StringBuffer 的区别?

19、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

20、描述一下 JVM 加载 class 文件的原理机制?

21、char 型变量中能不能存贮一个中文汉字,为什么?

22、抽象类(abstract class)和接口(interface)有什么异同?

23、静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?

24、Java 中会存在内存泄漏吗,请简单描述。

25、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被 synchronized 修饰?

26、阐述静态变量和实例变量的区别。

27、是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用?

28、如何实现对象克隆?

29、GC 是什么?为什么要有 GC?

30、String s = new String(“xyz”);创建了几个字符串对象?

31、 接 口 是 否 可 继 承 ( extends ) 接 口 ? 抽 象 类 是 否 可 实 现(implements)接口?抽象类是否可继承具体类(concrete class)?

32、一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制?

33、Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?

34、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?

35、Java 中的 final 关键字有哪些用法?

36、指出下面程序的运行结果

37、数据类型之间的转换:

38、如何实现字符串的反转及替换?

39、怎样将 GB2312 编码的字符串转换为 ISO-8859-1 编码的字符串?

40、日期和时间:

41、打印昨天的当前时刻。

42、比较一下 Java 和 JavaSciprt。

43、什么时候用断言(assert)?

44、Error 和 Exception 有什么区别?

45、try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally{}里的代码会不会被执行,什么时候被执行,在 return 前还是后?

46、Java 语言如何进行异常处理,关键字:throws、throw

47、运行时异常与受检异常有何异同?

48、列出一些你常见的运行时异常?

49、阐述 final、finally

50、类 ExampleA 继承 Exception,类 ExampleB 继承 ExampleA。

51、Collection 和 Collections 的区别?

52、TreeMap 和 TreeSet 在排序时如何比较元素?Collections 工具类中的 sort()方法如何比较元素?

53、Thread 类的 sleep()方法和对象的 wait()方法都可以让线程暂停执行,它们有什么区别?

54、线程的 sleep()方法和 yield()方法有什么区别?

55、当一个线程进入一个对象的 synchronized 方法 A 之后,其它线程是否可进入此对象 synchronized 方法 B?

56、请说出与线程同步以及线程调度相关的方法。

57、编写多线程程序有几种实现方式?

58、synchronized 关键字的用法?

59、举例说明同步和异步。

60、启动一个线程是调用 run()还是 start()方法?

61、什么是线程池(thread pool)?

62、线程的基本状态以及状态之间的关系?

63、简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?

64、Java 中如何实现序列化,有什么意义?

65、Java 中有几种类型的流?

66、写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。

67、如何用 Java 代码列出一个目录下所有的文件?

68、用 Java 的套接字编程实现一个多线程的回显(echo)服务器。

69、XML 文档定义有几种形式?它们之间有何本质区别?解析 XML文档有哪几种方式?

70、你在项目中哪些地方用到了 XML?

71、阐述 JDBC 操作数据库的步骤。

72、Statement 和 PreparedStatement 有什么区别?哪个性能更好?

73、使用 JDBC 操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能?

74、在进行数据库编程时,连接池有什么作用?

75、什么是 DAO 模式?

76、事务的 ACID 是指什么?

77、JDBC 能否处理 Blob 和 Clob?

78、简述正则表达式及其用途。

79、Java 中是如何支持正则表达式操作的?

80、获得一个类的类对象有哪些方式?

81、如何通过反射调用对象的方法?

82、简述一下你了解的设计模式。

83、用 Java 写一个单例类。

84、什么是 UML?

85、UML 中有哪些常用的图?

86、用 Java 写一个折半查找。

87、Java 中能创建 volatile 数组吗?

88、volatile 能使得一个非原子操作变成原子操作吗?

89、volatile 修饰符的有过什么实践?

90、volatile 类型变量提供什么保证?

91、10 个线程和 2 个线程的同步代码,哪个更容易写?

92、你是如何调用 wait()方法的?使用 if 块还是循环?为什么?

93、什么是 Busy spin?我们为什么要使用它?

94、Java 中怎么获取一份线程 dump 文件?

95、Swing 是线程安全的?

96、什么是线程局部变量?

97、用 wait-notify 写一段代码来解决生产者-消费者问题?

98、用 Java 写一个线程安全的单例模式(Singleton)?

99、Java 中 sleep 方法和 wait 方法的区别?

100、什么是不可变对象(immutable object)?Java 中怎么创建一个不可变对象?

101、我们能创建一个包含可变对象的不可变对象吗?

102、Java 中应该使用什么数据类型来代表价格?

103、怎么将 byte 转换为 String?

104、Java 中怎样将 bytes 转换为 long 类型?

105、我们能将 int 强制转换为 byte 类型的变量吗?如果该值大于byte 类型的范围,将会出现什么现象?

106、存在两个类,B 继承 A ,C 继承 B,我们能将 B 转换为 C 么?如 C = (C) B;

107、哪个类包含 clone 方法?是 Cloneable 还是 Object?

108、Java 中 ++ 操作符是线程安全的吗?

109、不是线程安全的操作。它涉及到多个指令,如读取变量值,增加,然后存储回内存,这个过程可能会出现多个线程交差。

110、a = a + b 与 a += b 的区别

111、我能在不进行强制转换的情况下将一个 double 值赋值给 long类型的变量吗?

112、3*0.1 == 0.3 将会返回什么?true 还是 false?

113、int 和 Integer 哪个会占用更多的内存?

114、为什么 Java 中的 String 是不可变的(Immutable)?

115、64 位 JVM 中,int 的长度是多数?

116、Serial 与 Parallel GC 之间的不同之处?

117、32 位和 64 位的 JVM,int 类型变量的长度是多数?

118、Java 中 WeakReference 与 SoftReference 的区别?

119、WeakHashMap 是怎么工作的?

120、JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用?

121、怎样通过 Java 程序来判断 JVM 是 32 位 还是 64 位?

122、32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?

123、解释 Java 堆空间及 GC?

124、你能保证 GC 执行吗?

125、怎么获取 Java 程序使用的内存?堆使用的百分比?

126、Java 中堆和栈有什么区别?

127、“a==b”和”a.equals(b)”有什么区别?

128、a.hashCode() 有什么用?与 a.equals(b) 有什么关系?

129、final、finalize 和 finally 的不同之处?

130、Java 中的编译期常量是什么?使用它又什么风险?

131、poll() 方法和 remove() 方法的区别?

132、Java 中 LinkedHashMap 和 PriorityQueue 的区别是什么?

133、ArrayList 与 LinkedList 的不区别?

134、用哪两种方式来实现集合的排序?

135、Java 中怎么打印数组?

136、Java 中的 LinkedList 是单向链表还是双向链表?

137、Java 中的 TreeMap 是采用什么树实现的?(答案)

138、Hashtable 与 HashMap 有什么不同之处?

139、Java 中的 HashSet,内部是如何工作的?

140、写一段代码在遍历 ArrayList 时移除一个元素?

141、我们能自己写一个容器类,然后使用 for-each 循环码?

142、ArrayList 和 HashMap 的默认大小是多数?

143、有没有可能两个不相等的对象有有相同的 hashcode?

144、两个相同的对象会有不同的的 hash code 吗?

145、我们可以在 hashcode() 中使用随机数字吗?

146、Java 中,Comparator 与 Comparable 有什么不同?

147、在我 Java 程序中,我有三个 socket,我需要多少个线程来处理?

148、Java 中怎么创建 ByteBuffer?

149、Java 中,怎么读写 ByteBuffer ?

150、Java 采用的是大端还是小端?

151、ByteBuffer 中的字节序是什么?

152、Java 中,直接缓冲区与非直接缓冲器有什么区别?

153、Java 中的内存映射缓存区是什么?

154、socket 选项 TCP NO DELAY 是指什么?

155、TCP 协议与 UDP 协议有什么区别?

156、Java 中,ByteBuffer 与 StringBuffer 有什么区别?(答案)

157、Java 中,编写多线程程序的时候你会遵循哪些最佳实践?

158、说出几点 Java 中使用 Collections 的最佳实践

159、说出至少 5 点在 Java 中使用线程的最佳实践。

160、说出 5 条 IO 的最佳实践(答案)

161、列出 5 个应该遵循的 JDBC 最佳实践

162、说出几条 Java 中方法重载的最佳实践?

163、在多线程环境下,SimpleDateFormat 是线程安全的吗?

164、Java 中如何格式化一个日期?如格式化为 ddMMyyyy 的形式?

165、Java 中,怎么在格式化的日期中显示时区?

166、Java 中 java.util.Date 与 java.sql.Date 有什么区别?

167、Java 中,如何计算两个日期之间的差距?

168、Java 中,如何将字符串 YYYYMMDD 转换为日期?

169、如何测试静态方法?(答案)

170、怎么利用 JUnit 来测试一个方法的异常?

171、你使用过哪个单元测试库来测试你的 Java 程序?

172、@Before 和 @BeforeClass 有什么区别?

173、怎么检查一个字符串只包含数字?解决方案

174、Java 中如何利用泛型写一个 LRU 缓存?

175、写一段 Java 程序将 byte 转换为 long?

176、在不使用 StringBuffer 的前提下,怎么反转一个字符串?

177、Java 中,怎么获取一个文件中单词出现的最高频率?

178、如何检查出两个给定的字符串是反序的?

179、Java 中,怎么打印出一个字符串的所有排列?

180、Java 中,怎样才能打印出数组中的重复元素?

181、Java 中如何将字符串转换为整数?

182、在没有使用临时变量的情况如何交换两个整数变量的值?

183、接口是什么?为什么要使用接口而不是直接使用具体类?

184、Java 中,抽象类与接口之间有什么不同?

185、除了单例模式,你在生产环境中还用过什么设计模式?

186、你能解释一下里氏替换原则吗?

187、什么情况下会违反迪米特法则?为什么会有这个问题?

188、适配器模式是什么?什么时候使用?

189、什么是“依赖注入”和“控制反转”?为什么有人使用?

190、抽象类是什么?它与接口有什么区别?你为什么要使用过抽象类?

191、构造器注入和 setter 依赖注入,那种方式更好?

192、依赖注入和工程模式之间有什么不同?

193、适配器模式和装饰器模式有什么区别?

194、适配器模式和代理模式之前有什么不同?

195、什么是模板方法模式?

196、什么时候使用访问者模式?

197、什么时候使用组合模式?

198、继承和组合之间有什么不同?

199、描述 Java 中的重载和重写?

200、Java 中,嵌套公共静态类与顶级类有什么不同?

二、Spring面试题

1、不同版本的 Spring Framework 有哪些主要功能

2、什么是 Spring Framework

3、列举 Spring Framework 的优点。

4、Spring Framework 有哪些不同的功能

5、Spring Framework 中有多少个模块,它们分别是什么

6、什么是 Spring 配置文件

7、Spring 应用程序有哪些不同组件

8、使用 Spring 有哪些方式

9、什么是 Spring IOC 容器

10、什么是依赖注入

11、可以通过多少种方式完成依赖注入

12、区分构造函数注入和 setter 注入。

13、spring 中有多少种 IOC 容器

14、区分 BeanFactory 和 ApplicationContext。

15、列举 IoC 的一些好处。

16、Spring IoC 的实现机制。

17、什么是 spring bean

18、spring 提供了哪些配置方式

19、spring 支持集中 bean scope

20、spring bean 容器的生命周期是什么样的

21、什么是 spring 的内部 bean

22、什么是 spring 装配

23、自动装配有哪些方式

24、自动装配有什么局限

25、什么是基于注解的容器配置

26、如何在 spring 中启动注解装配

27、@Component, @Controller, @Repository,@Service 有何区别

28、@Required 注解有什么用

29、@Autowired 注解有什么用

30、@Qualifier 注解有什么用

31、@RequestMapping 注解有什么用

32、spring DAO 有什么用

33、列举 Spring DAO 抛出的异常。

34、spring JDBC API 中存在哪些类

35、使用 Spring 访问 Hibernate 的方法有哪些

36、列举 spring 支持的事务管理类型

37、spring 支持哪些 ORM 框架

38、什么是 AOP

39、什么是 Aspect

40、什么是切点(JoinPoint)

41、什么是通知(Advice)

42、有哪些类型的通知(Advice)

43、指出在 spring aop 中 concern 和 cross-cuttingconcern 的不同之处。

44、AOP 有哪些实现方式

45、Spring AOP and AspectJ AOP 有什么区别

46、如何理解 Spring 中的代理

47、什么是编织(Weaving)

48、Spring MVC 框架有什么用

49、描述一下 DispatcherServlet 的工作流程

50、介绍一下 WebApplicationContext

51、什么是 spring?

52、使用 Spring 框架的好处是什么

53、Spring 由哪些模块组成?

54、核心容器(应用上下文) 模块。

55、BeanFactory – BeanFactory 实现举例。

56、XMLBeanFactory

57、解释 AOP 模块

58、解释 JDBC 抽象和 DAO 模块。

59、解释对象/关系映射集成模块。

60、解释 WEB 模块。

61、Spring 配置文件

62、IOC 的优点是什么

63、ApplicationContext 通常的实现是什么?

64、Bean 工厂和 Application contexts 有什么区别

65、一个 Spring 的应用看起来象什么

66、什么是 Spring 的依赖注入

67、有哪些不同类型的 IOC(依赖注入)方式

68、哪种依赖注入方式你建议使用,构造器注入,还是 Setter方法注入

69、一个 Spring Bean 定义 包含什么

70、如何给 Spring 容器提供配置元数据?

71、你怎样定义类的作用域?

72、解释 Spring 支持的几种 bean 的作用域。

73、Spring 框架中的单例 bean 是线程安全的吗?

74、解释 Spring 框架中 bean 的生命周期。

75、哪些是重要的 bean 生命周期方法?你能重载它们吗

76、在 Spring 中如何注入一个 java 集合

77、什么是 bean 装配?

78、什么是 bean 的自动装配

79、解释不同方式的自动装配 。

80、你可以在 Spring 中注入一个 null 和一个空字符串吗

81、什么是基于 Java 的 Spring 注解配置? 给一些注解的例子.

82、什么是基于注解的容器配置?

83、怎样开启注解装配

84、@Required 注解

85、@Autowired 注解

86、@Qualifier 注解

87、JdbcTemplate

88、Spring 对 DAO 的支持

89、使用 Spring 通过什么方式访问 Hibernate?

90、Spring 支持的 ORM

91、Spring 支持的事务管理类型

92、Spring 框架的事务管理有哪些优点

93、你更倾向用那种事务管理类型

94、解释 AOP

95、Aspect 切面

96、在 Spring AOP 中,关注点和横切关注的区别是什么

97、连接点

98、通知

99、切点

100、什么是引入?

101、什么是目标对象?

102、什么是代理?

103、有几种不同类型的自动代理

104、什么是织入。什么是织入应用的不同点

105、解释基于 XML Schema 方式的切面实现。

106、解释基于注解的切面实现

107、什么是 Spring 的 MVC 框架

108、DispatcherServlet

109、WebApplicationContext

110、什么是 Spring MVC 框架的控制器

111、@Controller 注解

112、@RequestMapping 注解

113、什么是spring?

114、Spring的俩大核心概念

115、Spring框架的设计目标,设计理念,和核心是什么

116、Spring的优缺点是什么?

117、Spring有哪些应用场景

118、Spring由哪些模块组成?

119、Spring 框架中都用到了哪些设计模式?

120、详细讲解一下核心容器(spring context应用上下文) 模块

121、Spring框架中有哪些不同类型的事件

122、Spring 应用程序有哪些不同组件?

123、使用 Spring 有哪些方式?

三、java并发编程面试题

1、在 java 中守护线程和本地线程区别?

2、线程与进程的区别?

3、什么是多线程中的上下文切换?

4、死锁与活锁的区别,死锁与饥饿的区别?

5、Java 中用到的线程调度算法是什么?

6、什么是线程组,为什么在 Java 中不推荐使用?

7、为什么使用 Executor 框架?

8、在 Java 中 Executor 和 Executors 的区别?

9、如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时间最长?

10、什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic classes)?

11、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势?

12、什么是 Executors 框架?

13、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?

14、什么是 Callable 和 Future?

15、什么是 FutureTask?使用 ExecutorService 启动任务。

16、什么是并发容器的实现?

17、多线程同步和互斥有几种实现方法,都是什么?

18、什么是竞争条件?你怎样发现和解决竞争?

19、你将如何使用 thread dump?你将如何分析 Thread dump?

20、为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?

21、Java 中你怎样唤醒一个阻塞的线程?

22、在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?

23、什么是不可变对象,它对写并发应用有什么帮助?

24、为什么使用 Executor 框架比使用应用创建和管理线程好?

25、java 中有几种方法可以实现一个线程?

26、如何停止一个正在运行的线程?

27、notify()和 notifyAll()有什么区别?

28、什么是 Daemon 线程?它有什么意义?

29、java 如何实现多线程之间的通讯和协作?

30、什么是可重入锁(ReentrantLock)?

31、当一个线程进入某个对象的一个 synchronized 的实例方法后,其它线程是否可进入此对象的其它方法?

32、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?

33、SynchronizedMap 和 ConcurrentHashMap 有什么区别?

34、CopyOnWriteArrayList 可以用于什么应用场景?

35、什么叫线程安全?servlet 是线程安全吗?

36、volatile 有什么用?能否用一句话说明下 volatile 的应用场景?

37、为什么代码会重排序?

38、在 java 中 wait 和 sleep 方法的不同?

39、用 Java 实现阻塞队列

40、一个线程运行时发生异常会怎样?

41、如何在两个线程间共享数据?

42、Java 中 notify 和 notifyAll 有什么区别?

43、为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?

44、什么是 ThreadLocal 变量?

45、Java 中 interrupted 和 isInterrupted 方法的区别?

46、为什么 wait 和 notify 方法要在同步块中调用?

47、为什么你应该在循环中检查等待条件?

48、Java 中的同步集合与并发集合有什么区别?

49、什么是线程池? 为什么要使用它?

50、怎么检测一个线程是否拥有锁?

51、你如何在 Java 中获取线程堆栈?

52、Thread 类中的 yield 方法有什么作用?

53、Java 中 ConcurrentHashMap 的并发度是什么?

54、Java 中 Semaphore 是什么?

55、Java 线程池中 submit() 和 execute()方法有什么区别?

56、什么是阻塞式方法?

57、Java 中的 ReadWriteLock 是什么?

58、volatile 变量和 atomic 变量有什么不同?

59、可以直接调用 Thread 类的 run ()方法么?

60、如何让正在运行的线程暂停一段时间?

61、你对线程优先级的理解是什么?

62、 什 么 是 线 程 调 度 器 (Thread Scheduler) 和 时 间 分 片 (TimeSlicing )?

63、你如何确保 main()方法所在的线程是 Java 程序最后结束的线程?

64、线程之间是如何通信的?

65、为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在Object 类里?

66、为什么 wait(), notify()和 notifyAll ()必须在同步方法或者同步块中被调用?

67、为什么 Thread 类的 sleep()和 yield ()方法是静态的?

68、如何确保线程安全?

69、同步方法和同步块,哪个是更好的选择?

70、如何创建守护线程?

71、什么是 Java Timer 类?如何创建一个有特定时间间隔的任务?

72、 为什么要使用并发编程

73、 多线程应用场景

74、 并发编程有什么缺点

75、 并发编程三个必要因素是什么?

76、 Java 程序中怎么保证多线程的运行安全?

77、 并行和并发有什么区别?

78、 什么是多线程

79、 多线程的好处

80、 多线程的劣势:

81、 线程和进程区别

82、 什么是上下文切换?

83、 守护线程和用户线程有什么区别呢?

84、 如何在 Windows 和 Linux 上查找哪个线程cpu利用率最高?

85、 什么是线程死锁

86、 形成死锁的四个必要条件是什么

87、 如何避免线程死锁

88、 创建线程的四种方式

89、 线程的 run()和 start()有什么区别?

90、 为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?

91、 什么是 Callable 和 Future?

92、 什么是 FutureTask

93、 线程的状态

94、 Java 中用到的线程调度算法是什么?

95、 线程的调度策略

96、 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?

97、 请说出与线程同步以及线程调度相关的方法。

98、 sleep() 和 wait() 有什么区别?

99、 你是如何调用 wait() 方法的?使用 if 块还是循环?为什么?

100、 为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在 Object 类里?

101、 为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?

102、 Thread 类中的 yield 方法有什么作用?

103、 为什么 Thread 类的 sleep()和 yield ()方法是静态的?

104、 线程的 sleep()方法和 yield()方法有什么区别?

105、 如何停止一个正在运行的线程?

106、 Java 中 interrupted 和 isInterrupted 方法的区别?

107、 什么是阻塞式方法?

108、 Java 中你怎样唤醒一个阻塞的线程?

109、 notify() 和 notifyAll() 有什么区别?

110、 如何在两个线程间共享数据?

111、 Java 如何实现多线程之间的通讯和协作?

112、 同步方法和同步块,哪个是更好的选择?

113、 什么是线程同步和线程互斥,有哪几种实现方式?

114、 在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?

115、 如果你提交任务时,线程池队列已满,这时会发生什么

116、 什么叫线程安全?servlet 是线程安全吗?

117、 在 Java 程序中怎么保证多线程的运行安全?

118、 你对线程优先级的理解是什么?

119、 线程类的构造方法、静态块是被哪个线程调用的

120、 Java 中怎么获取一份线程 dump 文件?你如何在 Java 中获取线程堆栈?

121、 一个线程运行时发生异常会怎样?

122、 Java 线程数过多会造成什么异常?

123、 多线程的常用方法

124、 Java中垃圾回收有什么目的?什么时候进行垃圾回收?

125、 线程之间如何通信及线程之间如何同步

126、 Java内存模型

127、 如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?

128、 finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?

129、 什么是重排序

130、 重排序实际执行的指令步骤

131、 重排序遵守的规则

132、 as-if-serial规则和happens-before规则的区别

133、 并发关键字 synchronized ?

134、 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗

135、 单例模式了解吗?给我解释一下双重检验锁方式实现单例模式!”

136、 说一下 synchronized 底层实现原理?

137、 synchronized可重入的原理

138、 什么是自旋

139、 多线程中 synchronized 锁升级的原理是什么?

140、 线程 B 怎么知道线程 A 修改了变量

141、 当一个线程进入一个对象的 synchronized 方法 A 之后,其它线程是否可进入此对象的synchronized 方法 B?

142、 synchronized、volatile、CAS 比较

143、 synchronized 和 Lock 有什么区别?

144、 synchronized 和 ReentrantLock 区别是什么?

145、 volatile 关键字的作用

146、 Java 中能创建 volatile 数组吗?

147、 volatile 变量和 atomic 变量有什么不同?

148、 volatile 能使得一个非原子操作变成原子操作吗?

149、 synchronized 和 volatile 的区别是什么?

150、 final不可变对象,它对写并发应用有什么帮助?

151、 Lock 接口和synchronized 对比同步它有什么优势?

152、 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?

153、 什么是 CAS

154、 CAS 的会产生什么问题?

155、 什么是原子类

156、 原子类的常用类

157、 说一下 Atomic的原理?

158、 死锁与活锁的区别,死锁与饥饿的区别?

159、 什么是线程池?

160、 线程池作用?

161、 线程池有什么优点?

162、 什么是ThreadPoolExecutor?

163、 什么是Executors?

164、 线程池四种创建方式?

165、 在 Java 中 Executor 和 Executors 的区别?

166、 四种构建线程池的区别及特点?

167、 线程池都有哪些状态?

168、 线程池中 submit() 和 execute() 方法有什么区别?

169、 什么是线程组,为什么在 Java 中不推荐使用?

170、 ThreadPoolExecutor饱和策略有哪些?

171、 如何自定义线程线程池?

172、 线程池的执行原理?

173、 如何合理分配线程池大小?

174、 你经常使用什么并发容器,为什么?

175、 什么是Vector

176、 ArrayList和Vector有什么不同之处?

177、 为什么HashTable是线程安全的?

178、 用过ConcurrentHashMap,讲一下他和HashTable的不同之处?

179、 Java 中 ConcurrentHashMap 的并发度是什么?

180、 什么是并发容器的实现?

181、 Java 中的同步集合与并发集合有什么区别?

182、 SynchronizedMap 和 ConcurrentHashMap 有什么区别?

183、 CopyOnWriteArrayList 是什么?

184、 CopyOnWriteArrayList 的使用场景?

185、 CopyOnWriteArrayList 的缺点?

186、 CopyOnWriteArrayList 的设计思想?

187、 什么是并发队列:

188、 并发队列和并发集合的区别:

189、 怎么判断并发队列是阻塞队列还是非阻塞队列

190、 阻塞队列和非阻塞队列区别

191、 常用并发列队的介绍:

192、 常用的并发工具类有哪些?

四、Redis面试题

1、什么是 Redis?

2、Redis 的数据类型?

3、使用 Redis 有哪些好处?

4、Redis 相比 Memcached 有哪些优势?

5、Memcache 与 Redis 的区别都有哪些?

6、Redis 是单进程单线程的?

7、一个字符串类型的值能存储最大容量是多少?

8、Redis 的持久化机制是什么?各自的优缺点?

9、Redis 常见性能问题和解决方案:

10、redis 过期键的删除策略?

11、Redis 的回收策略(淘汰策略)?

12、为什么 edis 需要把所有数据放到内存中?

13、Redis 的同步机制了解么?

14、Pipeline 有什么好处,为什么要用 pipeline?

15、是否使用过 Redis 集群,集群的原理是什么?

16、Redis 集群方案什么情况下会导致整个集群不可用?

17、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?

18、Jedis 与 Redisson 对比有什么优缺点?

19、Redis 如何设置密码及验证密码?

20、说说 Redis 哈希槽的概念?

21、Redis 集群的主从复制模型是怎样的?

22、Redis 集群会有写操作丢失吗?为什么?

23、Redis 集群之间是如何复制的?

24、Redis 集群最大节点个数是多少?

25、Redis 集群如何选择数据库?

26、怎么测试 Redis 的连通性?

27、怎么理解 Redis 事务?

28、Redis 事务相关的命令有哪几个?

29、Redis key 的过期时间和永久有效分别怎么设置?

30、Redis 如何做内存优化?

31、Redis 回收进程如何工作的?

32、都有哪些办法可以降低 Redis 的内存使用情况呢?

33、Redis 的内存用完了会发生什么?

34、一个 Redis 实例最多能存放多少的 keys?List

35、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证redis 中的数据都是热点数据?

36、Redis 最适合的场景?

37、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?

38、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?

39、使用过 Redis 做异步队列么,你是怎么用的?

40、使用过 Redis 分布式锁么,它是什么回事?

41、 Redis集群如何选择数据库?

42、 Redis是单线程的,如何提高多核CPU的利用率?

43、 为什么要做Redis分区?

44、 你知道有哪些Redis分区实现方案?

45、 Redis分区有什么缺点?

46、 Redis实现分布式锁

47、 如何解决 Redis 的并发竞争 Key 问题

48、 分布式Redis是前期做还是后期规模上来了再做好?为什么?

49、 什么是 RedLock

50、 什么是redis雪崩?

51、 什么是redis穿透?

52、 缓存预热

53、 缓存降级

54、 热点数据和冷数据

55、 缓存热点key

56、 Redis支持的Java客户端都有哪些?官方推荐用哪个?

57、 Redis和Redisson有什么关系?

58、 Jedis与Redisson对比有什么优缺点?

59、 Redis与Memcached的区别

60、 如何保证缓存与数据库双写时的数据一致性?

61、 Redis常见性能问题和解决方案?

62、 Redis官方为什么不提供Windows版本?

63、 一个字符串类型的值能存储最大容量是多少?

64、 Redis如何做大量数据插入?

65、 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?

66、 使用Redis做过异步队列吗,是如何实现的

67、 Redis如何实现延时队列

68、 Redis回收进程如何工作的?

69、 Redis回收使用的是什么算法?

五、Mybatis面试题

1、什么是 Mybatis?

2、Mybaits 的优点:

3、MyBatis 框架的缺点:

4、MyBatis 框架适用场合:

5、MyBatis 与 Hibernate 有哪些不同?

6、#{}和${}的区别是什么?

7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?

8、 模糊查询 like 语句该怎么写?

9、通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗?

10、Mybatis 是如何进行分页的?分页插件的原理是什么?

11、Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?

12、如何执行批量插入?

13、如何获取自动生成的(主)键值?

14、在 mapper 中如何传递多个参数?

15、Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql?

16、Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?

17、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?

18、 一对一、一对多的关联查询 ?

19、MyBatis 实现一对一有几种方式?具体怎么操作的?

20、MyBatis 实现一对多有几种方式,怎么操作的?

21、Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?

22、Mybatis 的一级、二级缓存

23、什么是 MyBatis 的接口绑定?有哪些实现方式?

24、使用 MyBatis 的 mapper 接口调用时有哪些要求?

25、简述 Mybatis 的插件运行原理,以及如何编写一个插件

26、模糊查询like语句该怎么写

27、Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

28、Mybatis优缺点

29、Mybatis是如何进行分页的?分页插件的原理是什么?33. Mybatis是否可以映射Enum枚举类?

30、请说说MyBatis的工作原理

31、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

32、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

33、#{}和${}的区别

34、在mapper中如何传递多个参数

35、简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?

36、MyBatis编程步骤是什么样的?

37、如何获取生成的主键

38、Mybatis如何执行批量操作

39、Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理吗?

40、讲下 MyBatis 的缓存

41、什么是MyBatis的接口绑定?有哪些实现方式?

42、为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?

43、为什么需要预编译

44、Mybatis中如何指定使用哪一种Executor执行器?

45、Mybatis能执行一对多,一对一的联系查询吗,有哪些实现方法

46、简述Mybatis的插件运行原理,以及如何编写一个插件。

47、传统JDBC开发存在什么问题?

48、Hibernate 和 MyBatis 的区别

49、使用MyBatis的mapper接口调用时有哪些要求?

50、这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗

51、什么是DBMS

52、Mybatis都有哪些Executor执行器?它们之间的区别是什么?

53、MyBatis是什么?

54、Mapper 编写有哪几种方式?

55、MyBatis的功能架构是怎样的

56、JDBC编程有哪些不足之处,MyBatis是如何解决的?

57、MyBatis的框架架构设计是怎么样的

58、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?

59、Mybatis映射文件中,如果A标签通过include引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?

60、MyBatis和Hibernate的适用场景?

61、当实体类中的属性名和表中的字段名不一样 ,怎么办?

六、Zookeeper面试题

1、 ZooKeeper是什么?

2、 ZooKeeper 提供了什么?

3、 Zookeeper 文件系统

4、 ZAB 协议?

5、 四种类型的数据节点 Znode

6、 Zookeeper Watcher 机制 -- 数据变更通知

7、 客户端注册 Watcher 实现

8、 服务端处理 Watcher 实现

9、 客户端回调 Watcher

10、 ACL 权限控制机制

11、 Chroot 特性

12、 会话管理

13、 服务器角色

14、 Zookeeper 下 Server 工作状态

15、 数据同步

16、 zookeeper 是如何保证事务的顺序一致性的?

17、 分布式集群中为什么会有 Master?

18、 zk 节点宕机如何处理?

19、 zookeeper 负载均衡和 nginx 负载均衡区别

20、 Zookeeper 有哪几种几种部署模式?

21、 集群最少要几台机器,集群规则是怎样的?

22、 集群支持动态添加机器吗?

23、 Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?

24、 Zookeeper 的 java 客户端都有哪些?

25、 chubby 是什么,和 zookeeper 比你怎么看?

26、 说几个 zookeeper 常用的命令。

27、 ZAB 和 Paxos 算法的联系与区别?

28、 Zookeeper 的典型应用场景

29、Zookeeper 的典型应用场景

30、ZAB 和 Paxos 算法的联系与区别?

31、说几个 zookeeper 常用的命令。

32、Zookeeper 的 java 客户端都有哪些?

33、Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?

34、集群支持动态添加机器吗?

35、集群最少要几台机器,集群规则是怎样的?

36、Zookeeper 有哪几种几种部署模式?

37、zookeeper 负载均衡和 nginx 负载均衡区别

38、zk 节点宕机如何处理?

39、分布式集群中为什么会有 Master?

40、zookeeper 是如何保证事务的顺序一致性的?

41、Zookeeper 下 Server 工作状态

42、Zookeeper Watcher 机制 -- 数据变更通知

43、四种类型的数据节点 Znode

44、ZAB 协议?

45、Zookeeper 文件系统

46、ZooKeeper 提供了什么?

47、说说ACL权限控制机制

七、Spring Boot面试题

1、什么是 Spring Boot?

2、Spring Boot 有哪些优点?

3、什么是 JavaConfig?

4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?

5、Spring Boot 中的监视器是什么?

6、如何在 Spring Boot 中禁用 Actuator 端点安全性?

7、如何在自定义端口上运行 Spring Boot 应用程序?

8、什么是 YAML?

9、如何实现 Spring Boot 应用程序的安全性?

10、如何集成 Spring Boot 和 ActiveMQ?

11、如何使用 Spring Boot 实现分页和排序?

12、什么是 Swagger?你用 Spring Boot 实现了它吗?

13、什么是 Spring Profiles?

14、什么是 Spring Batch?

15、什么是 FreeMarker 模板?

16、如何使用 Spring Boot 实现异常处理?

17、您使用了哪些 starter maven 依赖项?

18、什么是 CSRF 攻击?

19、什么是 WebSockets?

20、什么是 AOP?

21、什么是 Apache Kafka?

22、我们如何监视所有 Spring Boot 微服务?

23、 什么是SpringBoot?

24、 为什么要用SpringBoot

25、 SpringBoot与SpringCloud 区别

26、 Spring Boot 有哪些优点?

27、 Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

28、 Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?

29、 SpringBoot Starter的工作原理

30、 SpringBoot支持什么前端模板,

31、 SpringBoot的缺点

32、 运行 Spring Boot 有哪几种方式?

33、 Spring Boot 需要独立的容器运行吗?

34、 开启 Spring Boot 特性有哪几种方式?

35、 SpringBoot 实现热部署有哪几种方式?

36、 SpringBoot事物的使用

37、 Async异步调用方法

38、 如何在 Spring Boot 启动的时候运行一些特定的代码?

39、 Spring Boot 有哪几种读取配置的方式?

40、 什么是 JavaConfig?

41、 SpringBoot的自动配置原理是什么

42、 你如何理解 Spring Boot 配置加载顺序?

43、 什么是 YAML?

44、 YAML 配置的优势在哪里 ?

45、 Spring Boot 是否可以使用 XML 配置 ?

46、 什么是 Spring Profiles?

47、 SpringBoot多数据源拆分的思路

48、 SpringBoot多数据源事务如何管理

49、 保护 Spring Boot 应用有哪些方法?

50、 如何实现 Spring Boot 应用程序的安全性?

51、 比较一下 Spring Security 和 Shiro 各自的优缺点 ?

52、 Spring Boot 中如何解决跨域问题 ?

53、 Spring Boot 中的监视器是什么?

54、 如何使用 Spring Boot 实现全局异常处理?

55、 我们如何监视所有 Spring Boot 微服务?

56、 SpringBoot性能如何优化

57、 如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?Spring Boot项目如何热部署

58、 SpringBoot微服务中如何实现 session 共享 ?

59、 您使用了哪些 starter maven 依赖项?

60、 Spring Boot 中的 starter 到底是什么 ?

61、 Spring Boot 中如何实现定时任务 ?

62、 spring-boot-starter-parent 有什么用 ?

63、 SpringBoot如何实现打包

64、Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

65、 SpringBoot的特征?

66、如何快速构建一个SpringBoot项目?

67、SpringBoot启动类注解?它是由哪些注解组成?

68、什么是yaml?

69、SpringBoot支持配置文件的格式?

70、SpringBoot启动方式?

71、SpringBoot需要独立的容器运行?

72、SpringBoot配置途径?

73、SpringBoot自动配置原理?

74、SpringBoot热部署方式?

75、SpringBoot如何修改端口号?

76、开启SpringBoot特性的几种方式?

77、SpringBoot如何兼容Spring项目?

78、SpringBoot配置监控?

79、获得Bean装配报告信息访问哪个端点?

80、关闭应用程序访问哪个端点?

81、查看发布应用信息访问哪个端点?

82、针对请求访问的几个组合注解?

83、SpringBoot 中的starter?

84、SpringBoot集成Mybatis?

85、什么是SpringProfiles?

86、不同的环境的配置文件?

87、如何激活某个环境的配置?

88、编写测试用例的注解?

89、SpringBoot异常处理相关注解?

90、SpringBoot读取配置相关注解有?

八、Spring Cloud面试题

1、什么是 Spring Cloud?

2、使用 Spring Cloud 有什么优势?

3、服务注册和发现是什么意思?Spring Cloud 如何实现?

4、Spring Cloud 和dubbo区别?

5、SpringBoot和SpringCloud的区别?

6、负载平衡的意义什么?

7、什么是 Hystrix?它如何实现容错?

8、什么是 Hystrix 断路器?我们需要它吗?

9、什么是 Netflix Feign?它的优点是什么?

10、什么是 Spring Cloud Bus?我们需要它吗?

11、springcloud断路器的作用

12、什么是SpringCloudConfig?

13、Spring Cloud Gateway?

14、 什么是微服务架构

15、 为什么需要学习Spring Cloud

16、 Spring Cloud 是什么

17、 SpringCloud的优缺点

18、 SpringBoot和SpringCloud的区别?

19、 Spring Cloud和SpringBoot版本对应关系

20、 SpringCloud由什么组成

21、 使用 Spring Boot 开发分布式微服务时,我们面临什么问题

22、 Spring Cloud 和dubbo区别?

23、 服务注册和发现是什么意思?Spring Cloud 如何实现?

24、 什么是Eureka

25、 Eureka怎么实现高可用

26、 什么是Eureka的自我保护模式,

27、 DiscoveryClient的作用

28、 Eureka和ZooKeeper都可以提供服务注册与发现的功能,请说说两个的区别

29、 什么是网关?

30、 网关的作用是什么

31、 什么是Spring Cloud Zuul(服务网关)

32、 网关与过滤器有什么区别

33、 常用网关框架有那些?

34、 Zuul与Nginx有什么区别?

35、 既然Nginx可以实现网关?为什么还需要使用Zuul框架

36、 如何设计一套API接口

37、 ZuulFilter常用有那些方法

38、 如何实现动态Zuul网关路由转发

39、 Zuul网关如何搭建集群

40、 负载平衡的意义什么?

41、 Ribbon是什么?

42、 Nginx与Ribbon的区别

43、 Ribbon底层实现原理

44、 什么是断路器

45、 什么是 Hystrix?

46、 谈谈服务雪崩效应

47、 在微服务中,如何保护服务?

48、 服务雪崩效应产生的原因

49、 谈谈服务降级、熔断、服务隔离

50、 服务降级底层是如何实现的?

51、 什么是Feign?

52、 SpringCloud有几种调用接口方式

53、 Ribbon和Feign调用服务的区别

54、 什么是 Spring Cloud Bus?

55、 什么是Spring Cloud Config?

56、 分布式配置中心有那些框架?

57、 分布式配置中心的作用?

58、 SpringCloud Config 可以实现实时刷新吗?

59、 什么是Spring Cloud Gateway?

60、 SpringCloud主要项目

61、 Spring Cloud和SpringBoot版本对应关系

62、 Spring Cloud和各子项目版本对应关系

九、kafka面试题

1、如何获取 topic 主题的列表

2、生产者和消费者的命令行是什么?

3、consumer 是推还是拉?

4、讲讲 kafka 维护消费状态跟踪的方法

5、讲一下主从同步

6、为什么需要消息系统,mysql 不能满足需求吗?

7、Zookeeper 对于 Kafka 的作用是什么?

8、数据传输的事务定义有哪三种?

9、Kafka 判断一个节点是否还活着有那两个条件?

10、Kafka 与传统 MQ 消息系统之间有三个关键区别

11、讲一讲 kafka 的 ack 的三种机制

12、消费者如何不自动提交偏移量,由应用提交?

13、消费者故障,出现活锁问题如何解决?

14、如何控制消费的位置

15、kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?

16、kafka 的高可用机制是什么?

17、kafka 如何减少数据丢失

18、kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。

19、kafka的消费者是pull(拉)还是push(推)模式,这种模式有什么好处?

20、kafka维护消息状态的跟踪方法

21、zookeeper对于kafka的作用是什么?

22、kafka判断一个节点还活着的有那两个条件?

23、讲一讲 kafka 的 ack 的三种机制

24、kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?

25、kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。

26、讲一下kafka集群的组成?

27、kafka是什么?

28、partition的数据文件(offffset,MessageSize,data)

29、kafka如何实现数据的高效读取?

30、 Kafka 消费者端的 Rebalance 操作什么时候发生?

31、Kafka 中的ISR(InSyncRepli)、OSR(OutSyncRepli)、AR(AllRepli)代表什么?

32、Kafka 中的HW、LEO等分别代表什么?

33、Kafka的那些设计让它有如此高的性能?

34、Kafka为什么不支持读写分离?

35、分区Leader选举策略有几种?

36、请简述下你在哪些场景下会选择 Kafka?

37、请谈一谈 Kafka 数据一致性原理

38、Kafka 缺点?

十、java中间件面试题

1、 ZooKeeper 是什么?

2、 ZooKeeper 提供了什么?

3、Zookeeper 文件系统

4、 ZAB 协议?

5、 四种类型的数据节点 Znode

6、 Zookeeper Watcher 机制 -- 数据变更通知

7、 客户端注册 Watcher 实现

8、 服务端处理 Watcher 实现

9、 客户端回调 Watcher

10、 ACL 权限控制机制

11、 Chroot 特性

12、 会话管理

13、 服务器角色

14、 Zookeeper 下 Server 工作状态

15、 数据同步

16、 zookeeper 是如何保证事务的顺序一致性的?

17、 分布式集群中为什么会有 Master?

18、 zk 节点宕机如何处理?

19、 zookeeper 负载均衡和 nginx 负载均衡区别

20、 Zookeeper 有哪几种几种部署模式?

21、 集群最少要几台机器,集群规则是怎样的?

22、 集群支持动态添加机器吗?

23、 Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?

24、 Zookeeper 的 java 客户端都有哪些?

25、 chubby 是什么,和 zookeeper 比你怎么看?

26、 说几个 zookeeper 常用的命令。

27、 ZAB 和 Paxos 算法的联系与区别?

28、 Zookeeper 的典型应用场景

29、什么是MQ

30、MQ的优点

31、解耦、异步、削峰是什么?。

32、消息队列有什么缺点

33、你们公司生产环境用的是什么消息中间件?

34、Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?

35、MQ 有哪些常见问题?如何解决这些问题?

36、什么是RabbitMQ?

37、rabbitmq 的使用场景

38、RabbitMQ基本概念

39、RabbitMQ的工作模式

40、如何保证RabbitMQ消息的顺序性?

41、如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性?

42、如何保证RabbitMQ消息的可靠传输?

43、为什么不应该对所有的 message 都使用持久化机制?

44、如何保证高可用的?RabbitMQ 的集群

45、如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,怎么办?

46、设计MQ思路

47、RoctetMq的架构

48、RocketMq消息模型(专业术语)

49、核心问题

50、为什么要使用 rabbitmq

51、使用 rabbitmq 的场景

52、如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?

53、如何避免消息重复投递或重复消费?

54、消息基于什么传输?

55、消息如何分发?

56、消息怎么路由?

57、如何确保消息不丢失?

58、使用 RabbitMQ 有什么好处?

59、RabbitMQ 的集群

60、mq 的缺点

十一、MySQL面试题

1、MySQL 中有哪几种锁?

2、MySQL 中有哪些不同的表格?

3、简述在MySQL 数据库中 MyISAM 和InnoDB 的区别

4、MySQL 中InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?SQL 标准定义的四个隔离级别为:

5、CHAR 和VARCHAR 的区别?

6、主键和候选键有什么区别?

7、myisamchk 是用来做什么的?

8、如果一个表有一列定义为TIMESTAMP,将发生什么?

9、你怎么看到为表格定义的所有索引?

11、列对比运算符是什么?

12、BLOB 和TEXT 有什么区别?

13、MySQL_fetch_array 和MySQL_fetch_object 的区别是什么?

14、MyISAM 表格将在哪里存储,并且还提供其存储格式?

15、MySQL 如何优化DISTINCT?

16、如何显示前 50 行?

17、可以使用多少列创建索引?

18、NOW()和 CURRENT_DATE()有什么区别?

19、什么是非标准字符串类型?

20、什么是通用 SQL 函数?

21、MySQL 支持事务吗?

22、MySQL 里记录货币用什么字段类型好

23、MySQL 有关权限的表都有哪几个?

24、列的字符串类型可以是什么?

25、MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?

26、锁的优化策略

27、索引的底层实现原理和优化

28、什么情况下设置了索引但无法使用

29、实践中如何优化 MySQL

30、优化数据库的方法

31、简单描述 MySQL 中,索引,主键,唯一索引,联合索引

32、数据库中的事务是什么?

33、SQL 注入漏洞产生的原因?如何防止?

34、为表中得字段选择合适得数据类型

35、存储时期

36、对于关系型数据库而言,索引是相当重要的概念,请回答

37、解释 MySQL 外连接、内连接与自连接的区别

38、Myql 中的事务回滚机制概述

39、SQL 语言包括哪几部分?每部分都有哪些操作关键字?

40、完整性约束包括哪些?

41、一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后, 删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记 录,这条记录的 ID 是 18 还是 15 ?

42、Mysql 的技术特点是什么?

43、Heap 表是什么?

44、Mysql 服务器默认端口是什么?

45、与 Oracle 相比,Mysql 有什么优势?

46、如何区分 FLOAT 和 DOUBLE?

47、区分 CHAR_LENGTH 和 LENGTH?

48、请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

49、在 Mysql 中 ENUM 的用法是什么?

50、如何定义 REGEXP?

51、CHAR 和 VARCHAR 的区别?

52、列的字符串类型可以是什么?

53、如何获取当前的 Mysql 版本?

54、Mysql 中使用什么存储引擎?

55、Mysql 驱动程序是什么?

56、TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?

57、主键和候选键有什么区别?

58、如何使用 Unix shell 登录 Mysql?

59、myisamchk 是用来做什么的?

60、MYSQL 数据库服务器性能分析的方法命令有哪些?

61、如何控制 HEAP 表的最大尺寸?

62、MyISAM Static 和 MyISAM Dynamic 有什么区别?

63、federated 表是什么?

64、如果一个表有一列定义为 TIMESTAMP,将发生什么?

65、列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况?

66、怎样才能找出最后一次插入时分配了哪个自动增量?

67、你怎么看到为表格定义的所有索引?

68、LIKE 声明中的%和_是什么意思?

69、如何在 Unix 和 Mysql 时间戳之间进行转换?

70、列对比运算符是什么?

71、我们如何得到受查询影响的行数?

72、Mysql 查询是否区分大小写?

73、LIKE 和 REGEXP 操作有什么区别?

74、BLOB 和 TEXT 有什么区别?

75、mysql_fetch_array 和 mysql_fetch_object 的区别是什么?

76、我们如何在 mysql 中运行批处理模式?

77、MyISAM 表格将在哪里存储,并且还提供其存储格式?

78、Mysql 中有哪些不同的表格?

79、ISAM 是什么?

80、InnoDB 是什么?

81、Mysql 如何优化 DISTINCT?

82、如何输入字符为十六进制数字?

83、如何显示前 50 行?

84、可以使用多少列创建索引?

85、NOW()和 CURRENT_DATE()有什么区别?

86、什么样的对象可以使用 CREATE 语句创建?

87、Mysql 表中允许有多少个 TRIGGERS?

88、什么是非标准字符串类型?

89、什么是通用 SQL 函数?

90、解释访问控制列表

91、MYSQL 支持事务吗?

92、mysql 里记录货币用什么字段类型好

93、MYSQL 数据表在什么情况下容易损坏?

94、mysql 有关权限的表都有哪几个?

95、Mysql 中有哪几种锁?

96、唯一索引比普通索引快吗, 为什么

97、MySQL由哪些部分组成, 分别用来做什么

98、MySQL查询缓存有什么弊端, 应该什么情况下使用, 8.0版本对查询缓存有什么变更.

99、MyISAM和InnoDB**的区别有哪些

100、MySQL怎么恢复半个月前的数据

101、MySQL事务的隔离级别, 分别有什么特点

102、做过哪些MySQL索引相关优化

103、简要说一下数据库范式

104、一千万条数据的表, 如何分页查询

105、订单表数据量越来越大导致查询缓慢, 如何处理

上面的这些面试题都整理成了PDF文档,希望能帮助到你面试前的复习且找到一个好的工作,也节省你在网上搜索资料的时间来学习!

标签: #java有没有goto #java基本概念面试