字节跳动后端提前批一面面经

菜鸟的秋招第一场面试,面试官人很好,刚进去的时候麦克风有点问题,对方听不到我的声音,还很耐心地在等,最后重新进了才好,面试过程中也有加以引导
1. 自我介绍,面试官也介绍了他们部门的业务(教育部门)
2. 项目相关(以前实习做的异步框架的接口,但是没仔细问,主要问的反而是一个共享白板的大作业) 让描述的客户端和服务器端如何进行通信,如何实现画板上的图形的同步(说实话没想到一面就问项目,有点措手不及,好在大体还记得)因为只是个大作业,所以在出现线程安全问题的时候直接把ArrayList换成了线程安全的copyOnWriteArrayList,然后synchronized加锁,顺便提了一下fast-fail机制.然后面试官问如果有100个用户线程同时写改如何处理并发问题(这里我懵了,直接说不知道,因为确实没有考虑过那么多)
3. 问了NIO,直接说没咋了解过(确实平常IO用的不多)
4. 问程序的执行过程,主要答的类加载(在编译之后加载,链接(具体四个流程记得不是太清楚了就没展开说),初始化...)着重说了一下什么时候会触发初始化,那些字节码指令会触发
5. 问的JVM内存模型(这只说了几个,包括程序计数器,堆啥的),进一步问的堆的结构(这里一下没转过弯来,应该答新生代老生带永久代的对象,后来他也问了我这些对象应该放在哪个区域).然后问垃圾回收了不了解,问有哪些垃圾回收算法,为什么有两个survival区域,没问具体的垃圾回收器
6. JMM模型和线程同步(这方面看的比较多,先说的三大特性包括happens-hefore原则,然后说的as-if-serialyu把synchronized的用法和原理讲了一遍,然后提了提volatile),问的synchronized是不是公平锁
7. 数据库,问mysql的存储引擎,以及他们的区别(就看过一点innoDB和MyISAM的去别,说了事务和锁不一样).然后问隔离级别,问innoDB默认是什么隔离级别
8. 网络,问URL的解析,答的输入网址,缓存解析(命中顺序),DNS解析域名,三次握手建立连接(这里他就一直让我往下说,我有点懵逼,就把四次挥手也说了)
9. 算法,第一个算法是设想你有一个3-4GB的文件,每行一个字符串,说明如何对这个文件进行排序来统计某个属性的频率(内存只有512MB),让描述过程,这里我说的是利用归并分块,然后问好之后每个文件用快排,之后再往上并,但是他似乎不是很满意,可能没涉及到太多缓存啥的吧
10. 算法2,回文链表,最后没时间了他说你就把链表翻转写一下就行了.
总体面了一个小时左右,真的涉及到的还挺多的,面到最后汗都出来了,感觉可能是凉了TAT,共勉吧.

#面经##校招##字节跳动##Java工程师#
全部评论
楼主你好,请问你是什么岗位?开发的话,是Java方向还是C++方向?或者其他语言方向~
点赞
送花
回复
分享
发布于 2020-07-27 22:04
对了,JVM还问了有哪几种类加载器,我顺便说了一下双亲委派模型,他继续问为什么这么设计,我回答的是用户自己的类不会覆盖类库的同名类,类似于多态
点赞
送花
回复
分享
发布于 2020-07-27 23:19
秋招专场
校招火热招聘中
官网直投

相关推荐

1 11 评论
分享
牛客网
牛客企业服务