方法区
作用:
出村已被虚拟机加载的类信息、敞亮、静态变量、及时编译器编译后的代码等数据。
特点:
1.各个线程共享的内存区域。
2.Java虚拟机规范对方法区的限制非常宽松,除了和Java堆一样不需要连续的内存和可以选择固定大小或者可扩展之外,还可以选择不实现垃圾收集。(“永久代”)
异常:
OutOfMemoryError,当方法去无法满足内存分配需求时,将抛出超出内存异常。
运行时常量池:
作用:
用于存放编译期生成的各种字面量和符号引号,这些内容将在类加载后进入方法区的运行时常量池中存放。
特点:
1.相对于Class文件,Java虚拟机规范对于运行时常量池并没有做任何的细节要求。
2.具备动态性。运行期间也可能将新的常量放入池中,比如String类中的intern()。
异常:
OutOfMenmeryError,既然它是方法区的一部分,自然受到方法区的内存限制。
图片博客链接:
https://blog.csdn.net/youngyouth/article/details/79933612