哈啰数科一面面经
线上,面试官迟到了几分钟,整体体验好,无压力,会引导。
1.自我介绍
2.线程状态有哪些,状态之间如何转换,状态之间的关系
3.进程线程区别,进程间哪些通信方式,共享内存具体如何实现
4.HashMap的数据结构,HashMap与HashTable、HashTable与ConcurrentHashMap的区别
5.Cookie和Session的区别,具体用途有哪些
6.什么情况出现Full GC,Young GC
7.介绍Java异常类,Error,Exception,运行时异常无需捕获,try-catch-finally语句执行顺序
8.Java为什么要区分堆、栈内存区域
9.Java参数传递如何判断是值传递还是引用传递
10.ReentrantLock和synchronized的原理
11.Spring Bean生命周期,Bean线程安全吗?实际业务中如何用Bean的
12.B+树和B树的区别
13.什么是多线程上下文切换
14.限流算法介绍,控制请求的调用次数,讲了固定时间窗口、滑动时间窗口、令牌法、漏桶法
15.什么是内存泄漏、如何发现并定位,如何解决,没答好
16.设计五子棋游戏,棋盘选用什么数据结构,判断获胜的算法设计,棋盘二维数组,另外的二维数组进行落子状态维护(0未落子,1白子,2黑子),获胜判断:以水平方向为例,每次落子后,从当前落子点左右依次遍历连续相同颜色的子个数,将左右个数相加并判断是否大于等于5,要考虑越界。
17.实际用到的设计模式及场景介绍,单例、观察者、生产者消费者
18.Redis跳表结构特点