JVM基本结构

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

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

 

JVM内存模型结构图:


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

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

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

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

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

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

 

栈、堆、方法区交互:


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

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

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

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


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

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

1 java虚拟机的基本结构如图: 1)类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中可能还会存放运行时常量...
  • yangyb123456
  • yangyb123456
  • 2016年12月30日 13:53
  • 173

一张图看懂JVM的基本结构

  • huaweitman
  • huaweitman
  • 2016年06月02日 20:27
  • 877

JVM组成结构

一:Java技术体系模块图 二:JVM内存区域模型 1.方法区 也称为"永久代"、"非堆",它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值...
  • lzm1340458776
  • lzm1340458776
  • 2015年03月09日 13:32
  • 1307

深入学习JVM笔记一JVM启动流程与基本结构

JVM启动流程 JVM基本结构 PC寄存器 每个线程拥有一个PC寄存器 在线程创建时创建 指向下一条指令的地址 执行本地方法时,PC的值为undefined 方法区 保存装载的类信息 类型...
  • q383700092
  • q383700092
  • 2016年04月13日 09:28
  • 680

Java 虚拟机基本结构介绍

java虚拟机的基本结构如图所示:基本的结构有8个 类加载子系统: 主要负责负责加载Class信息,加载的类信息都存放在方法区的类存空间中。 当JVM使用类加载器装载某个类时,它首先要定位对应的c...
  • qq_33048603
  • qq_33048603
  • 2016年08月10日 10:33
  • 1807

深入理解JVM(1)—Java虚拟机基本结构

最近开始看周志明著的《深入理解Java虚拟机》一书,此书作为Java虚拟机的经典畅销书,果然是非常优秀的,在学习它的过程中逐渐理解了Java运行机理、内存分配与回收等知识,收获颇多。 要学习...
  • shijing_0214
  • shijing_0214
  • 2016年03月12日 15:36
  • 1625

认识Java虚拟机的基本结构

1. Java虚拟机的架构 1)   类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法的内存空间。除了类信息外,方法区中可能还会存放运行时常量池信息, ...
  • owen_william
  • owen_william
  • 2016年03月26日 16:48
  • 1471

【深入理解JVM】学习笔记——-1、JVM基本结构

主要来学习jvm的基本结构,也就是概述。说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成图形,所以只要你有耐心,仔细,认真,并发挥你的想象力,这...
  • singit
  • singit
  • 2017年02月08日 01:17
  • 620

JVM的基本结构和JVM的内存结构

JVM的基本结构和JVM的内存结构   这里概要介绍一下JVM在启动后,作为操作系统的一个进程的基本结构,以及从操作系统角度看,JVM如何管理它从操作系统里申请来的内存的,也就是JVM...
  • zhangzl4321
  • zhangzl4321
  • 2017年06月28日 15:55
  • 230

JVM堆内存结构浅析

Java 1.2以上的版本对jvm内存进行了分代管理,图示如下:          JVM将Heap分为NewGeneration和Old Generation(或Tenured Generat...
  • zhaozheng7758
  • zhaozheng7758
  • 2013年02月28日 19:57
  • 5372
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JVM基本结构
举报原因:
原因补充:

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