字节教育一面420

面试平台:牛客网
面试时间:60分钟
面试流程:1、计算机基础知识 2、算法编程题
像网上的帖子一样,问的广度不大,基本是常见的问题,但是问的深度比较深,基本接招两三个回合,就卒了!
在此分享一篇牛客字节跳动最全的面试宝典https://www.nowcoder.com/discuss/472389?type=post&order=time&pos=&page=0&channel=-1&source_id=search_post_nctrack

0、自我介绍

1、讲讲在地址栏输入URL后到页面加载出来都发生了什么?

听到后内心窃喜,这个我准备过,后来才知道这道题之所以高频是因为它可以将整个计算机网络的知识都穿起来,把计算机5层网络模型,tcp三次握手、滑动窗口、拥塞控制、DNS解析、https、状态码等一大串知识串起来,感觉面试官并不注重你这个题答的怎么样,而是听到你的答案后在你说的最多(可能是默认熟悉吧)的地方开始真正的提问。

2、讲讲https的原理吧

image.png
2.1说说http和https的区别

1、http是明文传输
2、http无法判断数据包的完整性
3、http不能验证通信方的身份,可能遇到伪装的服务器/客户端

2.2说说https的原理吧(大坑,我头两个小时看的,一知半解)
2.3详细阐述一下https中对称加密与非对称加密
2.4解释在最初阶段如何保证公钥与私钥在传送路上的安全性(卒)

3、谈一下get与post请求的区别

讲了一下安全性及参数长度的区别,get参数在url中,post在请求体里。

3.1在post请求体里面的数据一定安全吗?(卒)

4、谈谈cookie与session的区别

5、说一下常见的浏览访问时候的状态码

讲了200、301、403、404、500……这个问题答得还可,从代表的含义到如何取排查错误阐述的比较多,面试官没有抓着问下去,就问了一下503是什么?

6、讲一下在URL访问时提到的DNS解析的过程

dns使用的是udp协议,主要完成的任务是得到url对应的ip地址,查看顺序是浏览器缓存---本地DNS缓存/host文件---路由缓存---根域名服务器---顶级域名服务器.com---一级域名服务器baidu.com
追问:这个过程是迭代还是递归?


image.png

7、进程与线程的区别

8、什么是用户态什么是内核态

9、Linux命令统计txt中出现的某个单词(error)的个数

grep -o 'error' file | wc -l

10、外排序问题:内存是2G,有一个8G的无序文件,问如何让他有序?

答:分治,类似于归并排序,8=4+4=2+2+2+2=1+1+1+1+1+1+1+1
追问:在归并的时候,例如两个有序的2G文件是如何合并成一个4G文件的?

11、介绍一下你学过的排序算法

插入、选择、冒泡、归并、堆排序、快速排序
追问:哪些时间复杂度是nlogn的?哪些是稳定的排序算法?

12、讲一下一般怎么去优化数据库?

每次面试必问,每次都答不好,感觉也像第一题一样是个鱼饵,你只管答,你答什么我接下来就问什么。(我主要回答了索引,像让他问我索引的底层结构,结果……)

12.1什么时候要去建索引?

12.2为什么不把所有列都建立索引?

12.3什么时候数据库需要优化?

问题不难,但是没有复习,也没有想到。

image.png

二、编程题

1、数组比较问题

一眼就能出答案,但是常规解法复杂度太高,一直在想怎么降低复杂度问题
描述:输入数组a=[73,74,75,71,69,72,76,73],对于每个数组值a[i],问他后面离他最近的比他大的数间隔有多远?没有则返回0。输出res=[1,1,4,2,1,1,0,0]
答:采用递减栈来优化。
力扣链接:https://leetcode-cn.com/problems/daily-temperatures/solution/mei-ri-wen-du-by-leetcode-solution/

2、图的最短路径问题

[[0 0 0]
[1 1 0]
[1 1 0]]
上面矩阵中1代表走的通,0代表走不通,问在左上角到右下角最短的路径是多少?(4)

你可能感兴趣的:(字节教育一面420)