字节跳动教育部prek客户端实习生二面(2021524)
1.自我介绍
2.网络
2.1 tcp哪些特性保证了可靠性
2.2 第三次握手失败会怎么样?
2.3 适合post请求的场景(不适合get)
3.Java
3.1 如何理解多态?
3.2 final关键字?final修饰的变量 反射能改吗?
3.3 LinkedHashMap用过吗?
3.4 HaspMap为什么查找非常快?
3.5 I/O接触的多吗?你了解的I/O,比如怎么读和写?两种I/O的表现形式区别?
3.6 你自学Java根据什么大纲学习的?
3.7 java虚拟机怎么判断对象可回收?用的比较多的算法?(按你的理解,哪个更好)
3.8 写一个简单的单例。实现单例的目的?
3.9 给定整型无序数组,找出哪两个数相加等于target?
HashMap;排序+双指针
// 双指针
class Solution {
public List<int[]> find(int[] a, int target) {
Arrays.sort(a);
int n = a.length;
int i = 0, j = n - 1;
List<int[]> res = new ArrayList(); // 答案
while(i <= j) {
int sum = a[i] + a[j];
if (sum == target) res.add(new int[]{i ++, j --}); // 找到一个答案
else if (sum < target) i ++;
else j --;
}
return res;
}
}