06.Java虚拟机问题
运行时数据区域有哪些?
1.1 程序计数器
1.2 Java虚拟机栈
1.3 本地方法栈
1.4 Java堆
1.5 方法区
1.6 运行时常量池
对象的内存布局?
对象头包括两部分:
对象的访问定位方式有哪些?
使用句柄访问
使用直接指针访问
使用指针访问和使用句柄访问各具有何优势?
说一下对象的创建过程?比如:Dog dog= new Dog();
变量创建过程种放在虚拟机哪里?
变量是实例变量、局部变量或静态变量的不同将引用放在不同的地方:
OutOfMemoryError异常在哪些数据区域中可能会出现?
分别说一下这个数据区域出现OOM的场景和缘由?
Java堆溢出
虚拟机栈和本地方法栈溢出
方法区和运行时常量池溢出
Java中堆和栈的区别?
分别写出堆内存溢出与栈内存溢出的程序?
public void A() {
A();
}
public void testd() {
List<String> list = new ArrayList<>();
int i = 0;
while (true) {
list.add(new String(i + ""));
i++;
}
}
如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?
java中垃圾收集的方法有哪些
标记-清除:
复制算法:
标记-整理技术博客大总结
分代收集
2.可达性算法(引用链法)
在java中可以作为GC Roots的对象有以下几种:
如何理解一个对象不一定会被回收?技术博客大总结
Class.forName() 和ClassLoader.loadClass()区别?
网友评论