快手移动端开发实习二面 2023/12/20
一、自我介绍(项目和经历都没有问)
二、代码题(介绍完直接做题)
比较版本号
三、八股文(基本都是多线程内容)
1. ConcurrentHashMap底层数据结构,什么时候树化,什么时候退回链表,装填因子为什么是0.75
2. ConcurrentHashMap的volatile关键字修饰的是node还是node的val,为什么要用Jvolatile(JMM),sizectl属性(扩容、初始化、扩容阈值),get(为什么不加锁)方法,put方法(cas是什么,什么情况用,synchronized)
3. String s1= “1",String s2 = new String("1"),s1和s2相同吗(一个指向常量池,一个指向堆)
4. 虚拟机栈是什么,有什么作用?a=1,b=2,b = a+1,c = a+b;
(这几个操作在虚拟机栈怎么体现,当时题目都没记住,所以就说不会了,应该往局部变量表的更新和操作数上去答题)
5. 线程池有哪些参数(corepoolsize,maxpoolsize,workQueue,keepalive,handler),线程池的工作流程
6. ThreadLocal是什么(讲了Thread的ThreadLocalMap,用于线程隔离和共享信息)
7. 让你设计如何最快的使jvm栈溢出和堆溢出(答了递归、造大对象,内存泄漏,改jvm参数)
四、反问
业务是sdk开发,面试不足之处是不自信,有些知识欠缺理解(换个问的方式就不会回答了)