【技术面】四面美团,终拿offer!( 四 )

这里我就主要讲了Synchronized关键字 , 还有并发包下面的一些锁 , 以及各自的优缺点和区别 。 volatile关键字我主要从可见性、原子性和禁止JVM指令重排序三个方面讲的 , 再讲了一下我在多线程的单例模式double-check中用到volatile关键字禁止JVM指令重排优化 。

3、集合: HashMap底层实现 , 怎么实现HashMap线程安全

我讲了一下HashMap底层是数组加单链表实现 , Node内部类 , add的过程 , Hash冲突解决办法 , 扩容 , 三种集合视图 。 HashMap线程安全的实现方式主要讲了HashTable、ConcurrentHashMap以及Collections中的静态方法SynchronizedMap可以对HashMap进行封装 。 以及这三种方式的区别 , 效率表现 。

4、JVM内存管理 , GC算法 , HotSpot里面的垃圾回收器、类加载

JVM内存主要分为五个区 , 哪些是线程共享的 , 哪些是线程独享的 , 每个区存放什么 。 GC方面:怎么判断哪些对象需要被GC , GC的方法 , Minor GC与Full GC 。 HotSpot GC算法以及7种垃圾回收期 , 主要讲了CMS和G1收集器 。 类加载:类加载的过程 , Bootstrap classloader-ExtClassloader-AppClassloader , 父类委托机制 。

推荐阅读