共面了头条、百度两家后台,均经历三面,面经如下。


头条后端 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 必考题与答案



答************