本人研二渣硕一枚,最近赶着春招的东风找了一波暑假实习,下面总结了一下自己的实习面经,希望能够帮助到更多的人。
1.自我介绍加项目介绍
2.简历上看到你做过项目组长,你在做组长之后做了那些工作。学到了那些东西。
3.有看过HashMap源码吗?
4.JDK1.7中HashMap的put()方法全过程。
5.JDK1.8有那些变化。
6.JDK1.7当中HashMap中线程不安全问题有那些?原因分别是什么?
7.JDK1.8之后如何链地址法,链表长度是多少的时候会转换成红黑树。
8.节点个数是多少的时候,红黑树会退回链表。
9.为什么会选择8作为链表转红黑树的阈值。
10.为什么选择0.75作为负载因子?
11.HashMap与HashTable有什么区别?
12.有那些线程安全的Map集合?
13.有没有了解过ConcurrentHashMap(讲一下对它的理解)?
14.JDK1.8之后ConcurrentHashMap如何保证线程安全性?(CAS+synchronized),这里还顺便问了synchronized和ReentranceLock的区别。
15.与JDK1.7相比有那些优化?
16.说到synchronized,说下synchronized加载static关键字前和普通方法前的区别?
17.看你熟悉单例,说下单例懒汉式和饿汉式的区别?(手写)
18.懒汉式下如何保证线程安全?
19.创建线程安全的单例有那些实现方法?(双重判断,静态内部类(由JVM保证其线程安全性),枚举类)
20.说一下JVM的内存模型?<