最新精选Java面试题,附答案!

我自己前前后后加起来总共应该参加了不下四五十次的面试,另外参考网上的一些面试题,整理了这个面试题库,希望可以帮助到大家。

篇幅有限,我在上千道面试题中从各技术方向选出15道,分享给大家
可以关注公众号:【Java专栏】,发送" 面试题 " 获取完整的面试题(整理成了PDF,并且带目录)
或者 ☺️☺️点击这里,获取面试手册及答案

Java基础

1. short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗

2. Java中的抽象类和接口的区别?

3. 静态变量与普通变量区别

4. 内部类相关,看程序说出运行结果

5. &和&&的区别

6. 内部类的分类有哪些

7. 什么是 static 块?

8. final有哪些用法?

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

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

11. == 和 equals 的区别是什么?

12. JDK和JRE和JVM的区别

13. 在Java中定义一个不做事且没有参数的构造方法的作用

14. 什么是Java

15. Java 中 main() 方法的重要性是什么?

字符串

16. String 类的常用方法都有那些?

17. String是不可变的有什么好处?

18. 什么是字符串池?

19. String s = new String("xyz");创建了几个StringObject?是否可以继承String类?

20. String、StringBuffer和StringBuilder区别(类似上一题)

21. 如何分割一个String?

22. 下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"

23. 如何比较两个字符串?

24. 为什么要引入SpringBuffer、StringBuilder两种字符串处理类?

25. 如何将String转换为char,反过来呢?

26. Java 中操作字符串都有哪些类?它们之间有什么区别?

27. 创建String对象的不同方式有哪些?

28. String str="i"与 String str=new String("i")一样吗?

29. 什么是String,它是什么数据类型?

30. 如何将String转换为byte array,反过来呢?

容器

31. 说一说ArrayList 的扩容机制吧

32. 与Java集合框架相关的有哪些最好的实践?

33. ArrayList和LinkedList区别?

34. Iterater和ListIterator之间有什么区别?

35. 为何Map接口不继承Collection接口?

36. 如何对Object的list排序

37. Java中的同步集合与并发集合有什么区别

38. 集合框架里实现的通用算法有哪些?

39. Comparable和Comparator接口是什么?

40. 通过迭代器fail-fast属性,你明白了什么?

41. 在迭代一个集合的时候,如何避免ConcurrentModificationException?

42. HashMap的实现原理

43. Collections类是什么?

44. fail-fast与fail-safe有什么区别?

45. ArrayList和LinkedList的区别?

多线程并发

46. 一个线程运行时发生异常会怎样?

47. synchronized和ReentrantLock的区别

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

49. Synchronized 有几种用法?

50. 线程有哪些基本状态?

51. 线程池都有哪些状态?

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

53. Java中interrupted 和 isInterrupted方法的区别?

54. 创建线程池参数有哪些,作用?

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

56. 线程安全的级别

57. 线程的状态

58. Thread.sleep(0)的作用是什么

59. 在Java中Executor、ExecutorService、Executors的区别?

60. 同步方法和同步块,哪个是更好的选择

异常

61. 简单说说Java中的异常处理机制的简单原理和应用。

62. Java异常简介

63. 什么是受检异常

64. Java异常的分类

65. Excption与Error包结构

66. 阐述 final、finally、finalize 的区别

67. Error 和 Exception 有什么区别?

68. 运行时异常与一般异常有何异同?

69. 列出一些你常见的运行时异常?

70. Throw 和 throws 的区别

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

泛型

72. 泛型常用特点

73. 什么是泛型

74. List和List 之间有什么区别 ?

75. 如何编写一个泛型方法,让它能接受泛型参数并返回泛型类型?

76. 什么是泛型中的限定通配符和非限定通配符 ?

77. Java的泛型是如何工作的 ? 什么是类型擦除 ?

78. 你可以把List传递给一个接受List参数的方法吗?

79. 使用泛型的好处?

80. 什么是泛型擦除

序列化

81. 什么类型的变量不会被序列化?

82. 你不定义serialVersionUID, 会发生什么?

