首页 > 笔经面经 > 字节抖音Java一二面凉经

字节抖音Java一二面凉经

头像
小洪1617
编辑于 2021-06-21 10:11:52 APP内打开
赞 32 | 收藏 234 | 回复29 | 浏览10112

写在前面:一面问得过于简单,二面过于困难。整体的体验不太好。。

一面

1.Java如何实现线程安全(synchronized,ReentrantLock,AtomicInteger,ThreadLocal,CAS)
2.CAS如何解决ABA问题(版本号)
3.AtomicInteger的原理(UnSafe类,底层是一句CPU指令,避免了并发问题)
4.可重入锁是什么,非可重入锁又是什么(略
5.代码,实现生产者和消费者,一个长度100的buffer,10个生产者线程,10个消费者线程
(我用了ReentrantLock跟Condition,结果忘记了锁的包路径是啥了,我写成了java.util.concurrent.,后来才知道是java.util.concurrent.locks.。。。)
6.对着代码提问,判定条件的while能不能换成if,为什么?为什么用signalAll,可不可以换成signal,二者有什么区别?
7.Spring,AOP是什么,IOC是什么
8.二叉树的概念?红黑树又是什么,红黑树和其他平衡树的区别在哪
9.TCP三次握手的过程,重发报文的过程。
10.TCP和UDP的区别
11.说一下哪个项目觉得最有挑战,有几个模块,介绍一下
12.代码,LeetCode76

二面

1.MySQL的事务特性,事务隔离级别,分别解决了什么问题
2.间隙锁是什么,具体什么时候会加锁(具体什么时候加锁,这里要把所有情况都说清楚。。
3.SQLite如何加锁
4.Java里的锁,有哪几种(synchronized和Reentrantlock)
5.ReentrantLock有哪些特性(可重入,公平锁),可重入是如何实现的(有一个引用数,非可重入只有01值)
6.当某个线程获取ReentrantLock失败时,是否会从内核态切换回用户态?ReentrantLock如何存储阻塞的线程的?(AQS,不断轮询前一个结点是否状态发生了变化)所以什么是自旋锁?
7.JVM,说一下最熟悉的GC(我说了CMS,讲了并行回收,浮动垃圾,最短STW等等),然后追问我CMS的整个回收流程,标记,清理等等,年轻代怎么回收等等。(被问倒了。
7.Redis的持久化如何做到的?(RDB+AOF)
8.RDB具体是如何实现的,RDB生成快照的时候,Redis会阻塞掉吗?(使用BgSave,fork一个子进程去并行生成快照,不会阻塞)
9.既然生成快照的中途依然可以执行Redis,那么从节点获取到快照是不完整的,如何同步?(主从同步,先建立连接,然后命令传播,两个结点中的buffer队列里存储一个offset,差值就是需要同步的值)
10.设计题,设计一个扫码登陆(不会)那换成设计微信红包功能(MySQL的字段,Redis缓存一致性,发红包如何add字段,抢红包如何修改字段,通过一个唯一的版本号去保证CAS的ABA得到解决。但说了很久,面试官依然认为思路混乱)
11.算法题,n*n的矩阵,只能向右或向下移动,从最左上方移动到最右下方,把所有的路径输出(回溯,但剪枝忘了。前面的也答得不好,差不多就溜溜球了,也没有继续挣扎了。。)

碎碎念

一面的面试官爱理不理的,感觉就不是很想招人。但最后出了一题hard,也做出来了,感觉应该还是能过的,确实也通过了。

但二面真的太难了,每一个问题都会一直细问,追问。其实ReentrantLock,还有MySQL的锁,Redis的持久化过程,我都有认真去复习的,但真的追问得太细了。。其实当时他第一题问“MySQL具体什么时候加锁”,我就挺懵的了。因为这个题我确实研究过很久,要综合考虑隔离级别,是否用了主键索引,二级索引,是否 存在回表等等的。所以当时我也不知道怎么回答,然后冷静下来就定位到了间隙锁上也就是肯定为RR级别,接着把大概的select,insert,delete等等的都说了,但后面还要继续说更细节的情况。我也不知道是我对题目的理解有问题,还是面试官想要的答案跟我不一致。反正挫败感很强,因为我记得当时看“这条SQL语句加了什么锁”,真的看了很久,而且自己也动手去测试了,结果还是没能满足面试官。。

面试官看我对锁的理解“不够深入”,于是转向了Java里的锁。问完ReentrantLock的特性,又问什么是可重入锁,说完又问具体是怎么实现的。直到这里我还是完全OK的,但后面的“线程在用户态和内核态的切换”我就完全不懂了,面试官诱导了一下ReentrantLock如何实现,我大概说了一下AQS跟CLH锁,感觉又被挖坑了,跟前面说的“可能答案”自相矛盾。。

接着的Redis持久化,也追问得很厉害,从持久化问到主从同步。。中间追问的时候描述得也比较“模糊”,后来在提示下才知道是问主从同步了,然后把整个过程都说了一下。。

接着的设计题,没接触过。。说了很多,感觉还是不行。

算法题基本上已经是“垃圾时间”啦,确实也出了一题很简单的题,大概做出来之后就算了。面试官问我如何优化,我也深知已经没戏,就直接放弃说不会了。然后面试就到这里。

总的来说,其实二面的面试官挺温柔的,但问的题对于我来说太难了。。所以,第二天收到HR的感谢信。over。

更多模拟面试

29条回帖

回帖
加载中...
话题 回帖

相关热帖

笔经面经近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