(4)java方法区

时间:2021-02-10 04:02:09

java方法区
【名词解析】
        --->和java堆一样,方法区是一块所有线程共享的内存区域。
        --->保存系统的类信息,比如,类的字段,方法,常量池等。
        --->方法区的大小决定了系统可以保存多少个类,如果系统定义了太多的类,导致方法区溢出,虚拟机同样会抛出内存溢出的错误
        --->jdk1.6和jdk1.7方法区可以理解为永久区。
        --->jdk1.8已经将方法区取消,替代的是元数据区。
        --->jdk1.8的元数据区可以使用参数-XX:MaxMetaspaceSzie设定大小,这是一块堆外的直接内存,与永久区不同,如果不指定大小,默认情况下,虚拟机会耗尽可用系统内存

【参数设定】
        --->jdk1.6和jdk1.7的永久区可以使用参数-XX:PermSize 和-XX:MaxPermSize指定
        --->-XX:PermSize =5m 默认启动大小为5M
        --->-XX:MaxPermSize=64m 最大大小为64M
【异常】
        --->
        --->jdk1.8元数据区内存溢出:java.lang.OutOfMemoryError:Metaspace