83. 序列化有什么用途?

84. 如果某个类实现了 Serializable ,但父类没实现,那么当执行反序列化的时候,对象状态是怎样的?

85. Serializable 接口有几个方法? 如果没有方法,那么为什么会有这样的接口?

86. 如果你不希望某些成员被序列化,应该怎么做?

87. serialVersionUID有什么用,如何使用serialVersionUID

88. Serializable 和 Externalizable 接口有何不同?

89. 序列化和反序列化

90. 能否自定义序列化的过程?

91. 什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。

反射

92. 反射机制的应用场景有哪些?

93. 反射机制可以做什么?

94. Java获取反射的三种方法

95. 哪里用到反射机制?

96. 什么是反射机制?

97. 反射机制优缺点

98. Java反射机制的作用

99. 如何使用Java的反射?

文件I/O

100. 字节流如何转为字符流?

101. Java 中怎么创建 ByteBuffer?

102. 谈谈Java IO里面的常见类,字节流,字符流、接口、实现类、方法阻塞

103. Java中流类的超类均为抽象类)主要由哪些组成?

104. 说说RandomAccessFile?

105. 说说File类

106. Java 中有几种类型的流?

107. IO管道

108. Files的常用方法都有哪些?

109. 什么是Filter流?

110. 在文件拷贝的时候,哪一种流可用于提升更多的性能?

111. 讲讲NIO

112. 说出 5 条 IO 的最佳实践(答案)

113. System.in, System.out, System.err

114. System.out.println()是什么?

面向对象

115. 为什么 Java 不支持多重继承?

116. 在Java中,子类可以从父类中继承哪些?

117. 封装具有的特性?

118. 内部类的二个好处是什么?

119. 面向对象五大基本原则是什么(可选)

120. 内部类的作用?

121. 面向对象和面向过程的区别

122. 什么是多态机制?Java语言是如何实现多态的?

123. 面向对象的特征有哪些方面

124. Java多态的理解

125. Java 支持多继承么?

网络

126. TCP与UDP的区别

127. 为什么在GET请求中会对URL进行编码?

128. TCP与UDP区别:

129. 什么是TCP/IP和UDP

130. TCP/IP 四层模型

131. 什么是Cookie

132. 网络协议是什么

133. 什么是跨站攻击CSRF?

134. 什么是 XSS 攻击?

135. TCP和UDP的应用场景:

136. IP地址的分类

137. DNS的寻址过程你知道吗?

138. 你知道 TCP 如何处理拥塞吗?

139. 常用的HTTP方法有哪些?

140. 计算机网络体系结构

JVM

141. 说说 JVM 如何执行 class 中的字节码。

142. 对象是怎么从年轻代进入老年代的?

143. 你都用过G1垃圾回收器的哪几个重要参数?

144. 列举一些你知道的打破双亲委派机制的例子。为什么要打破?

145. 如何判断对象可以被回收?

146. JVM有哪些内存区域?(JVM的内存布局是什么?)

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

148. MinorGC,MajorGC、FullGC都什么时候发生?

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

150. 对象在哪块内存分配?

151. 如何开启和查看 GC 日志?

152. 跟JVM内存相关的几个核心参数图解

153. 你知道哪些JVM性能调优

154. 垃圾收集算法

155. 工作中常用的 JVM 配置参数有哪些?

MySQL

156. MySql 服务默认端口号是多少 ?

157. MyISAM索引与InnoDB索引的区别?

158. MySQL复制基本原理流程

159. UNION与UNION ALL的区别?

160. FLOAT和DOUBLE的区别是什么?

161. MyISAM存储引擎特性有哪些?

162. 六种关联查询

163. 索引是什么?有什么作用以及优缺点?

164. 非聚簇索引一定会回表查询吗?

165. 索引是个什么样的数据结构呢?

166. MySQL支持哪些存储引擎?

167. Hash索引和B+树所有有什么区别或者说优劣呢?

168. SELECT COUNT(*) 在哪个引擎执行更快?

169. 那么在哪些情况下会发生针对该列创建了索引但是在查询的时候并没有使用呢?

