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的时候为垃圾。互相引用永远释放不了,每次引用都要有开销
跟踪收集器:从根节点开始的引用图,遍历每个引用数,并标记;没有被标记的释放
压缩收集器:
相关推荐
一、JVM概述 Java虚拟机是Java平台的核心组成部分,它负责执行字节码,提供了一个跨平台的运行环境。JVM通过类装载器加载类,解释执行字节码,并管理内存区域,包括堆、栈、方法区等。了解JVM的工作机制对于编写高...
1. **JVM概述**: - JVM是Java平台的核心组成部分,它是一个运行Java字节码的虚拟机,负责执行Java程序。 - JVM实现了Java的跨平台特性,即“一次编写,到处运行”。 2. **类加载机制**: - 类的生命周期包括...
一、JVM概述 Java虚拟机(JVM)是Java平台的核心,它负责执行字节码,提供了内存管理、类加载、垃圾回收等功能,确保了Java的“一次编写,到处运行”的特性。JVM通过解析.class文件中的字节码,将其转换为机器码,...
#### 一、JVM概述与HotSpot简介 Java虚拟机(JVM)是Java技术的核心组成部分之一,它为Java程序提供了运行时环境。本节将详细介绍JVM的基本概念及其核心技术——HotSpot。 **HotSpot VM** 是Oracle公司提供的一个高...
1. **JVM概述**:介绍Java虚拟机的原理和作用,包括解释器、编译器、垃圾收集器以及类加载机制。 2. **内存模型**:详细讲解JVM内存结构,如堆内存(Heap)、栈内存(Stack)、方法区(Method Area)、本地方法栈...
#### JVM概述 JVM(Java Virtual Machine)是运行Java字节码的虚拟机,它为Java程序提供了平台独立性,使得Java程序可以在任何支持JVM的平台上运行而无需重新编译。JVM的主要组成部分包括类加载器、运行时数据区、...
一、JVM概述 Java虚拟机(JVM)是Java平台的核心组成部分,它负责执行Java程序。在Java 11中,JVM继续提供跨平台的兼容性和高效的运行环境。它将Java源代码编译成字节码,然后在运行时动态地解释或即时编译为机器码...
一、JVM概述 Java虚拟机作为一个抽象的计算机,它负责解析字节码并执行Java程序。JVM的主要功能包括类加载、动态链接、内存管理、代码执行等。了解JVM的基本架构和工作流程对于理解Java程序的运行机制至关重要。 二...
#### 一、JVM概述 JVM(Java Virtual Machine,Java虚拟机)是Java编程语言的基础,它作为一种软件层面的抽象计算机,能够在多种操作系统平台上执行Java字节码程序。Java编译器的目标是生成能够被JVM理解的字节码...
1. **JVM概述**: JVM是Java语言的执行引擎,它是Java平台的核心组成部分,负责解释和执行Java字节码。它的设计目标是实现跨平台的“Write Once, Run Anywhere”(一次编写,到处运行)特性。 2. **类加载机制**:...
一、JVM概述 Java虚拟机是Java应用程序的运行环境,它负责解析字节码并执行程序。JVM的核心功能包括类加载、内存管理、垃圾收集以及线程调度等。理解JVM的工作原理对于提高Java应用的性能至关重要。 二、JVM内存...
1. **JVM概述** - JVM的作用:JVM作为Java程序的运行环境,负责解释执行字节码,提供垃圾回收机制,内存管理和多线程支持。 - 类加载机制:JVM通过类加载器加载类文件,包括启动类加载器、扩展类加载器和应用程序...
#### 一、JVM概述与工具使用 JVM(Java Virtual Machine)是Java语言的核心组成部分之一,它为Java程序提供了一个跨平台的运行环境。本篇学习笔记主要介绍如何利用一系列工具来查看和监控JVM的各种运行时信息,包括...
**一、JVM概述** Java虚拟机允许程序在任何支持Java的平台上运行,实现了“一次编写,到处运行”的目标。JVM主要包括以下几个部分: 1. **类装载器(Class Loader)**:负责加载类文件到JVM中,确保类的唯一性。 2....
1. **JVM概述** - JVM的作用:解释字节码、执行Java程序、内存管理等。 - JVM的主要组件:类加载器、运行时数据区、执行引擎、本地方法接口和本地库。 2. **运行时数据区** - **堆**:所有对象实例都在这里分配...
一、JVM概述 Java虚拟机是一种抽象的计算机,它执行字节码(.class文件),这是Java源代码经过编译后的中间表示。JVM提供了内存管理、类加载、安全控制等功能,确保Java程序具有跨平台性。 二、堆栈管理 1. **方法...
二、mini-jvm概述 mini-jvm是为教育和学习目的设计的,它通过Java 8实现了一个简化的虚拟机模型。这个模型能够解析并执行基于Java字节码的简单程序。通过研究和实现这样一个迷你版本的JVM,开发者可以深入了解JVM的...
#### 一、JVM概述及原理 **1.1 JVM概述** Java Virtual Machine (JVM),即Java虚拟机,是一种虚构的计算机,在实际的计算机硬件上仿真模拟出的一套完整的计算机系统,用于执行Java字节码。JVM的设计实现了Java语言...
#### 一、JVM概述与讲师介绍 - **JVM**:Java Virtual Machine,是运行Java字节码的虚拟机环境。 - **讲师介绍**:本课程将由具有多年Java开发经验及JVM研究背景的专业讲师主讲。 #### 二、课程整体介绍 - **目标...
1. **JVM概述**:Java虚拟机是Java平台的核心组成部分,它负责执行Java字节码,为Java程序提供跨平台的运行环境。JVM的设计目标是实现“一次编写,到处运行”。 2. **类加载机制**:JVM通过类加载器将.class文件...