目录
10年积累的成都网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有开平免费网站建设让你可以放心的选择与我们合作。一、程序计数器
二、虚拟机栈
三、本地方法栈
四、堆
五、方法区
java虚拟机运行时数据区域主要包含:
1.程序计数器
2.虚拟机栈
3.本地方法栈
4.方法区
5.堆
下图绿色部分的数据是所有线程共享的。
一、程序计数器a、是一块较小的内存空间,是当前线程执行的字节码指示器。
b、当前线程执行的是java方法,程序计数器记录正在执行的虚拟机字节码指令地址。
c、若当前线程执行的是本地方法,程序计数器值为空。(undefined)。
d、每条线程有独立的程序计数器,互补影响,独立存储。(线程私有)
e、程序计数器不会发生OutOfMemoryError
二、虚拟机栈每个java方法在虚拟机栈中都是一个栈帧,方法从调用到执行完毕的过程对应栈帧在虚拟机栈中入栈,出栈的过程。
a、 我们常说的栈指的就是虚拟机栈,精确一点就是指虚拟机栈中局部变量表部分。
b、局部变量表存放了基本数据类型(boolean,byte,char,short,int,float,long,double);对象引用(指向对象起始地址的指针)
虚拟机栈是线程私有的。
c、当线程请求的栈深度大于虚拟机允许的深度,抛出StackOverFlowError。
d、当虚拟机栈的深度可以动态扩展,扩展后还申请不到足够内存,抛出OutOfMemoryError。
三、本地方法栈a、与虚拟机栈类似,只不过本地方法栈执行的是native方法。(C语言写的)
b、当线程请求的栈深度大于本地方法栈允许的深度,抛出StackOverFlowError。
c、当本地方法栈的深度可以动态扩展,扩展后还申请不到足够内存,抛出OutOfMemoryError。
四、堆a、堆是虚拟机中内存大的。
b、堆为所有的对象实例及数组分配内存。
c、堆中没有足够的空间为实例分配内存时,将抛出OutOfMemoryError。
五、方法区a、存储已被虚拟机加载的类型信息,常量,静态变量,运行时常量池。
b、方法区无法满足内存分配需求时,将抛出OutOfMemoryError。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