字节后端开发一面记录
一面
- 自我介绍
- 介绍项目
- 项目压测过没有,通过压测发现了系统瓶颈在哪里(这个确实没思考过)
- 进程与线程的区别(面试官让我尽可能多说)
- 多线程哪些内存是共享的,哪些不是共享的?(没答出来,现在想来应该就是问java内存模型,堆和方法区就是共享的,虚拟机栈,本地方法栈,程序计数器就是非共享的,当时不知道再想啥)
- 线程的地址空间什么的?(我太菜了,都没听过)
- 一个线程能访问到另一个线程的局部变量吗?
- 进程切换与线程切换哪个代价比较大?为什么(不会,后面学一下)
- 操作系统的内存管理(我说我操作系统不太懂)
- 一个对象在内存中的存放位置?字符串呢?
- LRU算法的实现,口述
- 常用排序算法及时间复杂度
- 如果一个超大文件有10亿行数据,每行一个整数,内存放不下,怎么排序?不能只答归并排序,要落实到代码应该怎么写(思考了一会,没想出来,后面学一下)
- 计算机网络常规知识...
- 说一下数据库事务的事务
- 分别讲一下ACID是什么意思(发现我对一致性了解不深,没有搞懂一致性的概念)
- 怎么保证持久性的?(感觉没回答好)
- 写了redo log,但事务还没提交,突然系统崩溃了会怎么样?(也没回答好)
- 给一个数组,用最快的排序算法,进行排序
我答那就是快排了,他说有更快的吗?针对这个场景,有更快的吗?
我又提了一基数排序,但好像不适用,面试官就说那就用你觉得最快的写吧
然后,啪啦啪啦... - 反问,因为我晓得我答得太烂了,就跟面试官说我这是第一次面试,发挥的不是很好,面试官说不要因为某个问题打得好或者不好,就觉得怎么怎么样,我们都是整体来看的。
关于java的一点没问,在问LRU算法的时候,我说Map里面放双向链表的节点,他问放的是节点,还是节点的引用,给我整蒙了,java里面除了基本类型其他应该都是引用,但当时头脑空白,在想怎么才能放节点而不是节点的引用,没想出来,就回答的应该放的是引用,感觉很多问题回答的都不是很确定,以为已经凉了,过了几分钟,HR打来电话预约二面时间。
后面加油,希望能继续写二面三面面经
#字节跳动秋招提前批##面经##字节跳动##Java工程师##校招#