JVM學習筆記7 類的解除安裝

2021-09-22 10:33:22 字數 1740 閱讀 8534

指類從記憶體中登出掉,登出完成後將不能再建立類的例項物件

mysample類載入,連線和初始化後,它的生命週期就開始了.

若代表mysample類的class物件不再被引用,即不可觸及時,class物件就會結束生命週期,mysample類在方法區內的資料也會被解除安裝,從而結束mysample類的生命週期

乙個類何時結束生命週期,取決於代表他的class物件何時結束生命週期

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

}

在jvm引數中加上-xx:+traceclassunloading並刪除classpath下的mytest1.class檔案後執行結果:

findclass invoked : main.jvm.classloader.mytest1

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

可見自定義classloader—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...