JVM基本结构

原创 2016年08月30日 10:37:36

当JAVA虚拟机运行一个程序时,它需要内存来存储已装载的class文件中得到的信息等。Java虚拟机把这些东西都组织到几个“运行时数据区”中,以便于管理。

 

JVM内存模型结构图:


Java栈:栈由一系列帧组成,帧保存一个方法的局部变量,操作数栈、常量池指针,每次方法调用创建一个帧,并压栈。

javajava堆和程序开发密切相关,保存对象,所有线程共享java堆,对分代GC来说,堆也是分代的。分为新生代和老年代。

新生代:存放刚刚创建的对象

老年代:存放幸存区未被回收的对象。

方法区:保存装载的类的信息,类型常量池、字段、方法信息、方法字节码。通常和用就去关联在一起。

PC寄存器:每个线程拥有一个pc寄存器,在线程创建时创建,指向下一条指令的地址,执行本地方法时,pc的值为undefined

 

栈、堆、方法区交互:


对比:堆上分配和栈上分配

1、小对象,在没有逃逸的情况下可以直接分配在栈上

2、直接分配在栈上,可以自动回收,减轻GC压力,分配在堆上,每次需要清理空间

3、大对象或者逃逸对象无法在栈上分配


版权声明:本文为博主原创文章,未经博主允许不得转载。

八、JVM内存基本结构

Java程序运行在JVM上,可以吧JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。 一个完整的Java程序运行过程会涉及到以下内存区域:  ...
  • WeDoi
  • WeDoi
  • 2017年07月07日 10:10
  • 204

深入理解JVM内幕:从基本结构到Java 7新特性

本文作者: ImportNew - 朱伟杰 未经许可,禁止转载! 每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Java运行时环境)上...

深入理解JVM内幕:从基本结构到Java 7新特性

每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Java运行时环境)上的。JRE中最重要的部分是Java虚拟机(JVM),JVM负责分析和执行...

深入理解JVM内幕:从基本结构到Java 7新特性

深入理解JVM内幕:从基本结构到Java 7新特性  分享到: 每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment J...

深入理解JVM内幕:从基本结构到Java 7新特性

原文地址:http://www.importnew.com/1486.html 每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Jav...

Java-JVM的基本结构

从Java平台的逻辑结构上来看,我们可以从下图来了解JVM: 从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别 对于JVM自身的物理结构,我们可以从下图鸟瞰一下: 对...

深入理解JVM内幕:从基本结构到Java 7新特性

转自http://www.importnew.com/1486.html 每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Java运行时环境...

深入理解JVM内幕:从基本结构到Java 7新特性

英文原文也转载了,见《Understanding JVM Internals》。 这篇文章是翻译版,原文链接:http://www.importnew.com/1486.html ...

JVM的基本结构及其各部分详解(一)

1 java虚拟机的基本结构如图: 1)类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中可能还会存放运行时常量池信息,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JVM基本结构
举报原因:
原因补充:

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