
JVM虚拟机
文章平均质量分 92
JVM虚拟机
_否极泰来_
人是有命运的,文化属性和作用在不同人身上的自然规律决定了命和运,改变客观条件,才能改变命运。你是你自己的救世主!——遥远的救世主
展开
-
JVM虚拟机详解(五)程序计数器(PC寄存器)PC Register
JVM虚拟机详解(五)程序计数器(PC寄存器)PC Register1. 概述Java 虚拟机可以同时支持多个线程的执行(jls17)。每个 Java 虚拟机线程都有自己的 pc (程序计数器)寄存器。在任何时候,每个 Java 虚拟机线程都在执行单个方法的代码,即该线程的当前方法(2.6)。如果这个方法不是本机的,那么 pc 寄存器就会包含当前正在执行的 Java 虚拟指令的地址。如果当前由线程执行的方法是本机的,那么 Java 虚拟机的 pc 寄存器的值是未定义的。Java 虚拟机的 pc 寄存器足原创 2022-03-01 14:48:12 · 551 阅读 · 0 评论 -
JVM虚拟机详解(四)运行时数据区概述及线程
JVM虚拟机详解(四)运行时数据区概述及线程1. 前言本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区也就是大厨做饭,我们把大厨后面的东西(切好的菜,刀,调料),比作是运行时数据区。而厨师可以类比于执行引擎,将通过准备的东西进行制作成精美的菜品内存是非常重要的系统资源,是硬盘和CP原创 2022-03-01 14:42:27 · 335 阅读 · 0 评论 -
JVM虚拟机详解(三)类加载器的分类
JVM虚拟机详解(三)类加载器的分类1. 类加载器概述JVM严格来讲支持两种类型的类加载器 。分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类类加载器,但是Java虚拟机规范却没有这么定义,而是将所有派生于抽象类ClassLoader的类加载器都划分为自定义类加载器无论类加载器的类型如何划分,在程序中我们最常见的类加载器始终只有3个,如下所示这原创 2022-03-01 14:36:34 · 439 阅读 · 0 评论 -
JVM虚拟机详解(二)类加载子系统
JVM虚拟机详解(二)类加载子系统1. 内存结构概述💡 注意:方法区只有HotSpot虚拟机有,J9,JRockit都没有2.类加载器子系统类加载器子系统作用:类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面原创 2022-03-01 14:30:17 · 725 阅读 · 0 评论 -
JVM虚拟机详解(一)JVM与JAVA体系统结构
JVM虚拟机详解(一)JVM与JAVA体系统结构1. Java生态圈Java是目前应用最为广泛的软件开发平台之一。随着Java以及Java社区的不断壮大Java 也早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。作为一个平台,Java虚拟机扮演着举足轻重的作用Groovy、Scala、JRuby、Kotlin等都是Java平台的一部分作为灯种文化,Java几乎成为了“开源”的代名词。第三方开源软件和框架。如Tomcat、Struts,MyBatis,Sprin原创 2022-03-01 14:23:35 · 347 阅读 · 0 评论 -
深入JVM虚拟机(六) JVM类加载机制
Java虚拟机把 描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶断。其中验证、准备、解析3个部分统称为连接(Linking)。原创 2017-06-28 15:00:22 · 620 阅读 · 1 评论 -
深入JVM虚拟机(四) Java GC收集器
1.1 Serial串行收集器:串行收集器主要有两个特点:第一,它仅仅使用单线程进行垃圾回收;第二,它独占式的垃圾回收。1.2 ParNew并行收集器:并行收集器是工作在新生代的垃圾收集器,它只简单地将串行回收器多线程化。它的回收策略、算法以及参数和串行回收器一样。并行回收器也是独占式的回收器,在收集过程中,应用程序会全部暂停。1.3 Parallel收集器:Parallel收集器类假于ParNew并行收集器,它使用复制算法的收集器。从表面上看,它和并行收集器一样都是多线程、独占式的收集器。但是,并行回原创 2016-05-18 14:30:29 · 4438 阅读 · 1 评论 -
深入JVM虚拟机(三) Java GC垃圾收集
Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对 JVM(Java Virtual Machine)中的内存进行标记,并确定哪些内存需要回收,根据一定的回收策略,自动的回收内存,永不停息(Nerver Stop)的保证JVM中的内存空间,放置出原创 2016-05-17 10:35:03 · 3123 阅读 · 0 评论 -
深入JVM虚拟机(二) JVM运行机制
JVM是Java程序运行的环境,同时是一个操作系统的一个应用程序进程,因此它有自己的生命周期,也有自己的代码和数据空间。JVM工作原理和特点主要是指操作系统装入JVM,是通过jdk中Java.exe来完成通过下面4步来完成JVM环境。1、创建JVM装载环境和配置。2、装载JVM.dll。3、初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例。4、调用JNIEnv实例装载并处理class类。原创 2016-05-13 16:44:50 · 3515 阅读 · 0 评论 -
深入JVM虚拟机(一) 初识JVM
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM遵循着冯·诺依曼体系结构的设计原理。冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由操作码和地址码组成,操作码决定了操作类型和所操作的数的数字类型,地址码则指出地址码和操作数。而JVM通过在操作系统上建立虚拟机,自己定义出来的一套统一的数原创 2016-05-13 16:00:05 · 6000 阅读 · 2 评论 -
深入JVM虚拟机(五) 性能监控工具
jps虚拟机进程状况工具:JPS(Java Virtual Machine Process Status Tool) 显示当前系统的java进程情况。用法:jps [ options ] [ hostid ]jinfo查看 java 配置信息工具:jinfo可观察运行中java程序的运行环境参数,参数包括Java System属性和JVM命令行参数;也可从core文件里面知道崩溃的Java应用程序的配置信息。用法:jinfo [ options ] pid生成对象的统计信息:并行生成Java应用程序的原创 2016-05-24 17:56:42 · 2896 阅读 · 0 评论