在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。

但说实话,想进大厂还真没那么容易。我的一个朋友在入职腾讯之前,大大小小的面试经历了十几次,最后终于在 4 轮技术面+1 轮 HR面之后成功收到 Offer,40k*16 薪!


第一轮主要考察 Java 基础,比如:

  • hashmap的实现

  • Java中的垃圾回收

  • 除了代码之外你还学习了什么技术,框架

  • 死锁是怎么产生的

  • 线程和进程的区别

二、三轮注重对应⽤技术的掌握:

  • MySQL的索引,B+树性质

  • Redis的持久化方式

  • TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办

  • 对于socket编程,accept方法是干什么的,在三次握手中属于第几次

  • ..........

四面则是关于参与过的项目和对业务的理解。

如果这些问题你回答不出来,那么我建议你刷一遍题库。我这里有一份1000+道大厂面试真题!

内容涵盖: Java基础、 MyBatis、ZK、Dubbo、分布式、Redis、MySQL、Spring、 Spring Boot、Spring Cloud、微服务等技术栈

由于题量较多,篇幅的限制,文章中的面试题分享没有全部附上详细的解析,但是整理成了一份详细的PDF文档可分享给大家,点击此处 即可领取啦 


面试题汇总

  1. 什么是Mybatis?

  2. Mybatis的优点:

  3. Mybatis框架的缺点:

  4. Mybatis框架适用场合:

  5. MyBatis与Hibernate有哪些不同?

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

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

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

  9. 通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理

  10. 是什么?Dao接口里的方法,参数不同时,方法能重载吗?

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

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

  13. 如何执行批量插入?

  14. 如何获取自动生成的(主)键值?

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

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

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

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

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

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

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

  22. Mybatis的一级、二级缓存:

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

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

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

  26. zookeeper 负载均衡和 nginx 负载均衡区别

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

  28. 客户端注册 Watcher 实现

  29. zookeeper 是如何保证事务的顺序一致性的?

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

  31. zk 节点宕机如何处理?

  32. 为什么要用 Dubbo?

  33. 默认使用的是什么通信框架,还有别的选择吗?

  34. 服务调用是阻塞的吗?

  35. 一般使用什么注册中心?还有别的选择吗?

  36. 默认使用什么序列化框架,你知道的还有哪些?

  37. Dubbo 的整体架构设计有哪些分层?

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

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

  40. elasticsearch 是如何实现 master 选举的

  41. Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法

  42. 详细描述一下 Elasticsearch 更新和删除文档的过程。

  43. Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?

  44. 使用 Redis 有哪些好处?

  45. Redis 是单进程单线程的?

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

  47. Redis 常见异常问题和解决方案(雪崩,穿透...)

  48. redis 过期键的删除策略?

  49. 为什么 redis 需要把所有数据放到内存中?

  50. Redis 集群的主从复制模型是怎样的?

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

  52. L 相关存储引擎。

  53. MySQL 索引实现原理。

  54. MySQL 数据库锁。

  55. MySQL 的 SQL 调优。

  56. MySQL 分表分库全局 ID。

  57. Mysql的技术特点是什么?

  58. Heap表是什么?

  59. Mysql服务器默认端口是什么?

  60. 如何区分FLOAT和DOUBLE?

  61. 区分CHAR_LENGTH和LENGTH?

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

  63. 在Mysql中ENUM的用法是什么?

  64. 如何定义REGEXP?

  65. CHAR和VARCHAR的区别?

  66. Mysql查询是否区分大小写?

  67. Mysql中有哪些不同的表格?

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

  69. 什么是通用SQL函数?

  70. MYSQL支持事务吗?

  71. mysql里记录货币用什么字段类型好

  72. Mysql中有哪几种锁?

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

  74. 在 java 中守护线程和本地线程区别?

  75. 什么是多线程中的上下文切换?

  76. Java 中用到的线程调度算法是什么?

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

  78. 在 Java 中 Executor 和 Executors 的区别?

  79. 并发编程三要素?

  80. 什么是线程池?有哪几种创建方式?

  81. 谈谈你对spring IOC 和 DI 的理解,它们有什么区别?

  82. BeanFactory接口和 ApplicationContext 接口有什么区

  83. Spring配置 bean 实例化有哪些方式?

  84. 简单地说一下 spring 的生命周期?

  85. 请介绍一下 Spring 框架中 Bean 的生命周期和作用域

  86. Bean 注入属性有哪几种方式?

  87. 什么是 AOP,AOP 的作用是什么?

  88. Spring的核心类有哪些,各有什么作用?

  89. Spring里面如何配置数据库驱动?

  90. Spring里面 applicationContext.xml 文件能不能改成其他 文件名?

  91. Spring里面如何定义 hibernate mapping?

  92. Spring如何处理线程并发问题?

  93. 为什么要有事物传播行为?

  94. 介 绍 一 下Spring的 事物管理

  95. 解释一下Spring AOP里面的几个名词

  96. 通知有哪些类型?

  97. Kafka 与传统 MQ 消息系统之间有三个关键区别?

  98. 讲一讲 kafka 的 ack 的三种机制?

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

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

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

  102. 基本数据类型的长度

  103. 反射

  104. ACID

  105. MVC

  106. RPC和RMI

  107. 常见的RPC框架Dubbo

  108. JSWDL开发包的介绍

  109. WEB容器功能

  110. 深拷贝和浅拷贝

  111. 值传递和引用传递

  112. Ajax

  113. HTTP

  114. HTTP1和HTTP2

  115. 常见的编程协议

  116. TCP

  117. 3TCP (传输控制协议)和UDP (用户数据报协议)

  118. TCP/IP

  119. Socket

  120. 线程的处理流程

  121. 阻塞I/O通讯模型

  122. NIO(new 10)

  123. java NIO的工作原理

  124. java.nio.中提供了

  125. 10和NIO的区别

  126. NIO的优点

  127. 创建线程有几种不同的方式?你喜欢哪-种?为什么?

  128. 线程池

  129. 静态条件

  130. 概括的解释下线程的几种可用状态

  131. 用什么关键字修饰同步方法?

  132. stop()和suspend0方法为何不推荐使用?

  133. 什么是ThreadLocal?

  134. run()和start()区别

  135. sleep()和wait()有什么区别?

  136. 当一个线程进入-一个对象的- -个synchronized方法后,其它线程是否可进入此对象的其它方法?

  137. 请说出你所知道的线程同步的方法

  138. 线程调度和线程控制

  139. JMM

  140. 同步和异步有何异同,在什么情况下分别使用他们?举例说明

  141. 什么是线程饿死,什么是活锁?

  142. 多线程中的忙循环是什么?

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

  144. 同步方法和同步代码块区别:

  145. 如何确保N个线程可以访问N个资源同时又不导致死锁?

  146. 什么是原子操作

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

  148. volatile类型变量提供什么保证?能使得一个非原 子操作变成原子操作吗

  149. 能创建volatile数组吗?

  150. -张表,里面有ID自增主键,当insert了 17条记录之后,删除了第15,16,17条记录,再把Mysql .

  151. 重启,再insert- 条记录,这条记录的ID是18还是15?

  152. Heap表是什么?

  153. Mysq|服务器默认端口是什么?

  154. 与Oracle相比,Mysq|有什么 优势?

  155. 区分CHAR_ LENGTH和LENGTH?

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

  157. 在Mysq|中ENUM的用法是什么?

  158. 如何定义REGEXP?

  159. CHAR和VARCHAR的区别?

  160. 列的字符串类型可以是什么?

  161. 如何获取当前的Mysql版本?

  162. Mysql中使用什么存储引擎?

  163. TIMEST TAMP在UPDATE CURRENT_ _TIMESTAMP数据类型上做什么?

  164. 主键和候选键有什么区别?

  165. 如何使用Unix shell登录Mysq|?

  166. myisamchk是用来做什么的?

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

  168. 如何控制HEAP表的最大尺寸?

  169. MyISAM Static和MyISAM Dynamic有什么区别?

  170. federated表是什么?

  171. 如果-个表有- -列定义为TIMESTAMP,将发生什么?

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

  173. 怎样才能找出最后- -次插入时分配了哪个自动增量?

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

  175. LIKE声明中的%和_是什么意思?

  176. 如何在Unix和Mysq|时间戳之间进行转换?

  177. 列对比运算符是什么?

  178. 我们如何得到受查询影响的行数?

  179. Mysq查询是否区分大小写?

  180. LIKE和REGEXP操作有什么区别?

  181. BLOB和TEXT有什么区别?

  182. mysql fetch. array和mysql _fetch. _object的区别是什么?

  183. 数据库的三范式?

  184. 我们如何在mysq|中运行批处理模式?

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

  186. Mysq|中有哪些不同的表格?

  187. ISAM是什么?

  188. InnoDB是什么?

  189. Mysq|如何优化DISTINCT?

  190. 如何显示前50行?

  191. 可以使用多少列创建索引?

  192. NOW ()和CURRENT_ DATE ()有什么区别?

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

  194. Mysq|表中允许有多少个TRIGGERS?

  195. 什么是非标准字符串类型?

  196. 什么是通用SQL函数?

  197. 解释访问控制列表

  198. MYSQL支持事务吗?

  199. mysq|里记录货币用什么字段类型好

  200. MYSQL数据表在什么情况下容易损坏?

  201. mysq|有关权限的表都有哪几个?

  202. Mysq|中有哪几种锁?

  203. Mysq|数据优化

  204. MySQL的关键字

  205. 存储引擎

  206. 数据库备份

  207. 如何显示创表语句以及给表中添加字段

  208. SQL语言分类

  209. truncate delete drop的区别:

  210. 说出ArrayList,Vector, LinkedL ist的存储性能和特性

  211. HashMap和Hashtable的区别

  212. 快速失败(ail-fast)和安全失败(fail-safe)的区别是什么?

  213. hashmap的数据结构

  214. HashMap的工作原理是什么?

  215. Hashmap什么时候进行扩容呢?

  216. CorrentHashMap的工作原理?

  217. Java集合类框架的基本接口有哪些?

  218. HashSet和TreeSet有什么区别?

  219. HashSet的底层实现是什么?

  220. LinkedHashMap的实现原理?

  221. 为什么集合类没有实现Cloneable和Serializable接口?

  222. 什么是迭代器(terator)?

  223. Iterator和Listlterator的区别是什么?

  224. 数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayList?

  225. Java集合类框架的最佳实践有哪些?

  226. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals(?它们有何区别

  227. Comparable和Comparator接口是干什么的?列出它们的区别。

  228. Collection和Collections的区别

  229. java内存分配

  230. Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?

  231. GC是什么?为什么要有GC

  232. 简述java垃圾回收机制?

  233. 如何判断一个对象是否存活?(或者GC对象的判定方法)

  234. 垃圾回收的2种回收机制

  235. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

  236. System.gc0和Runtime.gc0会做什么事情?

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

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

  239. 什么是分布式垃圾回收(DGC)?它是如何工作的?

  240. 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?

  241. 在Java中,对象什么时候可以被垃圾回收?

  242. 分代

  243. Gc的基本概念

  244. 简述java内存分配与回收策略以及Minor GC和Major GC

  245. JVM的永久代中会,发生垃圾回收么?

  246. java中垃圾收集的方法有哪些?

  247. java中会存在内存泄漏吗,请简单描述。

  248. java类加载过程?

  249. 简述java类加载机制?

  250. 什么是类加载器,类加载器有哪些?

  251. 类加载器双亲委派模型机制?

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

  253. 如何阻.止Java中的类型未检查的警告?

  254. 抽象类和接口

  255. 面向对象软件开发的优点有哪些?

  256. 封装的定义和好处有哪些?

  257. 多态的定义?

  258. 继承的定义?

  259. 抽象的定义?抽象和封装的不同点?

  260. N层架构

  261. 3尾递归

  262. Final和static

  263. 能否在运行时向static final类型的变量赋值

  264. throws, throw, try, catch, finally分别代表什么意义

  265. 3HTTP请求的GET与POST方式的区别

  266. JSP的常用指令

  267. xml有哪些解析技术?区别是什么?

  268. XML文档定义有几种形式?它们之间有何本质区别?

  269. 你在项目中用到了xml技术的哪些方面?如何实现的?

  270. log4j日志

  271. 什么是RESTful架构:

  272. Redis是什么?两句话做下概括

  273. redis (管道,哈希)

  274. redis实现原理或机制

  275. Redis有两种类型分区

  276. Mongo DB

  277. Mongo DB特点

  278. Mongo DB功能

  279. Mongo DB适用场景

  280. redis、memcache、mongoDB 对比

  281. Redis有什么用?只有了解了它有哪些特性,我们在用的时候才能扬长避短,为我们所用:这里对Redis数据库做下小结

全套1000道互联网Java工程师面试题




Java面试专题及答案



面试资料及答案免费领取方式:点击此处 即可获取免费领取方式!

作为Java开发者而已应当合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!