面试点---jvm 、GC、HashMap

jvm 、GC、HashMap --比较全的面试点(包含答案),如下:
jvm+GC
HashMap

在完全不了解这些知识点的情况下,时间充足的话,建议先看看相关的教学视频,再去看面试题。

jvm+Gc:

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
2.Java内存结构?
3.解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法
4.对象分配规则
5.什么是类的加载
6.类加载器
7.描述一下JVM加载class文件的原理机制?
8.描述一下JVM加载class文件的原理机制?
9.Java对象创建过程
10.类的生命周期
11.Java对象结构
12.Java对象的定位方式
13.如何判断对象可以被回收?
14.JVM的永久代中会发生垃圾回收么?
15.引用的分类
16.判断一个对象应该被回收
17.回收方法区
18.垃圾收集算法
19.垃圾回收器
20.GC日志分析
21.调优命令
22.调优工具
23Minor GC与Full GC分别在什么时候发生?
24.你知道哪些JVM性能调优

HashMap:

(1)HashMap的实现原理?
此题可以组成如下连环炮来问

你看过HashMap源码嘛,知道原理嘛?
为什么用数组+链表?
hash冲突你还知道哪些解决办法?
我用LinkedList代替数组结构可以么?
既然是可以的,为什么HashMap不用LinkedList,而选用数组?

(2)HashMap在什么条件下扩容?
此题可以组成如下连环炮来问

HashMap在什么条件下扩容?
为什么扩容是2的n次幂?
为什么为什么要先高16位异或低16位再取模运算?

(3)讲讲hashmap的get/put的过程?
此题可以组成如下连环炮来问

知道hashmap中put元素的过程是什么样么?
知道hashmap中get元素的过程是什么样么?
你还知道哪些hash算法?
说说String中hashcode的实现?(此题很多大厂问过)

(4)为什么hashmap的在链表元素数量超过8时改为红黑树?
此题可以组成如下连环炮来问

知道jdk1.8中hashmap改了啥么?
为什么在解决hash冲突的时候,不直接用红黑树?而选择先用链表,再转红黑树?
我不用红黑树,用二叉查找树可以么?
那为什么阀值是8呢?
当链表转为红黑树后,什么时候退化为链表?

(5)HashMap的并发问题?
此题可以组成如下连环炮来问

HashMap在并发编程环境下有什么问题啊?
在jdk1.8中还有这些问题么?
你一般怎么解决这些问题的?

发布了45 篇原创文章 · 获赞 6 · 访问量 1162

猜你喜欢

转载自blog.csdn.net/qq_41219586/article/details/104079868