170. InnoDB 引擎的四大特性是什么?

Redis

171. Redis的数据类型,以及每种数据类型的使用场景

172. redis 过期策略都有哪些?LRU 算法知道吗?

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

174. 请用Redis和任意语言实现一段恶意登录保护的代码,限制1小时内每用户Id最多只能登录5次。具体登录函数或功能用空函数即可,不用详细写出。

175. 为什么要用 redis/为什么要用缓存

176. Redis 集群会有写操作丢失吗?为什么?

177. Redis有哪些适合的场景?

178. 定时删除策略

179. Redis 有哪些适合的场景?

180. 单线程的redis为什么这么快

181. Redis 有哪几种数据淘汰策略?

182. watch dog 自动延期机制

183. Redis 中的管道有什么用?

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

185. 什么是Redis持久化?

MyBatis

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

187. 为什么需要预编译

188. MyBatis与Hibernate有哪些不同?

189. 什么是Mybatis?

190. ORM是什么

191. RowBounds 是一次性查询全部结果吗?为什么?

192. 请说说MyBatis的工作原理

193. MyBatis的功能架构是怎样的

194. JDBC编程有哪些不足之处,MyBatis 是如何解决这些问题的?

195. 什么是DBMS

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

197. 一对一、一对多的关联查询 ?

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

199. MyBatis框架适用场合:

200. Mapper编写有哪几种方式?

Spring

201. 解释JDBC抽象和DAO模块

202. Spring事务的实现方式和实现原理:

203. 在 Spring 中,有几种配置 Bean 的方式?

204. 讲讲Spring加载流程。

205. Spring AOP的实现原理。

206. 什么是 Spring IOC 容器?

207. Spring MVC 框架有什么用?

208. Spring 中的 IoC 的实现原理就是工厂模式加反射机制。

209. BeanFactory – BeanFactory 实现举例

210. 构造器依赖注入和 Setter方法注入的区别

211. 使用@Autowired注解自动装配的过程是怎样的?

212. @Autowired 注解有什么用?

213. Spring通知有哪些类型?

214. 怎样用注解的方式配置Spring?

215. Spring框架使用了哪些设计模式

SpringBoot

216. 如何集成 Spring Boot 和 ActiveMQ?

217. 什么是 Swagger?你用 Spring Boot 实现了它吗?

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

219. Spring Boot扫描流程?

220. SpringBoot常用的starter有哪些?

221. Springboot集成mybatis的过程

222. 创建一个 Spring Boot Project 的最简单的方法是什么?

223. 什么是JavaConfig?

224. 什么是 JavaConfig?

225. 你如何理解 Spring Boot 中的 Starters?

226. Spring Boot 还提供了其它的哪些 Starter Project Options?

227. 为什么我们需要 spring-boot-maven-plugin?

228. 为什么我们不建议在实际的应用程序中使用 Spring Data Rest?

229. SpringBoot自动配置原理是什么?

230. Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

SpringCloud

231. Spring Cloud的子项目(主要项目)

232. 什么是微服务架构?

233. 使用 Spring Cloud 有什么优势?

234. 作为 务注册中心,Eureka比Zookeeper好在哪里?

235. 微服务是如何对外提供统一接口的(zuul具体使用)

236. 什么是微服务?

237. 负载平衡的意义什么?

238. 什么是 zuul路由网关

239. 分布式配置中心能干嘛?

240. 什么是 Netflix Feign?它的优点是什么?

241. Ribbon负载均衡能干什么?

242. 什么是 Netflix Feign?它的优点是什么?

243. 使用Spring Cloud有什么优势?

244. spring cloud 的核心组件有哪些

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

Dubbo

246. Dubbo是什么?

247. 为什么要用Dubbo?

248. Dubbo超时时间的设置

249. Dubbo需要 Web 容器吗?

250. 说说服务暴露的流程?

251. Dubbo核心配置有哪些?

252. Dubbo 核心的配置有哪些?

253. 服务读写推荐的容错策略是怎样的?

254. 画一画服务注册与发现的流程图

