前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >头条三面凉经

头条三面凉经

作者头像
帅地
发布2023-09-07 08:48:31
1470
发布2023-09-07 08:48:31
举报
文章被收录于专栏:苦逼的码农

第一家撑到三面的公司,还是很开心的

1面:

1.算法题:求二叉树两节点的最长距离,搞了30分钟。。。

2.volatile修饰符的作用

答:volatile保证线程对该变量的可见性,根据JMM模型每个线程都有一块抽象私有的本地内存区域,该区域与主内存进行交互(当对volatile变量进行写的时候,会是其他线程的内存中存储该变量的值失效)

3.能不能写一个函数,由于指令重排序导致其输出的结果不是想要的

4.解释下 happen-before的规则

2面:

1.算法题:求前序遍历的递归,非递归算法

2.算法题:求一个数组中连续子数组的最大值, 如 【3,-4,1,2】,最大值为3,子数组为【1,2】

3.画出TCP的4次挥手过程,为什么需要四次,不能三次吗

答:当服务端接收到客户端的FIN数据报时,服务端可能还有需要发送的数据,因此FIN与ACK不能合并到一起发送。如果合并到一起发送,就不能确定服务器发送的数据,客户端是否接收到了。

4.解释下TIME_WAIT, 为什么取值为2MSL

答:2MSL刚好是数据报进行一个来回的时间,目的是为了确认服务端没有再次发送FIN;

5.如果服务端中存在大量的TIME_WAIT请分析下原因

答:发送在服务端主动断开连接,并发送ACK响应,进入TIME_WAIT状态,如果客户端一直在向客户端发送FIN包,服务器就会一直发送

6.说下操作系统中页面置换算法

答:先进先出,LRU,

7.说下LRU的实现思路

8.概率题:甲和乙投掷硬币,谁先投到正面谁就赢。先投的人赢的概率是多少 答案应该是2/3,通过一个等比数列可以算出

3面

1.进程与线程的区别(这个不太清楚) 答:一个进程可以有多个线程,一个线程只能属于一个进程。进程的上下文切换的代价比较大:因为进程切换时,会导致高速缓冲区失效;线程上下文切换时,只需要替换程序计数器,还有线程私有内存区就行了。

2.进程切换还需要改变什么

答:进程还需要保存打开文件的状态描述符

3.线程进行替换时,哪些东西会变

4.了解过一些中间件吗,例如负载均衡,数据库,分布式 答:不太清楚

5.了解过b树与b+树的区别吗(我需要好好梳理一下)

答:b树的非叶子节点存储索引和数据,而b+树只在叶子节点存储

6.为什么b+树需要这么做

答与磁盘的IO读取有关,balala,不需要说到了b+树类似平衡树(感觉面试官开始怼了)

7.那么二叉平衡树也可以在非叶子节点存储索引,叶子节点存储数据。两者有什么不同

答:b+树叶子节点用了链表

8.那么二叉平衡树在叶子节点加链表。两者有什么不同

答:b+树是多叉树,这样可以减少树的深度

9.了解隔离性

答只知道有四种隔离

10.算法题:将一个字符串改变其字符(假设需要将字符x变成y,则y也需要变成x),使其与另一个字符串相等 例子 字符串1:aabba -> 字符串2:eeffe //这里 字符串1a变成e,然后该字符串中如果存在e,也要把它变成a,这个返回ture

字符串1:asdf -> 字符串2:asag 返回false

11.工程题:

给你一个大的Hash文件,对其进行快照,获得该时刻文件的快照。 要求在快照过程中,还可以将数据写入该文件中,或者修改该文件中的值。

答:建立一个缓冲区,把那些要改的数据和要更新的之前数据发到缓冲区里面(估计不对)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅地玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1面:
  • 2面:
  • 3面
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档