java内存区域与内存溢出异常
来源:互联网 发布:摇一摇截图软件大全 编辑:程序博客网 时间:2024/04/30 05:18
1.java运行时数据区图
2.程序计数器
线程私有内存。是当前线程所执行的字节码的行号指示器。简单来说:在一个确定时刻,处理器只会执行一条线程中的指令,为了线程切换后能恢复到正确的执行位置,每条线程就会需要独立的程序计数器来存储执行位置等。
如果线程正在执行一个java方法,计数器记录的是正在执行的虚拟机字节码指令的地址,如果是native方法,则计数器为空。
3.java虚拟机栈
线程私有内存。生命周期与线程相同,每个方法执行时会创建一个栈帧用于存储局部变量表,操作栈,动态链接,方法出口等信息。每一个方法被调用到执行完成的过程,就对应一个栈帧在虚拟机栈中入栈到出栈的过程。
4.本地方法栈
与虚拟机栈类似,只不过虚拟机栈服务的是java方法,本地方法栈服务的是native方法。
5.java堆
线程共享内存。目的就是存放对象及数组。是垃圾收集的主要区域,内存物理上不一定是连续的,里面的详细划分见后续文章…
6.方法区
线程共享内存。存储已被虚拟机加载的类信息,常量,静态变量,及时编译器后的代码等数据。这里很少进行垃圾回收,一旦回收目标主要是针对常量池和类的卸载。
7.直接内存
上图没画出来是因为这个并不是虚拟机运行时数据区的一部分,它是使用native函数直接分配堆外内存,java nio中DirectByteBuffer就是直接内存。这样避免了在java堆和native堆中来回复制数据。
今天先到这,后续在分析虚拟机知识。
老生常谈:深圳有爱好音乐的会打鼓(吉他,键盘,贝斯等)的程序员和其它职业可以一起交流加入我们乐队一起嗨。我的QQ:657455400
- java内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- java内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- java内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- JAVA内存区域与内存溢出异常
- Java 内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- Java内存区域与内存溢出异常
- JAVA内存区域与内存溢出异常
- ImportError: No module named 'urllib2'
- 强大实用的jQuery幻灯片插件Owl Carousel
- 记单词018
- 亚马逊 机器学习 服务 的实例 基本操作 -- 自定义ML模型
- 文章标题
- java内存区域与内存溢出异常
- 2分钟上手Echarts
- oracle 9i/10g/11g(11.2.0.3)安装包和PATCH下载地址汇总
- 书摘《人人都是产品经理》——4年产品经理思维书6
- 懒人福利【内表比较】
- Kotlin随笔 委托属性之延迟加载
- AM335x——AR8031网卡芯片寄存器分析
- 如何安装mysl数据库
- caffe_pvanet,cuda7.5,VS2013