方法区

一方法区的基本理解

 1.方法区和堆一样是线程共享区域

 2.在JVM虚拟机启动的时候被创建,和堆一样逻辑内存连续,物理内存不连续

 3.方法区的大小和堆一样,可以固定大小也可以扩展

  4.有OOM和GC

  5.关闭JVM就会释放这个区域内存

二方法区概述

  

 

       在JDK1.8之前叫永久代,JDK1.8以后叫元空间

  永久代和元空间的区别:元空间不在虚拟机设置的内存中,而是使用本地内存

三方法区存储什么

  它用于存储已被虚拟机加载的类型信息、运行时常量池、静态变量等

  类型信息:1.这个类型的完整有效信息

        2.这个类型的父类的完整有效名

        3.这个类的修饰符

                           4.这个类型的直接接口的一个有序列表

  常量池与运行时常量池:一个有效的字节码文件除了包含类的版本信息、字段、方法以及接口等描述信息外,还有就是常量池表,包括各种字面量和对类型率和方法的符号引用,运行时常量池每个类加载都会有一个,包括编译期就已经明确的数值字面量,也包括运行期解析后才能获得的方法或字段引用,此时不在是常量池中的符号地址,这里换成了正式地址,并且具备动态性。

四方法区中的垃圾回收

  垃圾回收主要分为两部分:常量池中的废弃常量和不在使用的类型,只要常量池中的常量没有被任何地方引用,就可以被回收

 

posted @ 2020-06-09 17:14  learnNoob  阅读(464)  评论(0编辑  收藏  举报