蘑菇街一面凉经(9.24)
1. HashMap和Hashtable的区别,底层数据结构分别是什么?
2. Hashtable如何控制key value 不为空?
3. HashMap为什么要引进红黑树?为什么不用其他的平衡二叉树之类的?它的优势在哪里?链表会转化为红黑树的两个条件是?
4. HashMap发生哈希冲突,新节点是插入到链表头部还是链表的尾部,头部倒序插入死循环是怎么产生的?
5. 谈一谈CMS垃圾收集器?
6. String a="abc";String b=new String("abc");a==b;执行结果返回true还是false,怎么让结果返回true,怎么让b指向的对象被回收,Minor GC 和 Full GC的区别?
7. 如何让元空间溢出?
8. 线程池的核心线程数是5,最大线程数是10,阻塞队列的长度是20,假设任务执行不终止,那么第6个线程、第16个线程、第26个线程分别是什么情况?如果线程池中只有一个任务需要执行,那么线程池中有多少个线程?
9.
public class A{ @Transactional public void method1(){} public void method2(){this.method1();} }如果method1执行出现了异常,那么a.method2(); a.method1();这两种调用方式会不会导致事务回滚,谈谈你的理解
10. 动态代理,Spring底层用的是哪种动态代理,基于接口实现和基于子类实现的代理区别是?
其实第9个问题我还是很懵,不知道考察的是什么知识点,所以后面反问环节就问了面试官这个问题,但是它只是说这个考察的是AOP的执行逻辑。
总结就是:红黑树答不出来,死循环那个答得不好,附上凉经一份!
#面经##蘑菇街##校招##Java工程师#