`

jvm概述

    博客分类:
  • jvm
jvm 
阅读更多

 

1.jvm内存使用

运行时数据区,存储元数据(创建对象,方法参数,返回值,运算中间结果)

jvm实例有一个方法区和一个堆

   方法区:class中的类型信息(类数据),静态变量

   堆:运行时创建的对象

线程 - PC寄存器和栈

       (java:下一条指令,局部变量,参数,返回值,中间结果,非java:依赖实现)

java栈:许多栈帧stack frame 帧frame

(一个栈帧包含一个方法,调用一个方法,压入一个栈帧到栈中)

使用栈存储中间数据 , 栈是向下增长

 

2.类型 : 

基本类型

引用类型

 

3.类状态器子系统:

启动类装载器,用户自定义类装载器

(用户自定义类装载器,Class类的实例都放在堆上)

 

4.jvm启动过程:

装载 class文件

连接 验证,分配内存,解析

初始化

 

5.方法区(堆上特殊的区域):

所有线程都共享方法区

 

6.堆(一个jvm实例,只有一个堆):

所有线程所创建的类实例和数组

headoffish一种堆设计:一个句柄池,一个对象池;引用类型变量指向句柄池(指向对象池的指针,指向类数据的指针)

一种堆设计:引用类型变量指向堆,每个对象数据包括一个指向特殊数据结构的指针

数据结构位于方法区,两部分:指向对应类数据的指针,此对象的方法表(方法数据的指针数组)

 

 

7.栈

一个线程启动一个java栈,栈以栈帧为单位

当前方法使用的栈帧为当前帧,当前方法所属类为当前类,当前类的常量池为当前常量池

线程执行一个方法时,它会跟踪当前类和当前常量池

 

当线程调用一个java方法时,虚拟机都会在该线程的java栈中压入一个新帧,新帧保存局部变量,中间运算结果,参数等数据

当方法return,抛出异常时,新帧出栈;上一个方法为新栈帧

 

在栈中存储变量(对象引用(包括this),byte char short都是int,long double是两个)

所有对象都是引用传递

(栈帧指令在PC寄存器中,帧中指令在操作数栈中)

 

栈帧组成:

局部变量区,是字节数组,存储变量,用索引来访问 (指令存储变量索引)

操作数栈:是字节数组,存储指令,只有压栈、出栈操作

           他是jvm的工作区,中间运算在这里完成,如1+2,会出栈两个值,运算后,压入栈

栈帧数据区:访问常量池(存储指向常量池的指针,解析指向类,接口的符号)

            负责方法完成,调用操作下一个栈帧的指令(设置PC寄存器中),以及压入结果到下一个栈帧

            负责异常,抛出异常,找到匹配的catch,或是抛给下一个帧         

           

本地方法栈

 

垃圾收集

1.gc功能:

负责进行对象的内存释放,以及处理堆碎块,处理在活动对象之间的空闲内存;

2.gc算法:

检测垃圾对象,回收垃圾对象所使用的堆空间

   2.1 检测算法:建立一个根对象的集合,和根对象有通路的是活动的,其他对象是垃圾

      引用计数收集器:计数引用个数,0的时候为垃圾。互相引用永远释放不了,每次引用都要有开销

      跟踪收集器:从根节点开始的引用图,遍历每个引用数,并标记;没有被标记的释放

      压缩收集器:

1
0
分享到:
评论

相关推荐

    JVM详细概述与优化大全.zip

    一、JVM概述 Java虚拟机是Java平台的核心组成部分,它负责执行字节码,提供了一个跨平台的运行环境。JVM通过类装载器加载类,解释执行字节码,并管理内存区域,包括堆、栈、方法区等。了解JVM的工作机制对于编写高...

    狂神说JVM探究.rar

    1. **JVM概述**: - JVM是Java平台的核心组成部分,它是一个运行Java字节码的虚拟机,负责执行Java程序。 - JVM实现了Java的跨平台特性,即“一次编写,到处运行”。 2. **类加载机制**: - 类的生命周期包括...

    jvmjava,java实现的JVM。.zip

    一、JVM概述 Java虚拟机(JVM)是Java平台的核心,它负责执行字节码,提供了内存管理、类加载、垃圾回收等功能,确保了Java的“一次编写,到处运行”的特性。JVM通过解析.class文件中的字节码,将其转换为机器码,...

    JVM基础.doc

    #### 一、JVM概述与HotSpot简介 Java虚拟机(JVM)是Java技术的核心组成部分之一,它为Java程序提供了运行时环境。本节将详细介绍JVM的基本概念及其核心技术——HotSpot。 **HotSpot VM** 是Oracle公司提供的一个高...

    JVM Diagnostics Guide 1.4.2

    1. **JVM概述**:介绍Java虚拟机的原理和作用,包括解释器、编译器、垃圾收集器以及类加载机制。 2. **内存模型**:详细讲解JVM内存结构,如堆内存(Heap)、栈内存(Stack)、方法区(Method Area)、本地方法栈...

    jvm

    #### JVM概述 JVM(Java Virtual Machine)是运行Java字节码的虚拟机,它为Java程序提供了平台独立性,使得Java程序可以在任何支持JVM的平台上运行而无需重新编译。JVM的主要组成部分包括类加载器、运行时数据区、...

    java11-jvm白皮书

    一、JVM概述 Java虚拟机(JVM)是Java平台的核心组成部分,它负责执行Java程序。在Java 11中,JVM继续提供跨平台的兼容性和高效的运行环境。它将Java源代码编译成字节码,然后在运行时动态地解释或即时编译为机器码...

    jvm课程ppt

    一、JVM概述 Java虚拟机作为一个抽象的计算机,它负责解析字节码并执行Java程序。JVM的主要功能包括类加载、动态链接、内存管理、代码执行等。了解JVM的基本架构和工作流程对于理解Java程序的运行机制至关重要。 二...

    jvm原理及调优

    #### 一、JVM概述 JVM(Java Virtual Machine,Java虚拟机)是Java编程语言的基础,它作为一种软件层面的抽象计算机,能够在多种操作系统平台上执行Java字节码程序。Java编译器的目标是生成能够被JVM理解的字节码...

    jvm.rar_jvm

    1. **JVM概述**: JVM是Java语言的执行引擎,它是Java平台的核心组成部分,负责解释和执行Java字节码。它的设计目标是实现跨平台的“Write Once, Run Anywhere”(一次编写,到处运行)特性。 2. **类加载机制**:...

    实战JAVA虚拟机 JVM故障诊断与性能优化

    一、JVM概述 Java虚拟机是Java应用程序的运行环境,它负责解析字节码并执行程序。JVM的核心功能包括类加载、内存管理、垃圾收集以及线程调度等。理解JVM的工作原理对于提高Java应用的性能至关重要。 二、JVM内存...

    jvm瓶颈定位 java jvm 学习

    1. **JVM概述** - JVM的作用:JVM作为Java程序的运行环境,负责解释执行字节码,提供垃圾回收机制,内存管理和多线程支持。 - 类加载机制:JVM通过类加载器加载类文件,包括启动类加载器、扩展类加载器和应用程序...

    JVM学习笔记(一)

    #### 一、JVM概述与工具使用 JVM(Java Virtual Machine)是Java语言的核心组成部分之一,它为Java程序提供了一个跨平台的运行环境。本篇学习笔记主要介绍如何利用一系列工具来查看和监控JVM的各种运行时信息,包括...

    JVM培训ppt

    **一、JVM概述** Java虚拟机允许程序在任何支持Java的平台上运行,实现了“一次编写,到处运行”的目标。JVM主要包括以下几个部分: 1. **类装载器(Class Loader)**:负责加载类文件到JVM中,确保类的唯一性。 2....

    JVM体系结构与GC调优

    1. **JVM概述** - JVM的作用:解释字节码、执行Java程序、内存管理等。 - JVM的主要组件:类加载器、运行时数据区、执行引擎、本地方法接口和本地库。 2. **运行时数据区** - **堆**:所有对象实例都在这里分配...

    java模拟jvm

    一、JVM概述 Java虚拟机是一种抽象的计算机,它执行字节码(.class文件),这是Java源代码经过编译后的中间表示。JVM提供了内存管理、类加载、安全控制等功能,确保Java程序具有跨平台性。 二、堆栈管理 1. **方法...

    mini-jvm使用 Java 8 实现 jvm

    二、mini-jvm概述 mini-jvm是为教育和学习目的设计的,它通过Java 8实现了一个简化的虚拟机模型。这个模型能够解析并执行基于Java字节码的简单程序。通过研究和实现这样一个迷你版本的JVM,开发者可以深入了解JVM的...

    JVM的工作原理及垃圾回收机制介绍

    #### 一、JVM概述及原理 **1.1 JVM概述** Java Virtual Machine (JVM),即Java虚拟机,是一种虚构的计算机,在实际的计算机硬件上仿真模拟出的一套完整的计算机系统,用于执行Java字节码。JVM的设计实现了Java语言...

    JVM知识图谱.pdf

    #### 一、JVM概述与讲师介绍 - **JVM**:Java Virtual Machine,是运行Java字节码的虚拟机环境。 - **讲师介绍**:本课程将由具有多年Java开发经验及JVM研究背景的专业讲师主讲。 #### 二、课程整体介绍 - **目标...

    深入理解JVM

    1. **JVM概述**:Java虚拟机是Java平台的核心组成部分,它负责执行Java字节码,为Java程序提供跨平台的运行环境。JVM的设计目标是实现“一次编写,到处运行”。 2. **类加载机制**:JVM通过类加载器将.class文件...

Global site tag (gtag.js) - Google Analytics