JVM内存+JVM内存模型+垃圾回收算法
分类:
文章
•
2024-03-21 21:33:58
Java类加载过程
![JVM内存+JVM内存模型+垃圾回收算法 JVM内存+JVM内存模型+垃圾回收算法](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzEwNy9lZTFjM2Y3YTc5NmJiMjg2ZDhkODZjZDEyOWQ5Nzc3My5wbmc=)
类加载器流程中的各加载器说明
- 引导类加载器(Bootstrap ClassLoader):它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自 java.lang.ClassLoader。
- 扩展类加载器(Extension ClassLoader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java 类。
- 应用程序类加载器(Application ClassLoader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader()来获取它。
- 用户自定义加载器(User ClassLoader): 开发人员可以通过继承 java.lang.ClassLoader类的方式实现自己的类加载器,以满足一些特殊的需求。
ClassLoader类的常用方法
- getParent() 返回该类加载器的父类加载器。
- loadClass(String name) 加载名称为 name的类,返回的结果是 java.lang.Class类的实例。
- findClass(String name) 查找名称为 name的类,返回的结果是 java.lang.Class类的实例。
- findLoadedClass(String name) 查找名称为 name的已经被加载过的类,返回的结果是 java.lang.Class类的实例。
- defineClass(String name, byte[] b, int off, int len) 把字节数组 b中的内容转换成 Java 类,返回的结果是 java.lang.Class类的实例。这个方法被声明为 final的。
- resolveClass(Class<?> c) 链接指定的 Java 类。
JVM内存模型总览
![JVM内存+JVM内存模型+垃圾回收算法 JVM内存+JVM内存模型+垃圾回收算法](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYzMy8xZmIxMjhkMTgwMGVmZTJkZWE2NmQ2ZTkwMTliN2YwOS5wbmc=)
JVM垃圾回收算法
Minor GC
- 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC
Major GC
Full GC