Java中的类加载与类卸载

类加载

Java中的代码都写在类里面,源代码(.java文件)经过编译后会变成字节码(.class文件),当Java应用程序运行时,JVM会加载要用到的类。
负责类加载的是java.lang.ClassLoader的对象,ClassLoader的对象会根据类的binary name(不知道怎么翻译,二进制名?)来读取类的字节码,然后把这些字节码加载到JVM的方法区里,同时会在heap里面创建一个Class对象,这个Class对象是类的元数据和它的对象通信的接口。类在heap中的Class对象和加载它的ClassLoader对象之间有强引用。

类卸载

不像类加载,Java中没有提供显式进行类卸载的API,但是如果加载类的ClassLoader对象被垃圾回收器回收的话,这个类就会被卸载。所以我们可以自己实现ClassLoader,自己加载类,然后对ClassLoader对象的引用赋值为null,等ClassLoader对象剩下的引用数量为0时会被回收,这样就达到卸载类的目的了。

你可能感兴趣的:(Java)