博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java内存区域
阅读量:6238 次
发布时间:2019-06-22

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

hot3.png

1. 程序计数器,可以看作是当前线程所执行的字节码行号指示器。

     Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,任何一个确定的时刻,一个处理器都只会执行一条线程的指令,每条线程都一个独立的程序计数器。个线程的计数器互不影响,独立存储,这类内存为线程私有的内存。

2. Java虚拟机栈

     线程私有内存,生命周期与线程相同。每个方法在执行的同时都会创建一个栈帧。

     通常会把Java的内存区分为堆内存和栈内存,这个栈指的就是虚拟机栈中局部变量表部分。局部变量表存放了编译器可知的基本数据类型,对象引用和returnAddress类型(指向了一条字节码指令的地址)。

3. 本地方法栈

     虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则为虚拟机使用到得Native方法服务。

4. Java堆

     Java Heap是虚拟机管理的内存中最大的一块,被线程共享的一块区域,用于存放对象实例。Java堆可以处于物理上不连续的内存空间,只要逻辑上是连续的即可。

5. 方法区

     是各个线程共享的内存区域,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

     该区域的内存回收目标主要是针对常量池的回收和类的卸载。

6. 运行时常量池

     它是方法区的一部分,用于存放编译期生成的各种字面量和符号引用。

7. 直接内存

     不属于Java虚拟机规范中定义的内存,在JDK 1.4中的NIO类中使用,显著提高了性能。

转载于:https://my.oschina.net/iosscoket/blog/372207

你可能感兴趣的文章
马哥运维架构 第五周作业
查看>>
如何使用netstat命令验证DDOS***
查看>>
【zabbix学习笔记之三】部署zabbix-agent端
查看>>
找到数组中第i大、第i小的值
查看>>
我的友情链接
查看>>
ceph源码片段——c++引用
查看>>
list 之 增 删 改 查 排序 合并
查看>>
python模块paramiko的上传下载和远程执行命令方法
查看>>
SAS硬盘和SATA硬盘的介绍和区别
查看>>
开源TMS团队协作web系统
查看>>
linux批量修改文件夹,文件的权限,所属用户,用户组
查看>>
qt5.0.2 + opencv244
查看>>
elasticsearch日期类型
查看>>
产品经理应该如何学习
查看>>
做个精致的程序员
查看>>
挂载U盘参数大全
查看>>
解决macbook键盘失灵问题
查看>>
我总是在市井小人成堆的地方修身养性 对山中云蒸雾缭的神仙往事嗤之以鼻...
查看>>
转载 oracle数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名...
查看>>
Eclipse 配置 Intellij Idea 主题
查看>>