共面了头条、百度两家后台,均经历三面,面经如下。
头条后端 1 面:
-
java gc
-
java class 的加载过程
-
java hashmap、 为什么用红黑树、红黑树邻接点为啥是 8 。
-
拜占庭问题
-
一致性哈希
-
如何控制负载均衡。
-
http 码 302 403 。
-
https 加密过程。
-
操作系统虚存实现原理,交换,覆盖区别。
-
paxos 算法。
-
NP 问题、 举例。
-
缓冲区满异常是什么原因。
-
innodb 和 mysalm 的区别。
-
堆排序的时间复杂度、空间复杂度、排序的的过程。
-
spring 问题。
-
算法 : 对一个八位数有三种操作: 加一、减一、反转 。 至少多少次操作可以把一个八位数 A 变成八位数 B。
头条一面后,我觉得自己凉凉了,算法也不会,题目也有些不会。但还是给了二面
头条 2 面:
-
死锁必要条件
-
java 如何处理死锁
-
什么是重入锁、 sychronized 和 retrentlock 实现区别、锁方法、锁 class
-
算法题: 合并区间 快排
-
数据库 os
-
timewait close wait
-
好吧,二面算法写个快排, 居然死循环了,调了 10 分钟没调出来, 真心感觉凉了,但是没想到居然给了三面, 我真是佛了。。
头条三面 :
-
唯一一个技术问题 : 什么是线程安全。
-
代码:写 生产者-消费者 模型
三面一共聊了 15 分钟,写了 15 分钟,结束。
三天后收到意向书。
字节跳动真心奇怪, 打扰了,这都能过。
再发个百度 java 后端面经吧。
百度一面:
-
锁的实现。悲观锁、乐观锁。
-
sychronized 和 reentrantlock 实现原理
-
volatile 原理
-
java 设计模式, jdk 里用到了哪些设计模式。
-
NIO 讲一讲。
-
数据库 两种引擎区别。
-
热备份。
-
四次挥手 越详细越好
-
如果一直都等不到连接会怎么样。
-
concurrenthashmap 实现原理。
-
二叉树 转 链表。
百度二面:
-
gc
-
java longadder
-
数据库 四种隔离级别
-
数据库的索引数据结构 :哈希 、b 树、全文索引。
-
跳台阶
-
手撕 LRU
百度三面
-
fanal fanally fanalize 区别、
-
final 修饰类能继承吗、
-
不用 final 还可以用什么办法使得这个类不被继承、
-
java 初始化的顺序 :
-
java 锁机制、sychronnized 和 lock 的区别
-
自旋锁 是公平吗?
-
自旋锁 怎么才能公平。
-
客户抱怨你们网站太慢,怎么排查问题?
-
tcp 三次四次
更多高级 Java 必考题与答案