JVM
文章平均质量分 70
JVM学习笔记,冲冲冲!!!
小鑫-Chen
持之以恒
展开
-
第九章 方法区
一、栈、堆、方法区之间的交互关系原创 2021-10-12 20:39:30 · 104 阅读 · 0 评论 -
第八章 堆
1、堆的核心概述 一个JVM实例只存在一个堆内存,堆也是内存管理的核心区域。 Java堆区在JVM启动的时候被创建,其空间大小也确定好可。堆是JVM管理的最大一块内存空间。(堆内存的大小是可以调节的,启动java程序时使用-Xms -Xmx参数即可) 《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上,它应该被视为连续的。 所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(Thread Local Allocation Buffer,TLAB) 《Java虚拟.原创 2021-10-12 11:25:00 · 130 阅读 · 0 评论 -
第七章 本地方法栈
Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。本地方法栈,也是线程私有的允许被实现称固定的 或者 可动态扩展的内存大小(在内存溢出方面是相同的)。本地方法是使用C语言实现的。它的具体做法是Native Method Stack中登记native方法,在Execution Engine 执行时加载本地方法库。当某个线程调用一个本地方法时,它就进入了一个全新的并且不受虚拟机限制的世界。它和虚拟机拥有同样的权限。并不是所有的JVM都支持本地方法。因为Jav原创 2021-10-08 13:04:15 · 110 阅读 · 0 评论 -
第六章 本地方法接口
什么是本地方法?简单来讲,本地方法就是一个Java程序调用非Java代码的接口。一个Native Method就是这样一个JAva方法,该方法的实现由非Java语言实现。在定义一个native method时,并不提供实现体(像定义一个Java interface),因为其实现体是由非java语言在外面实现的。本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C++程序。getClass方法就是一个本地方法:native关键字可以与其他所有java标识符连用,但是a原创 2021-10-07 21:59:02 · 85 阅读 · 0 评论 -
第五章 虚拟机栈
虚拟机栈出现的背景由于Java虚拟机跨平台的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。基于栈的设计的优点是:跨平台、指令集小,编译器容易实现。缺点是:性能下降,实现同样的功能需要更多的指令。内存中的栈和堆栈是运行时的单位,堆是存储时的单位也就是说,栈解决程序的运行问题 ,如何执行程序,如何处理数据等;堆解决程序的存储问题,即数据放在哪,怎么放。Java虚拟机栈Java虚拟机栈,早期也叫Java栈。每个线程在创建时都会创建一个虚拟机原创 2021-10-07 21:24:46 · 130 阅读 · 0 评论 -
第四章 程序计数器(PC寄存器)
作用PC寄存器的作用是存储下一条指令的地址,也就是即将要执行的指令的地址。然后会由执行引擎来执行下一条指令。介绍它是一块很小的内存空间,小到几乎可以忽略不计,也是运行速度最快的存储区域。 在JVM规范中,每个线程都有自己的程序计数器,它是线程私有的。它的生命周期与线程的生命周期是一致的。 任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的方法的地址。如果执行的是本地方法,则其值是undefined 它是程序控制流的指示器,分支、循环、跳转、异原创 2021-10-05 22:05:41 · 2297 阅读 · 0 评论 -
第三章 运行时数据区概述和线程
运行时数据区概述内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了JAVA在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对内存布局和管理机制可能存在部分差异。Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程一一对应的数据区域会随着线程的开始和结束而创建和销毁。在上图中,红色区域为多个线.原创 2021-10-05 20:51:51 · 97 阅读 · 0 评论 -
第二章 类加载子系统
xi tong类加载器子系统的作用类加载器子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。 加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)。类加载器(ClassLoader)的角色clas..原创 2021-10-05 15:25:55 · 71 阅读 · 0 评论 -
第一章 JVM与Java体系结构
前言对于大部分 Java 开发程序员,对于Java虚拟机的了解甚少如果将类库的 API 比作数学公式的话,那么 Java 虚拟机的知识就好比公式的推导过程。原创 2021-03-03 21:48:13 · 101 阅读 · 0 评论