笔试
时间:3月28号下午三点, 总共60分钟
6道选择题+三道算法题,没记错应该前两道都ac了,第三道只对了10%
周一下午加了hr的微信,因为个人原因推到了周四面试
周四面试当天面试官有事,又推到了周五。。。
一面
时间:4月2号早上11点,总共60分钟
微信面试
一.自我介绍与项目
挑选了其中一个项目去讲
1.如何进行身份验证
2.注销时如何使身份无效化
3.通用权限系统的设计
4.为什么不用cookie表示状态
二.Java
1.HashMap
包括实现流程、并发安全等
并发安全问了一个:仅仅只是修改数据导致不一致吗?我回答了一个:有可能会导致扩容出现问题,以及死循环
2.concurrentHashMap
1.7和1.8的实现方式,1.8提到了CAS和加锁
3.volatile
重点讲了内存屏障和lock前缀
4.CAS
4.1 如何实现的
4.2 CAS的缺点和可能存在的问题
ABA问题、自旋对CPU开支高
5.Lock与AQS
AQS的流程
感觉这里太亏了,就大致介绍了插入、等待和释放的流程,本想让面试官具体深入,结果面试官直接跳过了
三.操作系统
只记得一个,好像还有别的,都是很基础的问题
1.进程的通信方式
四.数据库
1.为什么数据库里用B+树
与红黑树、二叉平衡树比较,然后跟B树比较
五.Redis
1.有什么可以使用的对象类型
string、list、set、hash、zset
2.每一个对象用什么实现的
六.其他
1.是否使用过其他框架
项目经验有限,没有。。。
2.大文件读取到2G内存里,如何查找其中一个数据
本场面试唯一完全说不出来的地方。。。
3.Spring框架的特性
讲到了DI,IOC,AOP
AOP用什么实现的,答了一个动态代理+cglib字节码增强
七.算法
题目:最长不重复子串
写完以后面试官给了几个case,要我分析是否成立
面试完以后才发现其实有bug,只是面试官给的case都没发现这个bug
八.反问与感受
1.本次面试哪里还有改善空间
面试官回答的也有点玄乎,大概也是说项目经验+框架使用等内容
2.什么时候出结果
三个工作日内
3.感受
感觉有点不如意吧,本来自己花了很多心思去看并发的,结果没怎么问到
结果当天下午hr就邀我二面了。。。选在了4月8号二面
二面
时间:4月8号二面早上10:30, 整场面试花了 50mins
微信面试
一.自我介绍与项目
跟一面类似
问了的问题也是Token相关的:
- JWT的加密流程
- Token放在前端哪里
- Token与cookie相比有什么好处
这里我解释了很久,但面试官不是很满意,认为我对Token的理解还不深入。。。
二.JVM
1.JVM的内存区域
五大部分,每个部分的作用和细节
2.JVM的判断对象算法
引用计数器、可达性分析算法
3.JVM的GC算法
三种,每一种的好处
4.JVM的堆内存分代机制
新生代的Eden、Surivior区,老生代的分区,某个GC算法适合哪一个代的区
三.Java并发
问我懂哪些,我大概说了几个,然后面试官让我谈谈synchronized
大概就是用法、原理(对象头的Mark Word、锁升级机制)
四.算法
求两个节点的公共祖先,没有写代码,叫我写思路
我的思路不太好,面试官认为应该可以做出来,但是可以进一步改善
五.反问与感想
1.反问
大概问了面试的表现,以及啥时候出结果
2.感想
没想到的是面试官会对我的项目追问的比较深入,而且算法题做得也不好,感觉凉了一半。。。还好面试官说我JVM和Java说的还不错
HR沟通
还以为要很久才等到结果,没想到第二周周一hr就跟我说过了。。。算是OC了吧,然后进行了HR沟通,介绍了福利、工作环境、业务这些东西。
感谢跟谁学的认可!
全部评论
(2) 回帖