版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Love667767/article/details/79829474
问题来源于网络
Java的虚拟机的面试内容主要包括三部分:GC、类加载机制、内存。
GC
- 什么时候一个对象会被GC?
- 为什么要在这种时候对象才会被GC?
- GC策略都有哪些分类?
- 这些策略分别都有什么优劣势?都适用于什么场景?
- 给你举个实际的场景,让你选择一个GC策略?
- 你如果选出来了,继续问你,为什么要选择这个策略?
类加载机制
- Java的类加载器都有哪些?
- 每个类加载器都加载哪些类?
- 这些类加载之间的父子关系是怎样的?
- 什么是双亲委派模型?
- 为什么Java的类加载器要使用双亲委派模型?
- 如何自定义自己的类加载器,自己的类加载器和Java自带的类加载器关系如何处理?
内存
- JVM内存分为哪几部分,这些部分分别都存储哪些数据?
- 一个对象从创建到销毁都是怎么在这些部分里存活和转移的?
- 内存的哪些部分会参与GC的回收?
- Java的内存模型是怎么设计的?
- Java的内存模型为什么要这么设计?
- 结合内存模型的设计谈谈volatile关键字的作用?