Java虚拟机-----内存区域的划分

原创 2015年11月19日 00:07:17

最常用的JVM是:Oracle HotSpot (热点)

Java 虚拟机在执行 Java 程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java 虚拟机规范将 JVM 所管理的内存分为以下几个运行时数据区:程序计数器、Java 虚拟机栈、本地方法栈、Java 堆、方法区。

                  Java 虚拟机运行时数据区
Java虚拟机中若干种程序运行期间会使用到的存储不同类型数据的区域。
有一些区域是全局共享的,随着虚拟机启动而创建,随着虚拟机退出而销毁。有一些区域是线程私有的,随着线程开始和结束而创建和销毁。
是所有 Java 虚拟机共同的内存区域概念模型

运行时数据区的划分
a> 程序计数器
b> Java 堆
c> Java 虚拟机栈
d> 本地方法栈
e> 方法区

这里写图片描述

   <>程序计数器(Program Counter Register)
   一块较小的的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。
   如果线程正在执行的是一个 Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是 Native 方法,这个计数器值则为空。
   此内存区域是唯一一个在 Java 虚拟机规范中没有规定任何 OutOfMemoryError情况的区域。
版权声明:本文为博主原创文章,未经博主允许不得转载。

深入理解java虚拟机(一):java内存区域(内存结构划分)

图一:java内存结构划分 由上图可知,java内存主要分为6部分,分别是程序计数器,虚拟机栈,本地方法栈,堆,方法区和直接内存,下面将逐一详细描述。 1、程序计数器 线程私有,即每个线程都会有一个...
  • MINEZHANGHAO
  • MINEZHANGHAO
  • 2014年02月18日 17:45
  • 20004

Java 虚拟机内存区域划分详解(1)

一、概述 对于 C 和 C++程序开发的开发人员来说,在内存管理领域,程序员对内存拥有绝对的使用权,但是也要主要到正确的使用和清理内存,这就要求程序员有较高的水平。而对于 Java 程序员来说,在虚...
  • u010870518
  • u010870518
  • 2015年04月14日 17:02
  • 2246

深入理解java虚拟机(一):java内存区域(内存结构划分)

图一:java内存结构划分 由上图可知,java内存主要分为6部分,分别是程序计数器,虚拟机栈,本地方法栈,堆,方法区和直接内存,下面将逐一详细描述。 1、程序计数器 线程私有,即每个线程都会有一个...
  • MINEZHANGHAO
  • MINEZHANGHAO
  • 2014年02月18日 17:45
  • 20004

Java 虚拟机内存区域划分详解(1)

一、概述 对于 C 和 C++程序开发的开发人员来说,在内存管理领域,程序员对内存拥有绝对的使用权,但是也要主要到正确的使用和清理内存,这就要求程序员有较高的水平。而对于 Java 程序员来说,在虚...
  • u010870518
  • u010870518
  • 2015年04月14日 17:02
  • 2246

JVM规范中的五大java内存区域

JVM在执行java程序时会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间。有的数据区域随着JVM的进程而启动,有的数据区域则依赖于用户线程的启动和结束而创建...
  • canot
  • canot
  • 2016年03月31日 16:07
  • 3921

java虚拟机的内存区域划分

java虚拟机在执行java程序的过程中会把它所有的内存划分成很多不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束...
  • u014316462
  • u014316462
  • 2016年08月01日 14:01
  • 353

java虚拟机的内存区域划分

java虚拟机在执行java程序的过程中会把它所管理的内存划分成很多个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和...
  • westonduo
  • westonduo
  • 2014年07月28日 19:26
  • 328

Java 虚拟机内存区域划分详解(1)

一、概述 对于 C 和 C++程序开发的开发人员来说,在内存管理领域,程序员对内存拥有绝对的使用权,但是也要主要到正确的使用和清理内存,这就要求程序员有较高的水平。而对于 Java 程序员来说,在虚...
  • u010870518
  • u010870518
  • 2015年04月14日 17:02
  • 2246

Java虚拟机-内存区域划分

Java虚拟机-内存划分==================================  在Java中,在虚拟机自动内存机制管理的帮助下,不需要程序员为每一个new操作去写对应的delete/f...
  • zcy_fover
  • zcy_fover
  • 2016年08月09日 11:28
  • 235

java虚拟机中的内存区域划分

一、概述 Java虚拟机规范规定的java虚拟机内存其实就是java虚拟机运行时数据区,其架构如下: 其中方法区和堆是由所有线程共享的数据区。 虚拟机栈,本地方法栈和程序计数器是线程隔离的数据区。...
  • xiaokang123456kao
  • xiaokang123456kao
  • 2017年04月01日 11:33
  • 801
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java虚拟机-----内存区域的划分
举报原因:
原因补充:

(最多只允许输入30个字)