Java方法区如何进行详细解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2036个文字,预计阅读时间需要9分钟。
目录 + 方法区(方法区中保存了什么) + 类型信息 + 类型的常量池 + 运行时常量池 + 字段信息 + 方法和构造方法信息 + 类型的变异变量(即静态变量) + 类加载器 + 类的使用 + 方法定义 + JVM如何使用
目录
- 方法区
- 图例(方法区中都保存什么)
- 类型信息
- 类型的常量池 (即运行时常量池)
- 字段信息
- 方法信息
- 类变量(即static变量)
- 对类加载器的引用
- 对Class类的引用
- 方法表
- JVM如何使用方法区里面的数据
方法区
保存在着被加载过的每一个类的信息;这些信息由类加载器在加载类的时候,从类的源文件中抽取出来;static变量信息也保存在方法区中;
可以看做是将类(Class)的元数据,保存在方法区里;
方法区是线程共享的;当有多个线程都用到一个类的时候,而这个类还未被加载,则应该只有一个线程去加载类,让其他线程等待;
方法区的大小不必是固定的,jvm可以根据应用的需要动态调整。jvm也可以允许用户和程序指定方法区的初始大小,最小和最大限制;
方法区同样存在垃圾收集,因为通过用户定义的类加载器可以动态扩展Java程序,这样可能会导致一些类,不再被使用,变为垃圾。这时候需要进行垃圾清理。
本文共计2036个文字,预计阅读时间需要9分钟。
目录 + 方法区(方法区中保存了什么) + 类型信息 + 类型的常量池 + 运行时常量池 + 字段信息 + 方法和构造方法信息 + 类型的变异变量(即静态变量) + 类加载器 + 类的使用 + 方法定义 + JVM如何使用
目录
- 方法区
- 图例(方法区中都保存什么)
- 类型信息
- 类型的常量池 (即运行时常量池)
- 字段信息
- 方法信息
- 类变量(即static变量)
- 对类加载器的引用
- 对Class类的引用
- 方法表
- JVM如何使用方法区里面的数据
方法区
保存在着被加载过的每一个类的信息;这些信息由类加载器在加载类的时候,从类的源文件中抽取出来;static变量信息也保存在方法区中;
可以看做是将类(Class)的元数据,保存在方法区里;
方法区是线程共享的;当有多个线程都用到一个类的时候,而这个类还未被加载,则应该只有一个线程去加载类,让其他线程等待;
方法区的大小不必是固定的,jvm可以根据应用的需要动态调整。jvm也可以允许用户和程序指定方法区的初始大小,最小和最大限制;
方法区同样存在垃圾收集,因为通过用户定义的类加载器可以动态扩展Java程序,这样可能会导致一些类,不再被使用,变为垃圾。这时候需要进行垃圾清理。

