【深信服】-Java岗-24届秋招面经
一面
手撕:数组子序列最大和、LRU算法
1.实习期间做了什么?负责的是哪些工作?
2.JVM中哪些对象会被标记为垃圾?什么时候会被回收?(强,软,弱,虚引用八股)
3.JVM内存模型中,在为对象开辟内存时,做了哪些优化?
4.Redis中缓存穿透、击穿、雪崩怎么解决?
5.你项目中哪些信息是存在redis中的?
6.你对区块链的了解有多少(简历上有区块链相关项目,sangfor也是网络安全相关,可能比较感兴趣)?
7.反问:技术栈,语言(回答:语言是工具,看业务场景选择)
二面(研发负责人)
1.为什么从GO转到Java,除开就业面的问题,Go和Java的区别是什么?这两种语言分别有什么优势和劣势?
2.你项目中的一个比较难的功能点是什么?(提到了某个功能涉及服务远程调用openfeign、ES、MQ)?
3.ES底层原理
4.openfeign具体在代码层面是怎么使用的?
5.你的系统是可以允许MQ的异步响应吗,是允许短暂不一致的吗?CP还是AP?
6.你的项目做过测试吗,QPS测过吗?(没有,可以用skywalking)
7.skywalking对代码有侵入性吗?
8.如果不用skywalking,我如何来测试代码的接口响应时间(AOP开日志)?
9.日志都需要持久化到DB吗,如果我有五万个请求,都需要到DB上持久化吗?(如果在测试情况下,可以不全持久化到DB,而使用countdownlaunch等所有执行完毕后,统计所有的接口执行时间进行加和平均,加和平均的响应时间也是具有参考意义的)
10.Redis缓存雪崩具体讲讲,如何解决(集群,限流,线程池拒绝策略)
11.你在学习一个新的技术的时候,你会怎么做?
12.如果要设计一个全球的通用金融系统,要防止量化交易中类似的汇率差问题,你会怎么设计?(有量化交易项目,提到了金融相关)
13.如果要把你的Java项目更换成Go语言,需要更换哪些技术栈。
HR面
1.自我介绍
2.优点与缺点,并举例说明。
3.讲一下你为自己设定的某个目标,并为这个目标做了哪些事.
4.家庭情况,情感情况
5.你对转语言的看法
6.手上有几个offer
7.你对工作的标准是什么(薪资、职业发展、城市)等等
8.如果你拥有好几个offer中进行排序(你会以什么标准来排序)