字节跳动面经

今天下午面试,连续三面,每面之间隔两分钟,面试官判断是否继续,我手撕代码分几面说吧,然后其他的内容的话,直接分块说一下自己所回忆的。
手撕代码:
一面:括号匹配算法;统计一个日志文件(里面存放的是id,每访问一次会有一行id)前10个出现的id;OK,继续优化,如果这个日志文件很大,那我们内存放不下,放在外存你会怎么做(先分块,再把id相同的映射到同一个块,hash,或者取模可以做到,面试官提示的);
二面:最长不重复子串(双指针就可以了,这里我比较蠢,用了一个set,不过也可以解出来);机器人走路算法(DFS+标记算法,可以写伪代码解释,我写了代码,但面试官说回溯有点标记问题),左上角走到右下角,求可能的路径中和最小的那个值;
三面:也不说什么了,既然操作系统页面置换算法又LRU,那么我们手撕一个LRU算法吧(Java内部LinkedHashMap实现了,但是如果用,就0分,面试官说的,手动模拟LRU,这个建议大家好好写一下吧,我实验室朋友前面面的另外一个部门也有手撕):需要一个put和get方法,具体的是需要HashMap和双链表去实现的,感兴趣的可以看看LeetCode有原题(在面试官的指导下完成,之前写的有些忘记了)。
面试内容:
数据库:四种隔离级别;三种问题(脏读,不可重复度,幻读的问题);如果不用串行化,如何解决三种存在的问题(不用串行化,如何保持高的效率,也不会出现问题);MySQL有哪些索引,介绍一下B+树具体的结构;聚集索引和非聚集索引;用过哪些数据库。
操作系统:内存,外存,虚拟内存,Cache的作用以及相关的原理(自述);缺页中断有哪些算法;同样的问题,外部有个大文件,内存放不下,我们应该如何处理(答了分块,多线程mmap);mmap如何进行内存映射的;说一下栈和堆吧,栈的效率会比较高,那么栈和堆有哪些用处和区别(首先答了多线程共享资源问题,从Java角度解释,多线程每个线程维护自己的栈,但堆是共享,会出现资源争夺的问题。其次从资源回收角度介绍了一下, 堆中的对象需要我们手动释放或者JVM回收,栈中的数据通常伴随着方***压栈或者弹出,从两个角度介绍)。
计算机网络:打开一个URL经过哪些流程,顺带说一下协议;HTTP的无状态是什么意思;TCP和UDP的区别是什么,是什么导致了TCP效率比较慢;拥塞避免具体的四个过程,每个过程如何实现的。
Java相关:Spring框架中,说一下IOC和AOP吧;线程池说一下实现原理;说一下你了解的Java中的map的线程安全问题(HashMap, HashTable, ConcurrentHashMap,说一下底层原理);什么时候会发生垃圾回收;Volatile的原理;还有一些自己项目相关的问题就不说了。
大概就问了这些问题,总而言之,字节跳动的考察还是比较全面的,等通知,诸君共勉吧。

全部评论
这是采集一个大佬的面经 想自己记录出来 第一次用博客 不知道怎么操作 本想收藏起来自己做个笔记 时间久了 我也忘记是哪位大佬了 感谢大佬的分享
点赞 回复 分享
发布于 2020-10-09 23:11
请问机器人走路算法具体是什么呢, 没看太懂
点赞 回复 分享
发布于 2020-07-10 11:50
请问大佬面的是北京后端吗
点赞 回复 分享
发布于 2020-07-06 11:02

相关推荐

07-11 15:12
门头沟学院 Java
别人在上班,我就在工位上看看视频啥的,这正常吗?
程序员小白条:实习就是摸鱼,只是公司指标,把你进来了,可能那时候客户很多,但等你进来的时候,已经是淡季了,根本没多少需求,或者说根本不适合实习生去完成,因此你就每天干坐着就行,可能1,2个月都没需求
实习生的蛐蛐区
点赞 评论 收藏
分享
07-11 11:10
门头沟学院 Java
请问各位大三兄弟们跟hr说多久实习时间到时候可以提前跑路吗?
程序员小白条:问就是六个月以上,可以一年,实习都这样,你入职后想跑就跑
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
27
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务