虚拟机

虚拟机厂家

厂商 :上海快网网络信息技术有限公司

地址 :上海 上海
主营产品 :
联系电话 :18827252893
商品详情描述
      Java虚拟机内存分为五个区域: 办法区,堆, 虚拟机栈,本地办法栈,程序计数器。其间办法区和堆是java虚拟机同享的内存区域,虚拟机栈,本地办法栈,程序计数器是线程私有的。

1.程序计数器:
 
      当时线程履行字节码的行号指示器。经过改变这个指示器的值来选择下一条需求履行的字节码指令。这个内存区域是Java虚拟机仅有一个没有定义OutOfMemeryError状况的区域。

2. Java虚拟机栈:
 
       虚拟机栈描绘的是Java办法履行的内存模型:每个办法履行是都会创立栈帧(Stack Frame)用于存储局部变量,操作栈,办法信息,动态连接,办法出口等信息。

        在java虚拟机标准中,关于这两个区域规定了两种状况的反常:
1)假如线程恳求的栈深度大于虚拟机所答应的深度将会抛出StackOverFlowError反常, 
2)Java虚拟机能够动态扩展,当无法申请到满意的内存时会抛出OutOfMemeryError

3.本地办法栈
 
     本地办法栈与Java虚拟机栈十分类似,其区别是Java虚拟机栈为虚拟机履行Java办法服务,而本地办法栈是虚拟机使用到的Native办法服务。 所以本地办法栈也也许呈现两种与Java虚拟机栈相同的反常。

4. Java堆
 
      Java堆是Java虚拟机办理的最大的一块内存区域,java堆是被一切Java线程同享的,在Java虚拟机启动时创立,此内存的仅有意图即是寄存目标实例。简直一切的目标实例都要分配在堆中。(跟着JIT编译器的发展,逃逸剖析技能的逐渐老练,栈上分配,标量替换等优化技能,使得部分目标不再分配在堆上。)
Java堆的巨细经过 -Xmx和-Xms两个参数控制。但是当堆的内存再无法扩展时,就会呈现OutOfMemeryError.

5.办法区

        办法区与Java堆相同,是各个线程同享的内存区域,他用于存储类信息,常量,静态变量以及及时编译后的代码等数据。当办法区无法满意内存分配需求时,将抛出OutOfMemeryError.

标签:
相关产品推荐