運行時數據區域有哪些?php
1.1 程序計數器java
1.2 Java虛擬機棧git
1.3 本地方法棧程序員
1.4 Java堆github
1.5 方法區面試
1.6 運行時常量池算法
對象的內存佈局?segmentfault
對象頭包括兩部分:數組
對象的訪問定位方式有哪些?markdown
使用句柄訪問
使用直接指針訪問
使用指針訪問和使用句柄訪問各具備何優點?
說一下對象的建立過程?好比: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()區別?