自我介绍一下:
本科双非,研究生211,除了学校的课程设计和两个毕设几乎什么其他的项目都没做过,自认不是技术大牛,普通的一名研究生
(由于面试过很多次,前面两面就不分开写了,写一些我记得的问到的知识点,第三面单独给个排面,把感觉和前两面不一样的地方写出来)
一面、二面:
1、进程、线程相关(区别、如何传递消息、还会涉及到jvm内存的五个模块)
2、线程同步、锁相关(可能会问一些比较细节的东西,要知道一些原理方面的知识,有源码基础会好一些)
3、集合(线程安全的集合有哪些、是怎么实现的、hashmap的实现的原理、还有被问到Arraylist的扩容、linkedlist底层是怎么实现的、还有concurrenthashmap是怎么保证同步的)
4、多态的实现原理(不是动态代理,是动态绑定,是使用了方法表这个数据结构,从子类开始查找,逐渐往上查找,直到找到位置。先找到哪个就执行哪个)
5、String的底层是怎么实现的(个人感觉是想听到final数字吧)
6、虚拟内存(我不记得哪里问了,但面试官说问了,可能是我太菜了吧,没听懂问题)
7、http与https的区别、https加密方式
8、网络的模型(OSI和TCP/IP的联系)
9、发送www.baidu.com会有哪些操作,使用哪些协议
10、tcp和udp的区别,tcp怎么保证可靠性的(相关的协议、算法,为什么三次握手、四次挥手都有提到)
11、DNS协议是怎么实现的用到了什么协议(这个我是一脸懵逼,就说DNS底层实现是UDP其他的我也就不清楚了)
12、数据库索引结构、事物以及事物的隔离性
13、了解的设计模式(单例模式的双重校验锁并且会问为什么会有volatile、为什么会有两个判空、不加volatile行不行)
14、内核态和用户态的区别
15、中断了解多少(上面有提到中断)
16、IO、socket都会问到
三面:(虽然参加过很多次面试,但只有两次三面,所以不多)
1、会问项目(我个人说的是毕设,然后会根据你说的项目的某个点一直问,问到你不会或者没啥问的了为止)
2、数据库设计:实现一个二级评论的功能,可以根据时间和热度进行不同的显示
3、并查集的考查
4、会问一些怎么去学习呀、遇到什么难题怎么解决之类的问题
(感觉三面更看重的是项目相关的一些东西,从中会体现出学习能力、学习方法之类的东西,也会问一些数据库系统设计相关的题目)
手撕代码:(时间太长记得不多,就是多刷了几遍《剑指offer》和牛客上的高频题,leetcode有时间也可以刷一刷)
1、实现大数的求和
2、实现线程安全的单例模式
3、找出有序数组中两个数的和
4、将空格替换成%20之类的
这一圈面试下来,就是觉得首先得把计算机的基础知识(计算机网络、操作系统、数据库、设计模式、Java基础(我个人是java方向)、多线程、算法)都要尽可能多尽可能深的了解,不然很容易被问住
我的面试有的是三面连着一天就完成了,有的是三面都是分开的,所以不连着不一定就是挂了,有可能是面试官时间上安排冲突,面试官的态度都很好,也很专业,HR也特别的棒,字节的反馈也是很快的,从面试到offer也就一周半的时间
期间收到过很多封感谢信,感谢自己没有放弃,也感谢字节不嫌弃,可以让我一直有被捞、面试的机会,感谢牛客这个平台,给了我很大的帮助
最后,祝大家都拿到称心如意的offer,也祝大家前程似锦
全部评论
(19) 回帖