一面:
1.jdk和jre的区别,jdk具体比jre多了什么
2.Java操作字符串的类,他们之间的区别
3.抽象类和接口的区别
4.final关键字
5.线程和进程的区别
6.ThreadLocal作用,问题,怎么使用
7.设计模式
8.微服务的技术栈知道哪些
9.服务降级和熔断的区别
10.Redis支持的数据类型
11.什么是缓存穿透
12.写sql的时候注意哪些
13.索引的优缺点
14.做的最成功的的事情但是别人却不满意
15.最不熟悉哪些技术的哪些方面的应用,自己为此做了哪些努力
16.复盘机考(对着代码一步一步复盘)
17.手撕穿过最少搬砖的线条,输入一个List<List<int>>代表每一层的每一个的搬砖长度,如果穿过的是两个搬砖中间的缝隙,则不算穿过该搬砖,不计算边界(边界处穿过的数量恒为0)
用例:
1,2,2,1
3,1,2
1,3,1,1
2,4
3,1,2
输出2
二面
1.高并发接口的设计,具体讲一下
2.有没有上线的项目
3.平时的学习方式
4.有没有计算机专业相关的课程
5.浏览器输入url发生什么,用到了哪些协议
6.ARP协议是什么
7.各种排序算法,稳定性和时间复杂度以及基本的思想
8.顺序存储和链式存储的区别
9.树的遍历算法有哪些
10.完全二叉树,忽略其叶子节点,输出其后序遍历
public void getTree(int[] arr,int i) {
if(i>=arr.length)return;
if(!hasLeft(arr,i-1)||!hasRight(arr,i-1))return;
getTree(arr,2*i);
getTree(arr,2*i+1);
System.out.println(arr[i-1]);
}
private boolean hasLeft(int[] arr,int i) {
int n=arr.length;
return 2 * i < n;
}
private boolean hasRight(int[] arr,int i) {
int n=arr.length;
return 2 * i+1 < n;
}