腾讯Java实习面经(已offer)
关注回复“1”,即可获取上千篇面经集合pdf
面经内容
1、哈希表、concurentHashMap源码,扩容机制
2、多线程死锁、解决办法
3、线程池介绍一下,核心大小怎么确定(CPU数/(1-阻塞系数)、解决线程安全
4、kafa框架了解吗
5、Redis三种缓存穿透、缓存击穿、缓存雪崩、及其解决方案、
7、Redis实现分布式锁
8、可以说一下redolog和undolog吗
9、数据库索引最左匹配原则原理清楚吗
10、自己有优化过数据库吗,索引的原则
11、说下在华为的项目
12、在华为开发的工具
13、清理白盒是一个什么思路
【二面】(腾讯会议,50min)
1、聊聊项目
2、nginx原理说一下
3、写一个调度器,可以用Time类去写
4、TCP三次四次、重传说一下,为什么是2MSL、
5、RTSP是在什么协议上、RTMP呢,区别
6、聊聊nacos吧有用过吗
7、看过啥源码,AOP
8、说一下AOP底层实现
9、协程说一下
10、算法:树的dfs、bfs写一下,树的最小深度
【三面】(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 '*' :
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;
}
}
【HR面】
1、讲一下自己的项目,亮点以及挑战
2、想不想来深圳
3、实习的时候都做了什么
4、对腾讯对看法
5、目前投了哪些公司
6、父母亲职业
7、读博or工作