用户工具

站点工具


start3

TCP 三次握手,四次分手

三次握手,四次分手:确保双工的链路都断开

hashmap

  数组拉链。resize    

原理,冲突解决办法,拉链,红黑树

 如果插入的key的hashcode相同,那么这些key也会被定位到Node数组的同一个格子里。如果同一个格子里的key不超过8个,使用链表结构存储。如果超过了8个,那么会调用treeifyBin函数,将链表转换为红黑树。

4、hashmap线程安全吗? 看过但是忘了,只好笼统的说加锁,面试官想听更详细、性能更好的,提醒我可以看看java的相关库 其实整个hashmap加锁就是java的hashtable,concurrenthashmap则是分段加锁

5、数据库了解吗(了解一些),说说二级索引 emm,二级索引从来没听说过(其实就是非聚簇索引的别名),只好问面试官是不是组合索引,面试官说不是

################ 1.相比于叶子节点中存储行指针,二级索引存储主键值会占用更多的空间,那为什么要这样设计呢?   InnoDB在移动行时,无需维护二级索引,因为叶子节点中存储的是主键值,而不是指针。 2.那么InnoDB有了聚簇索引,为什么还要有二级索引呢?   聚簇索引的叶子节点存储了一行完整的数据,而二级索引只存储了主键值,相比于聚簇索引,占用的空间要少。当我们需要为表建立多个索引时,如果都是聚簇索引,那将占用大量内存空间,所以InnoDB中主键所建立的是聚簇索引,而唯一索引、普通索引、前缀索引等都是二级索引。

################# 聚簇索引(主键索引):索引数据和存储数据都在同一颗树上,比如根据id查找,只要找到该主键就找到数据了。 二级索引(辅助索引):比如根据name查找某个商品,就会先找到这个商品对应的主键id,然后根据id再去查找该商品。

6、那好吧,问你组合索引,举个例子,ABC索引,某语句用了AC,实际哪个有用哪个没用,为什么 A有用,C没用,因为数据库表格对于索引是按顺序主次排列的(当时没答出来,后来才想到)

7、说说事务隔离级别 常规题,数据库讲过

8、撕个代码放松下,链表反转 嗯这个题其实是很简单的,但是第一次视频面试,所以操作完全变形,说思路说的很乱面试官没听明白,然后写代码指针搞了一堆错,调了5分钟也没调出来,面试官说算了这题算了,博主这时候已经很绝望了

9、继续撕,开根号 二分法,所幸注意到了输入判断。一面的代码题真的不难,但是一定要注意调整心态。

10、例行反问

一面完博主大脑一片空白,半天反应出来三个字:我凉了。一是因为表现确实辣眼睛,二是听说头条一般三面连在一起,一面结束时没通知二面就凉了。

回到宿舍发现室友科目二也挂了,心情安慰了少许、、

二面: 3.29 15:30 第二天下午,已经快忘了这事的时候,头条的hr又打电话给我了:“面试官还想和你聊聊,明天有空么?”我差点就跪下了:放过我吧我再也不想视频面试了。当然,hr姐姐清甜的声音让我不忍拒绝,于是又接受了面试。

二面的面试官可以用儒雅随和形容,说话有点港台风格?反正就是很温柔,加上我已经不抱希望,瞬间就不紧张了

1、自我介绍

2、数据库了解吗,说说事务的概念,事务的隔离级别,sql中事务怎么写 这些还是比较常规的,不过事务的语句没听懂是问啥,后来才知道就是指的就是begin…commit…

3、说说STL,你知道哪些STL,打在代码板上 就打了比赛常用的list,vector,map,set,queue,stack之类

4、那你讲讲map吧 (一面后刚学习了一下线程安全的map,都讲了)

(这里问了几个计网问题,记不清了)

5、了解c++11新特性吗 这个真没了解、、

6、撕个代码吧,给个字符串例如ABCD,输出全排列 先讲讲思路,直接dfs实现,要输出就用一个ptr模拟一个vector 博主主要比较怕二分这种,大概是因为C++课讲二分时的一些误导,对于递归还是比较拿手的,于是5分钟左右写好 除了没加cstring编译报了个错,其他一遍过

7、嗯,这样就输出全排列了,对了,刚刚你加了个头文件叫bits,这个是啥 这个属于acm的奇技淫巧,就是把所有C++标准库都加上

