java内存区域-方法区
来源:互联网 发布:云和山的彼端 mac 编辑:程序博客网 时间:2024/05/24 02:55
方法区同java堆一样,是各个线程共享的一块内存区域,用来存储已经被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码。
因为方法区是被所有线程共享的,所以必须考虑数据的线程安全。假设两个线程都在找java类,当这个类没有被加载时,只能有一个线程去加载,而其他线程等待。
java虚拟机规范把方法区描述为堆的一个逻辑部分,但他却有一个别名(Non-heap 非堆),明确的把方法区和堆区分开来。
很多人还愿意把方法区称为“永久代”,but二者在本质上并不是等价的,仅仅是因为Sun Hotspot虚拟机的设计团队把GC分代收集扩展到了方法区,或者是通过永久代实现方法区。
方法区除了和java堆一样不需要在物理上连续的内存,和可以设置固定大小和可扩展内存外,它还可以设置不实现垃圾收集。相对而言,GC在这个区域的收集行为很少,但并不意味着数据进入这个区域就长生不老了,这个区域的内存回收目的主要是针对常量池的回收以及类型的卸载。
当方法区无法满足内存的分配需求时,抛出OutOfMemoryError错误。
阅读全文
0 0
- java内存区域-方法区
- Java内存区域(栈、堆、方法区)详细解说
- 细说java内存区域划分(堆,栈,方法区)
- java内存区域-本地方法栈
- java内存区域-运行时数据区
- java内存区域探析
- Java内存区域
- Java内存区域
- java 内存区域
- jAVA内存区域划分
- java内存区域
- Java 内存区域
- Java内存区域
- Java内存区域
- 01 Java 内存区域
- java内存区域浅析
- Java 内存区域 详解
- java内存区域
- HDU 6140 Hybrid Crystals(简单题 17多校第八场)
- 数据结构实验之排序五:归并求逆序数
- SPOJ CIRU(The area of the union of circles-圆的面积并)
- 电脑网页打不开怎么回事但qq能用
- MySQL常见的错误类型
- java内存区域-方法区
- 桌面笔记工具KeepNote
- CGAL的64位开发环境配置
- 【HTCVR】VRTK插件案例分析之0011~020
- How to disable SSL certificate checking with Spring RestTemplate?(使用resttemplate访问https时禁用证书检查)
- office文档全文检索以及在线预览
- 弹飞绵羊 分块
- 1008 c
- 导出Excel