参加提前批,结果错过了提前批第一次笔试,在第二次提前批笔试的时候被告知:提前批已结束,自动转入正式批。于是参加正式批,被告知是否接受转岗(IOS| WEB),接受。
面试开始,历时70min左右:
面试官做了自我介绍
1.介绍学习经历
2.JVM内存区域划分
3.GC算法
4.老年代的GC策略
5.Java类加载过程
6.校验阶段具体怎么校验
7.为什么要分七层模型
8.七层模型具体内容
9.你刚提到了IPv4、IPv6讲讲区别
10.TCP、UDP优缺点、差别
11.TCP三次握手
12.TCP拥塞控制
13.HTTP、HTTPS联系区别
14.HTTPS的加密过程
15.HTTPS用的是对称加密还是非对称加密
16.非对称加密了解吗
17.线程和进程的区别和联系
18.进程的通信
19.多线程的线程安全
20 synchronized的底层原理
21.讲讲重量锁
22.知道哪些重量锁
23.MYSQL索引机制的数据结构
24.我们来看看代码能力
[]{}()括号匹配问题:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
String str = sc.nextLine();
if(str.length() % 2 != 0) {
System.out.println(false);
}else {
Stack<Character> st = new Stack<>();
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i) == '[' ||
str.charAt(i) == '{' ||
str.charAt(i) == '(' ) {
st.push(str.charAt(i));
}else {
if(str.charAt(i) == ']' && st.peek() == '[') {
st.pop();
}
if(str.charAt(i) == '}' && st.peek() == '{') {
st.pop();
}
if(str.charAt(i) == ')' && st.peek() == '(') {
st.pop();
}
}
}
if(st.isEmpty()) {
System.out.println(true);
}else {
System.out.println(false);
}
}
}
}
}
25.讲代码
26.m*n从左上角走到右下角,只允许往右或者往下走,求最小和
27.讲代码
28.空间复杂度可以优化吗
29.依然是m*n,但是变为问走法,考察思路
30.写一下二叉树的层序遍历
31.讲代码
32.为什么用了LinkedList
33.为什么学习编程
34.有offer吗
35.你有什么想问我的
二面(40min 9.4)
1.你觉得你在一面时不足之处
2.对于转岗的看法
3.写代码
4.说说array list set的区别
5.发生哈希冲突怎么办
6.美团有成千上万家店铺,当用户浏览这些店铺时,为了给用户良好的用户体验,尽可能的给用户呈现出良好的用户体验,所以尽可能的选取比较均匀的点
7.你有什么要问我的吗