图片述说JVM运行时的故事(上)

时间: 2024-11-14 07:28:59

图片述说JVM运行时的故事(上)的相关文章

jvm运行时内存划分

(根据<深入理解java虚拟机>这本书总结) 本文主要解释jvm内存模型,以及各个部分的作用.都是自己总结的给自己看的通俗语言,未用专业术语的见谅. 一.为什么要了解jvm内存模型? 在了解一个类的编译-加载-内存分配-初始化所有过程前,要先了解jvm的内存模型.这样对整个java体系可能会更加便于理解.当然,如果不理解这些,也是没关系的,照样可以进行java开发. 二.jvm内存模型 1.根据自己的理解举个最简单的例子,一个main方法启动,进程运行,在这个过程中,会调用方法.开启多个线程.

jvm运行时内存解析

一.jvm的概念 在了解jvm的概念之前,我们先来了解java平台的逻辑结构,图片来自<深入java虚拟机> 从图中我们可以看到jdk包含了jre,java语言和java开发工具和Api,jre包含了java运行的基础类库和java虚拟机,java虚拟机支撑着java程序的运行. jvm(java virtual machine)翻译为java虚拟机,从字面上来理解,jvm就是一个虚拟的机器,其实类似于一个操作系统,通过软件去虚拟出一个虚拟机,帮助我们管理计算机的内存和调用计算机的硬件等等.而

JVM运行时数据区与JVM堆内存模型小结

前提 JVM运行时数据区和JVM内存模型是两回事,JVM内存模型指的是JVM堆内存模型. 那JVM运行时数据区又是什么? 它包括:程序计数器.虚拟机栈.本地方法栈.方法区.堆. 来看看它们都是干嘛的 程序计数器:保存当前线程执行的指令的地址(大意如此). 虚拟机栈:由栈帧组成,而每个栈帧又包括局部变量表.操作数栈.动态连接(调用其他方法).出口(被调用时返回值) -- 每个栈帧就代表了一个方法的执行. 本地方法栈:类似虚拟机栈,只不过方法改成了native方法. 方法区:保存了类的各种信息.类的

JVM运行时数据区

本篇主要介绍一下,JVM运行时数据区的内容. 首先大概介绍一下下图所示的内容.JVM运行时数据区主要分为了两大部分的内容:线程共有的方法区(Method Area)和堆(Heap).线程私有的虚拟机栈(VM Stack),本地方法栈(Native Method Stack)和程序计数器(Program Counter Register).在数据区下面的执行引擎中又包含了:即时编译器(JITCompiler)和垃圾收集器(GC).GC主要用于回收线程共享的区域(方法区和堆),对于私有的内存区域则方

JVM【第二回】:【JVM运行时数据区域详解】

上一回对JVM运行时数据区域的组织结构进行了概述,这一回将对各个组成进行详解. 程序计数器[Program Counter Register] 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器.在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支.循环.跳转.异常处理.线程恢复等基础功能都需要依赖这个计数器完成. 由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的

[转]JVM运行时内存结构

目录[-] 1.为什么会有年轻代 2.年轻代中的GC 3.一个对象的这一辈子 4.有关年轻代的JVM参数 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描.而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这样就会

jvm特性与原理----------&gt;jvm运行时数据区分区

1.概述: 内存分区:JVM会把自己所管理的所有内存区域进行分区. 各个区域的服务对象 各个区域中分别存放了什么内容 存放的数据是如何创建的 这些数据在各个区域中存放,存储的布局是什么样的 如何访问存放在不同内存区域的数据 各个区域的创建和销毁时间 随着进程的启动和结束而创建和销毁 随着线程的启动和结束而创建和销毁 各个区域服务过程中可能产生的问题(异常) 各个区域中可能产生的异常 如何解决上述各种异常 2.JVM内存分区 3.JVM内存各个区域的比较   JVM内存分区(JVM运行时数据区)

JVM 运行时内存结构

  1.JVM内存模型       JVM运行时内存=共享内存区+线程内存区 1).共享内存区       共享内存区=持久带+堆       持久带=方法区+其他       堆=Old Space+Young Space       Young Space=Eden+S0+S1 (1)持久带       JVM用持久带(Permanent Space)实现方法区,主要存放所有已加载的类信息,方法信息,常量池等等.可通过-XX:PermSize和-XX:MaxPermSize来指定持久带初始化

JVM运行时数据区域分析

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁. 原文链接:http://sparkyuan.me/2016/04/22/JVM运行时数据区域/ ,转载请注明出去 程序计数器(PC) 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码行号指示器. - 当前线