Java内存分布
来源:互联网 发布:php 微信群发接口 编辑:程序博客网 时间:2024/06/04 08:58
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。
1.程序计数器
程序计数器是一块较小的内存空间。字节码解释器工作时就是改变这个计数器的值来取下一条需要执行的字节码指令。Java虚拟机可以支持多条线程同时执行,而每一条Java虚拟机线程都有自己的程序计数器,因此这些计数器之间互不影响,独立存储。在任意时刻,一条Java虚拟机线程只会执行一个方法的代码,这个正在被线程执行的方法称为该线程的当前方法。
如果方法不是native的,那么程序计数器就保存Java虚拟机正在执行的字节码指令的地址。如果方法是native的,那么程序计数器的值是undefined。
此区域不会发生OutOfMemoryError。
2.Java虚拟机栈
与程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期与线程相同。每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等信息。每个方法从调用到执行完成的过程,就对应着一个栈帧在虚拟机中从入栈到出栈。
0 0
- java内存分布
- java内存分布
- Java内存分布
- JAVA 的内存分布
- java 内存分布
- Java内存区域分布
- java虚拟机内存分布
- JAVA中的内存分布
- Java内存分布
- java虚拟机内存分布
- Java 虚拟机的内存分布
- java 虚拟机的内存分布
- Java 虚拟机的内存分布
- Java虚拟机内存分布总结
- java内存区域的分布
- Java运行时内存数据区域分布
- java 虚拟机运行时内存分布分析
- Java对象创建与内存分布
- 面向过程和面向对象的理解
- CSS3 2D转换
- MySQL的备份
- AvatarView头像
- 蓝桥杯:三部排序
- Java内存分布
- activemq的高可用(zookeeper+leveldb)主从集群
- Arbitrage(Floyd+map)
- 基于screen.width的伪响应式开发
- Windows-8.1_x64+VS2012+Kinect V2环境配置
- 匿名对象
- 数据的更新
- LDAP网络用户账户
- android studio ndk 开发