面试官人很好,很温柔,正式批一定还会来😭
全程1小时3分钟48秒
1.自我介绍
2.项目相关
3.给了几行代码
Map<Integer,String> map = new HashMap<>(); for(Integer i = 0; i < 200; i++){ map.put(i,String.valueOf(i)); map.remove(i - 1); } System.out.println(map.size());问打印结果
4.HashMap的remove时间复杂度,HashMap和HashTable区别,HashTable和ConcurrentHashMap性能比较,为什么ConcurrentHashMap性能更好
5.从虚拟机的角度解释Java为什么会存在线程安全问题
6.对于JMM内存模型的理解
7.讲一讲CPU的高速缓存,为什么需要高速缓存
8.手写DCL单例
9.为什么要加volatile,volatile做了什么事(可见性和有序性,展开了说)
10.synchronized关键字做了什么事,jdk8有什么优化,自旋锁的好处
11.如果要等待多个线程全部结束再往下执行,用哪些工具?(答Semaphore、CountdownLatch)
12.给了类似下面的程序
class Singleton { private static Singleton singleton = new Singleton(); public static int count1; public static int count2 = 0; public int count3; static { count1 = 0; count2 = 0; } private Singleton() { count1++; count2++; count3++; } public static Singleton getSingleton() { return singleton; } public static void main(String[] args) { Singleton singleton = Singleton.getSingleton(); System.out.println("count1:" + count1); System.out.println("count2:" + count2); System.out.println("count3:" + singleton.count3); } }问打印的结果是什么?(记不太清具体代码了,但意思是这个意思,能答上来这道题,原题也肯定能答上来,反正我没答上来)
13.类什么时候加载
14.启动一个java程序的过程哪个类加载器会参与
15.平时用电脑,一瞬间打开很多程序,电脑很卡的原因是什么
16.操作系统中互斥量和信号量的区别
17.对于linux的线程和进程的理解
18.对于轻量级进程的理解
19.为什么要有内核空间和用户空间?
20.linux内存布局?(代码段数据段这些,从下往上讲)
21.讲一讲memory map
22.进程间通信方式
23.管道是如何运行的
24.在浏览器输入https的网址回车后到显示画面,中间发生了什么,越详细越好
25.http状态码,4xx和5xx的区别
26.Tcp的keepalive和Http的keep-alive的区别
27.http 1.0和1.1的区别,连接复用是怎么复用的?
28.算法题
给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
注意candidates 中的每个数字在每个组合中只能使用一次。
说明:
所有数字(包括目标数)都是正整数。解集不能包含重复的组合。
例 1: 输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6]]
例 2: 输入: candidates = [2,5,2,1,2], target = 5,所求解集为:[ [1,2,2], [5]]
全部评论
(8) 回帖