255. Dubbo 和 Dubbox 有什么区别?

256. 你还了解别的分布式框架吗?

257. Dubbo核心组件是?

258. 服务上线怎么兼容旧版本?

259. 说说服务引用的流程?

260. Dubbo推荐使用什么序列化框架,你知道的还有哪些?

Nginx

261. 为什么Nginx性能这么高?

262. 使用“反向代理服务器的优点是什么?

263. Nginx静态资源?

264. 限流怎么做的?

265. Nginx虚拟主机怎么配置?

266. 如何用Nginx解决前端跨域问题?

267. Nginx配置高可用性怎么配置?

268. 为什么要做动静分离?

269. Nginx怎么判断IP不可访问?

270. 请列举Nginx的一些特性。

271. Nginx怎么做的动静分离?

272. Nginx负载均衡的算法怎么实现的?策略有哪些?

273. Nginx常用变量

274. 请解释 Nginx 如何处理 HTTP 请求?

275. Location正则案例

zookeeper

276. Zookeeper Watcher 机制 -- 数据变更通知

277. 服务端处理 Watcher 实现

278. 四种类型的数据节点 Znode

279. Zookeeper的java客户端都有哪些?

280. Chroot 特性

281. Zookeeper 下 Server 工作状态

282. ACL 权限控制机制

283. 说一下 Zookeeper 的通知机制?

284. 客户端注册 Watcher 实现

285. Zookeeper 的典型应用场景

286. Zookeeper 都有哪些功能?

287. ZooKeeper 提供了什么?

288. 分布式集群中为什么会有 Master?

289. ZooKeeper 是什么?

290. 集群中有 3 台服务器,其中一个节点宕机,这个时候 Zookeeper 还可以使用吗?

MQ

291. 消费者某些原因无法处理当前接受的消息如何来拒绝?

292. 你了解哪些常用的 MQ?

293. 如何保证消息不被重复消费?

294. 如何保证消息的顺序性?

295. 当消费负载均衡consumer和queue不对等的时候会发生什么?

296. AMQP模型的几大组件?

297. vhost 是什么?起什么作用?

298. RocketMq如何负载均衡?

299. AMQP协议3层?

300. RocketMQ的消息堆积如何处理?

301. 集群中的节点类型?

302. RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?

303. RocketMq性能比较高的原因?

304. RabbitMQ是什么?

305. 如何让 RocketMQ 保证消息的顺序消费?

Kafka

306. 谈谈你对Kafka幂等性的理解?

307. 监控Kafka的框架都有哪些?

308. Kafka 是如何实现高吞吐率的?

309. 在Kafka中,领导者和追随者是什么意思?

310. Kafka怎么实现如此高的读写效率?

311. kafka中的 zookeeper 起到什么作用,可以不用zookeeper么

312. Kafka 分区的目的?

313. Consumer与topic关系

314. Kafka中的消息有序吗?怎么实现的?

315. 什么是kafka

316. Kafka能手动删除消息吗?

317. 你知道 Kafka 是如何做到消息的有序性?

318. Kafka 缺点?

319. Kafka Stream的一些独特功能是什么?

320. Kafka为什么不支持读写分离?

ElasticSearch

321. 精准匹配检索和全文检索匹配检索的不同?

322. 详细描述一下ES索引文档的过程?

323. ElaticSearch是如何实现master选举的?

324. Elasticsearch Analyzer 中的字符过滤器如何利用?

325. ES 写数据过程

326. REST API在 Elasticsearch 方面有哪些优势?

327. 请解释在 Elasticsearch 集群中添加或创建索引的过程?

328. 在并发情况下,ES如果保证读写一致?

329. elasticsearch 索引数据多了怎么办,如何调优,部署

330. 你能否列出与 Elasticsearch 有关的主要可用字段数据类型?

331. elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段 。

332. ES对于大数据量(上亿量级)的聚合如何实现?

333. 详细描述一下ES搜索的过程?

334. 我们可以在 Elasticsearch 中执行搜索的各种可能方式有哪些?

335. Elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段 。

你可能感兴趣的:(java面试问题后端)