8、再来撕一道,给出一个寄存器和两种操作,问到达某个值的最少次数(原题是用字符串表述的,比较难懂,转化一下) 凭借打比赛的直觉我问面试官是不是有数学解法,面试官想了想说是有的,你可以先用常规解法 深搜,返回值比较大小,一遍过,和面试官又讨论了一下一些小的优化

9、那你想想有没有数学解呢,比如你看,4的结果是2,7是一个奇数,结果是6 因为已经有代码了,所以输入几个特殊值看看,想了一会立马想出这个跟质因数有关(博主虽然ACM有大佬带躺,但数论学的还可以)

和面试官讨论了下,觉得可行,面试官又给出一些小的提示,然后让我尝试实现,有个小地方写错了,时间也快到了,面试官就让我先不用写了。

10、例行反问

二面完的感受就是:天哪怎么有这么温柔的小哥哥啊,我一定要和他做同事

三面: 3.29:17:00 20分钟后就打了个电话来,问有没有空三面,博主已经抑制不住内心的激动了,但是还是尽可能让自己冷静下来,毕竟牛客网上一堆三面凉经,说不定下一个就是我

三面一看就是个部门大佬,技术专家那种,年龄也比较大

1、自我介绍

2、说说项目 (大佬对我讲的环签名挺有兴趣,我就详细的讲了很多,大佬还问了一些不安全情况的解决办法)

3、挑战性的事? 讲ACM,不是计算机院,高中没学过oi,一年怎么一路熬过来(泪目)

大佬听完问,你觉得因为没学过oi这个就是最困难的》?

当然不是,又讲什么关键在于耐住寂寞,坚持不懈,不畏艰难,灌鸡汤(泪目,不知道为啥此时想起濒临挂科的模电)

大佬觉得有点人生经验,“那挺好”

4、没拿到银牌有你的责任吗? emm,当时要不是我签到题莽了一发,可能就银牌了,毕竟只差几分钟罚时啊啊啊(泪目) 大佬对我说的“莽了一发”比较感兴趣(好奇怪的关注点),问我这是啥意思,我立马解释:就是搏一搏,单车变摩托的意思

5、能实习多久?

6、你会写Go语言(我一想,糟了,头条后端很多用Go语言写,大佬一定很有造诣,而我只是拿Go写过一点文件操作密码运算),那你说说Go语言的method输入时pointer还是变量值 这个我是真不会,但是因为Go上看的代码还比较多,就凭印象说了个pointer,大佬问为什么,emm

7、说说数据库范式 1NF,2NF,3NF,当时学数据库理解过,可惜2NF我忘了

8、为什么要规定范式 去冗余,然后在大佬的提示下又说了个维护一致性

9、说说https 证书,对称加密,非对称加密,整个流程说一遍,因为对密码学比较熟说的还可以。

10、例行反问

3.31 offer,博主一直比较喜欢字节跳动(可能名字很Q?),加上不想再让过多面试影响生活节奏,直接接收。

博主总结了一下,感觉面试比较重要的几点(因为博主目前没挂过面试,所以可能比较肤浅): 1、要有思考的过程,有的同学刷leetcode较多,面试官问个问题立马说出一个很巧妙的思路,给人的感觉是你背的题多,比如《剑指offer》那个逆序对用归并排序做我感觉就很邪门。

其实题型就那么多,面试官要看你分析的能力,你要循序渐进的说说不同方法的好处、坏处、时间复杂度、空间复杂度,和面试官讨论可以优化的点,面试官也会乐于给你一些提示,要让人感到你很geek,而不是来投机的,但是总归怎么说呢,相由心生。

2、项目多说一点,就会少问你一些比较偏的知识,所以有一些ACM,项目还是很好的。 客户端发起 SSL 握手消息给服务端要求连接。 服务端将证书发送给客户端。 客户端检查服务端证书,确认是否由自己信任的证书签发机构签发。 如果不是,将是否继续通讯的决定权交给用户选择 ( 注意,这里将是一个安全缺陷 )。如果检查无误或者用户选择继续,则客户端认可服务端的身份。 服务端要求客户端发送证书,并检查是否通过验证。失败则关闭连接,认证成功则从客户端证书中获得客户端的公钥,一般为1024位或者 2048位。到此,服务器客户端双方的身份认证结束,双方确保身份都是真实可靠的。 原文链接:https://blog.csdn.net/qq_38200023/article/details/88957912

start3.txt · 最后更改: 2022/05/10 18:09 (外部编辑)