博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
随笔37 JVM内存
阅读量:5104 次
发布时间:2019-06-13

本文共 633 字,大约阅读时间需要 2 分钟。

JVM 内存模型图

方法区域存放了所加载的类的信息(名称、修饰符等)、类中的静态变量、类中定义为final类型的常量、类中的Field信息、类中的方法信息,当开发人员在程序中通过Class对象中的getName、isInterface等方法来获取信息时,这些数据都来源于方法区域,同时方法区域也是全局共享的,在一定的条件下它也会被GC,当方法区域需要使用的内存超过其允许的大小时,会抛出OutOfMemory的错误信息。

Java  运行时数据区可以分成 方法区、 堆、 栈、 程序计数器、 本地方法栈

堆:Java 对象, 线程之间共享的

栈:方法运行,每一个方法对应一个栈帧,每一个线程对应一个栈,每个栈帧包括操作数、局部变量表、指向运行时常量池的引用,方法返回地址、附加位区,所以是线程不共享的。

方法区(静态区):被虚拟机加载的类信息、,常量静态(static)变量(final),即时编译器编译后的代码等数据。运行常量池是方法区的一部分,class文件除了有类的版本、字段、接口、方法等描述信息之外,还有一项信息常量池保存编译期生成的字面量和符号引用。 线程之间共享的

程序计数器:指出某一个时候执行某一个指令、执行完毕之后要返回的位置,当执行的Java方法的时候,这里保存的当前执行的地址,如果执行的是本地方法的时候,那么程序计数器为空。线程不共享。

 

转载于:https://www.cnblogs.com/lyr612556/p/7838261.html

你可能感兴趣的文章
DOM操作
查看>>
在文章没有缩略图的时候,如何去掉织梦官方的 DEDECMS无缩略图 图片
查看>>
不忙怎么体现价值
查看>>
IBM DS存储存储性能调优
查看>>
Oracle Data Provider for .NET连接oracle数据库
查看>>
iOS开发多线程篇—NSOperation简单介绍
查看>>
shell基础
查看>>
4:4 自定义拦截器
查看>>
模拟+二分 poj-1019-Number Sequence
查看>>
java基础整理总结篇(1)
查看>>
设置Echarts鼠标悬浮样式
查看>>
[Linux]系统调用理解(2)
查看>>
167. Two Sum II - Input array is sorted
查看>>
227. Basic Calculator II
查看>>
JAVA-初步认识-常用对象API(集合框架-重点方法keyset演示图解)
查看>>
面试笔记
查看>>
[LeetCode] Combination Sum II
查看>>
jQuery 滚动监听总结
查看>>
char、varchar、nchar、nvarchar的区别
查看>>
windows服务程序
查看>>