目录
一面
----------------------------------------------------------------------------------------------------------------
1: 自我介绍
2: HashMap怎么解决Hash冲突的
1、解决Hash冲突的方法:链地址法、两次hash法、线性探测法
2、1.7是通过链表 1.8通过链表+红黑树
3: ConcurrentHashMap怎么解决线程安全
1、使用了分段锁机制,即有一个segment数组+若干个hashEntry数组构成,每个segment元素继承了ReentrantLock,具有可重入锁的特性,类似加了锁的hashmap,当多个线程操作不同的segment的时候,彼此之间互不影响,不用担心线程安全问题
4: 常见的排序有没有了解过
1、时间复杂度为O(N^2):选择排序、冒泡排序、插入排序、折半插入排序
2、时间负责度为O(n^logN):快速排序、堆排序、归并排序、希尔排序
3、时间复杂度为O(N):计数排序、基数排序
5: 一堆基本有序的数组,用哪种排序效率最高
插入排序
6: JDK1.6到JDK1.8 GC上面最大做了什么变化
JDK7堆内存划分
在JDK7以及其前期的JDK版本中,堆内存通常被分为三块区域新生代、老年代、永久代
一个对象被创建以后首先被放到Eden内存中,如果存活期超两个Survivor之后就会被转移到老年代中。永久内存中存放着对象的方法、变量等元数据信息。通过如果永久内存不够,我