指類從記憶體中登出掉,登出完成後將不能再建立類的例項物件
當mysample
類載入,連線和初始化後,它的生命週期就開始了.
若代表mysample
類的class物件不再被引用,即不可觸及時,class物件就會結束生命週期,mysample
類在方法區內的資料也會被解除安裝,從而結束mysample
類的生命週期
乙個類何時結束生命週期,取決於代表他的class物件何時結束生命週期
在jvm引數中加上public
class
mytest16
extends
classloader
public
void
setpath
(string path)
public
mytest16
(string classloadername)
public
mytest16
(classloader parent, string classloadername)
private
byte
loadclassdata
(string classname)
data = baos.
tobytearray()
;}catch
(exception e)
finally
catch
(exception ex)
}return data;
}@override
protected class<
?>
findclass
(string classname)
throws classnotfoundexception
@override
public string tostring()
';}public
static
void
main
(string[
] args)
throws exception
}
-xx:+traceclassunloading
並刪除classpath
下的mytest1.class
檔案後執行結果:
findclass invoked : main.jvm.classloader.mytest1可見自定義classloader—clazz.hashcode=2125039532
main.jvm.classloader.mytest1@12a3a380
classload=mytest16
[unloading class main.jvm.classloader.mytest1 0x00000007c0060828]
findclass invoked : main.jvm.classloader.mytest1
clazz.hashcode=1846274136
main.jvm.classloader.mytest1@61bbe9ba
classload=mytest16
mytest16
所載入的類mytest1
被解除安裝
jvm學習筆記8-常用指令,助記符,jvm引數
jvm學習(筆記)
1 jvm規範 img 2 oracle jdk 編譯機制 img 1 詞法分析 將 轉token序列 例如token.eq name 語法分析 生成語法抽象樹。2 註解處理 處理註解生成 3 檢查語法抽象樹 3 類載入順序 classloader self parent system findcl...
堆記憶體溢位的測試類 JVM學習筆記
記個筆記,手寫乙個測試類,模擬堆記憶體溢位。堆記憶體溢位測試類 vm agrs xms10m xmx10m xx heapdumponoutofmemoryerror author lixiang date 2019年04月12日 14 44 history 2019年04月12日 14 44 li...
JVM學習筆記1
1.執行時資料結構 2.堆分代 3.垃圾收集器 4.gc日誌 package jvm public class gctest 控制台 垃圾 前.gc system.gc psyounggen 1996k 816k 38400k 1996k 824k 125952k 0.0010917 secs ti...