Dan*_*ruz 24
如果您使用的是Sun/Oracle JVM,则可以使用TraceClassLoading和TraceClassUnloading选项.使用以下命令查看JVM支持的选项:
java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -version
Run Code Online (Sandbox Code Playgroud)
如果支持这些选项,请使用运行Java应用程序-XX:+TraceClassLoading -XX:+TraceClassUnloading.您应该看到以下消息:
[Loaded ... from ...]
[Unloading class ...]
Run Code Online (Sandbox Code Playgroud)
您可以添加Java Opts以查看通过以下方式加载的类:
java -verbose:class
Run Code Online (Sandbox Code Playgroud)
关于被摧毁的课程,我不确定.
从 Java 9 开始,您可以使用-Xlog. 例如:
java -Xlog:class+load -Xlog:class+unload ...
Run Code Online (Sandbox Code Playgroud)
这将打印如下条目:
[0.296s][info][class,load] java.lang.Shutdown source: jrt:/java.base
[0.296s][info][class,load] java.lang.Shutdown$Lock source: jrt:/java.base
Run Code Online (Sandbox Code Playgroud)
您还可以使用-Xlog:help来获取有关该选项的更多信息。
您可以使用静态块来检测类加载,但无法检测类卸载。在java中,所有通过系统类加载器加载的类都不会被卸载,所有通过其他类加载器加载的类只有在类加载器卸载时才会被卸载。
static{
//execute when the class will be loaded
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15401 次 |
| 最近记录: |