一面
。。。忘了
也是java基础吧,聊半小时左右吧
二面
1. java项目相关的有吗?没有,那就聊聊java基础的吧
2. 并发包相关的用过啥(懵了,说了点线程创建的)
3. 线程池
4. Threadlocal,成员变量属于谁?(答主线程。。面试官比较好引导下,属于每个线程,毕竟线程局部变量)
5. ConcurrentHashMap为啥线程安全,底层结构(先说了HashMap的,顺嘴说了句jdk1.8转红黑树)
6. 红黑树查询时间复杂度(普通二叉树O(logn),红黑树是特殊二叉树,有一些性质,查询效率应该也是O(logn)??不记得的)
7. 那说下红黑树的性质吧(要不是视频都要抽自己了,就记得有四个性质,说不上来,基础好久没看了)
8. 场景题:单元测试,要求1:4个测试线程同时启动;要求2:4个结束后对共享变量进行检测,提示我可以用并发包(我刚才都没想到有啥,这咋搞)。刚开始是懵的,说用刚才的Threadlocal设置变量,因为线程隔离能对比验证,面试官纠正只关注线程的,,然后就有想法了,要求1同时启动就start后wait下,等都start后再notifyall,OK,过了;要求2真想问的其实是同时结束怎么知道,那就设flag变量呗,再进行检测,那设几个呢,1个(抽死自己),那其他的还没结束咋办,哦是啊,那四个吧,OK,能解决问题,但四份修改代码不是最优的(朋友说用join合并线程呀,,,)
9. TCP的滑动窗口(真的是步步给自己挖坑)
10. TCP拥塞控制(问问题都包装了下,没那么直白)
11. TCP拆包与粘包
12. 算法:20G数据,有大数有小数,不超过long,怎么去除top100(思路被局限,直接容量100的小顶堆不就好了。。。当时可能冻傻了吧;第一种一次性处理小顶堆,第二种分小文件构建小顶堆,然后用赛马思想依次取,真特么麻烦,解释都解释不好,估计面试官该说这小伙子沟通不行啊,最后让我解释了小顶堆的插入新元素的过程,也基本打上来了,这不就在暗示我直接更新小顶堆不就好了,,,
刚开始约定时间被鸽了,又约新的房间,没等进去面试官有事处理就再等等,也是面试坎坷,好久不看基础,真的忘不少,最后也没让我问问题,估计没有了吧,说结束后我又强加一句,说真的基础还是有点不太扎实呀,面试官安慰我说没事,大家都一样,小哥哥很nice了,声音也还不错,没给视频,我自己开摄像头怪怪的。。。二面有些坎坷但整体面试官给的体验不错,一直在引导我,就是恨自己。。。知识还是要常常回顾啊
全部评论
(8) 回帖