3.8一面:

1、哈希表、concurentHashMap源码,扩容机制

2、多线程死锁、解决办法

3、线程池介绍一下,核心大小怎么确定(CPU数/(1-阻塞系数)、解决线程安全

4、kafa框架了解吗

5、Redis三种缓存穿透、缓存击穿、缓存雪崩、及其解决方案、

7、Redis实现分布式锁

8、可以说一下redolog和undolog吗

9、数据库索引最左匹配原则原理清楚吗

10、自己有优化过数据库吗,索引的原则

11、说下在华为的项目

12、在华为开发的工具

13、清理白盒是一个什么思路

3.12二面 (腾讯会议,50min)

1、聊聊项目

2、nginx原理说一下

3、写一个调度器,可以用Time类去写

4、TCP三次四次、重传说一下,为什么是2MSL、

5、RTSP是在什么协议上、RTMP呢,区别

6、聊聊nacos吧有用过吗

7、看过啥源码,AOP

8、说一下AOP底层实现

9、协程说一下

10、算法:树的dfs、bfs写一下,树的最小深度

3.16三面(sdc、类似牛客网面试,视频+手写白板代码)

应该是leader的leader,就写了一个题

int calculate(string s)

calculate(“20-50/4*3+20/2+10”)

leetcode227(原题)

贴一下渣渣代码

class Solution {
public int calculate(String s) {
int n = s.length();
int res = 0;
Stack<Integer> stack = new Stack<>();
char Operation = '+';
int num = 0;
int i = 0;
while(i < n) {
if(s.charAt(i) == ' ' && i != n - 1) {
i++;
continue;
}
if(s.charAt(i) >= '0' && s.charAt(i) <= '9') {
while(i < n && s.charAt(i) >= '0' && s.charAt(i) <= '9') {
num = num * 10 + s.charAt(i) - '0';
i++;
}
}
if( i == n || (i < n && (s.charAt(i) == '+' || s.charAt(i) == '-' || s.charAt(i) == '' || s.charAt(i) == '/'
|| i == n -1 ))) {
switch(Operation) {
case '+' :
stack.push(num);
break;
case '-' :
stack.push(-num);
break;
case '' ://加入Java开发交流君样:756584822一起吹水聊天
stack.push(stack.pop()*num);
break;
case '/' :
stack.push(stack.pop()/num);
break;
}
if(i < n) Operation = s.charAt(i);
i++;
num = 0;
}
}
while(!stack.isEmpty()) {
res += stack.pop();
}
return res;
}
}

3.17 hr面

1、讲一下自己的项目,亮点以及挑战

2、想不想来深圳

3、实习的时候都做了什么

4、对腾讯对看法

5、目前投了哪些公司

6、父母亲职业

7、读博or工作

3.17云证

3.19oc

3.22offer

最后,祝大家早日学有所成,拿到满意offer