字节客户端一面,二面,三面,四面面经。
本来投的算法,熟悉的就是机器学习深度学习,但是三面挂了转到了客户端.
7月26一面,7月29二面,三面.(刚刚接到通知,加面一面..........无语了)
更新加面的内容:
问了一些基础性的问题,基本都是之前问过的,但是会往深问,无奈我只是学习了相关理论,并没有做过相关的项目,所以很多知识都是表面知道,再往深了挖就不知道了,面试官也这么说。专业知识的问题的话,就是下面那三面之中的,没问什么别的知识了。然后问了你自己是怎么学习一项新知识的,你认为你遇到的最大的困难是什么,有什么爱好,在学习中是那种看着不太学但是成绩很好的那种人,还是平时就很用功的那种人。还有一些生活上的小问题吧,记不清楚了。还做了两个题。
1.判断一个括号字符串是否是有效的括号组合。我写了用栈来做的代码,然后他说不借助额外空间怎么做。我说了一下思路,他说不用写代码了。
2.两个链表,一个生序,一个降序,合并以后变成升序。说了先反转一个链表,然后在合并两个链表。
两个题基本都是不到一分钟就写出来了,面试官还夸我写的快,问我leetcode刷了多少题了。😂😂😂😂
一面二面三面主要问了操作系统,计算机网络,c++相关知识.
基础很重要,基础很重要,基础很重要(说三遍)
心得感受:问的基本都是基础知识,只要基础牢固.百分之80都能回答上来,在加上一点自己的理解,就没问题了.
汇总一下发出来吧:
计算机网路相关
1.http和https的区别,对称加密和非对称加密.https怎么实现加密.https如果被拦截,怎么得到明文,对称加密非对称加密公钥和私钥.
2.tcp的拥塞控制机制
3.三次握手以及为什么三次握手(我是从确认客户端和服务器双方的接收发送两个功能来回答的,面试官挺满意)
4.http用户的登陆过程,以及如何确定这个用户是登录状态
5.问了udp的使用场景,牛客网面试是用的tcp还是udp,怎么检测你一直在线的?
6.udp可不可以实现安全传输,在应用层上面做一些手脚(这个我不会,乱答的,说不可以)
7.get和post的区别
8.介绍http2.0(不知道2.0,就说了一下1.0 1.1 http https)
9.请求一个网页,请求不到,可能有哪几种情况,如何排查?
10.浏览器输入URL之后的过程
11.五层网络模型
12.介绍DNS
(还有几个比较难的问题我没回答上来的,记不清楚了)
操作系统相关
1.介绍内存碎片,堆区分配内存的话,产生的是内部碎片还是外部碎片
2.介绍分段和分页相关
3.介绍虚拟内存,虚拟内存到底是什么,怎么在虚拟内存和实际内存之间进行交换的.(我说了手动覆盖和自动交换技术,虚拟内存是在这两个上面发展而来的,这一块面试官问的很深,我不太了解,回答的不好)
4.页置换算法
5.进程与线程的区别.进程调度算法
6.死锁的特征以及如何避免死锁
c++相关
1.c++的智能指针介绍一下.说了四种智能指针.最后一种weak-ptr我说是用来解决shared-ptr的循环引用问题的,然后面试官一直在问weak-ptr有没有记数操作,怎么就可以解决循环引用了?(基础不牢固,这块没答上来,不太理解)
2.说一下内存四区模型
3.引用和指针的区别,sizeof两个,结果是什么
4.野指针,内存泄漏介绍
一面和二面主要是计算机网络和操作系统,三面问了c++,虽然三面问的c++知识点不多,但是每一个知识点都挖得很深,问到你不会为之
三面还问了一个概率题,三门问题,百度搜一下就找到了
三面手撕代码题
1.判断一棵树是不是平衡二叉树
2.两个树节点的最近公共父节点
3.从后序和中序重构二叉树.