【第一章 虚拟机】

news2025/2/20 22:43:23

第一章 虚拟机

1. 虚拟机VM
①虚拟机就是一台虚拟的计算机,它是一款软件,用来执行一系列虚拟计算机指令。
②虚拟机分为系统虚拟机和程序虚拟机。系统虚拟机(比如VMware),它们完全是对物理计算机的仿真,提供了一个可运行完整操作系统的软件平台。程序虚拟机(典型代表,Java虚拟机),它专门为执行单个计算机程序而设计,在Java虚拟机中执行的指令我们称为Java字节码指令。Java技术的核心就是Java虚拟机,所有的Java程序都在Java虚拟机内部。
2. JVM 的位置:JVM是运行在操作系统之上的,它与硬件没有直接的交互。
3. JVM的整体结构
在这里插入图片描述

HotSpot VM是目前市场上高性能虚拟机的代表作之一。它采用解释器与即时编译器(JIT)并存的架构。
4.JVM的架构模型
Java编译器输入的指令流一种是基于栈的指令集架构,另一种是基于寄存器的指令集架构。
基于栈的指令集架构:适用于资源受限的系统,指令流中的指令大部分是零地址指令,其执行过程依赖于操作栈。不需要硬件支持。可移植型更好。
基于寄存器的指令集架构:指令集架构完全依赖于硬件,可移植性差,执行更高效。
javap –v xxx.class (反编译)
jps:打印当前程序中的进程。
栈:跨平台性、指令集小、指令多;执行性能比寄存器差。
5.JVM的生命周期
①虚拟机的启动:Java虚拟机的启动是通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的。
②虚拟机的执行
(1) 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。
(2) 程序开始执行时他才运行,程序结束时他就停止。
(3) 执行一个所谓的Java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程。
③ 虚拟机的退出
有如下几种情况:
(1) 程序正常执行结束。
(2) 程序在执行过程中遇到了异常或错误而异常终止。
(3) 由于操作系统出现错误而导致Java虚拟机进程终止。
(4) 某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且Java安全管理器也允许这次exit或halt操作。
(5) 除此之外,JNI(Java native interface)规范描述了用JNI invocation API来加载或卸载Java虚拟机时,Java虚拟机的退出情况。
6.虚拟机介绍:
①Sun Classic VM:世界上第一款商用Java虚拟机。内部只提供解释器,如果使用JIT编译器,就需要进行外挂。但一旦使用了JIT编译器,JIT就会接管虚拟机的执行系统。解释器就不再工作,解释器和编译器不能配合工作。
②Exact VM:虚拟机可以知道内存中某个位置的数据具体是什么类型。具备现代高性能虚拟机的雏形(编译器与解释器混合工作模式,探测技术)。
③HotSpot VM:
(1)不管是现在使用的JDK6,还是使用比较多的JDK8,默认虚拟机都是HotSpot。
(2)Sun/Oracle JDK和Open JDK的默认虚拟机。
(3)服务器、桌面到移动端、嵌入式都有应用。
(4)HotSpot指的就是它的热点代码探测技术。
(5)通过计数器找到最具编译价值代码,触发即时编译或栈上替换。
(6)通过编译器与解释器协同工作,在最优化的程序响应时间与最佳执行性能中取得平衡。
④JRockit VM:专注于服务器端的应用。JRockit内部不包含解析器实现,全部代码都靠即时编译器编译后执行。JRockit VM是世界上最快的JVM。
⑤IBM J9:市场定位于HotSpot接近,广泛用于IBM的各种Java产品,有影响力的三大商用虚拟机之一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3338.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

瑞芯微rk3568移植openbmc(三)

2022.11.04 更新 1、关于h264 novnc openbmc中使用的ipkvm其server端调用的是libvncserver库,而其web client端调用的则是novnc的库,既上篇研究修改了libvncserver后,再次继续研究了一下novnc。 Github搜索一圈以后,发现https://…

Java设计模式之单例模式详细讲解

设计模式与单例模式 1、什么是单例模式 ​ 单例模式是指保证某个类在整个软件系统中只有一个对象实例,并且该类仅提供一个返回其对象实例的方法(通常为静态方法) 2、单例模式的种类 ​ 经典的单例模式实现方式一般有五种 2.1 饿汉式 //…

【SpringBoot】SpringBoot整合SpringSecurity+thymeleaf实现认证授权(配置对象版)

一.概述 1.框架概述 Spring Security 是 Spring 家族中的一个安全管理框架,Spring Security 的两大核心功能就是认证(authentication)和授权(authorization)。 认证 :你是什么人。授权 :你能…

RHCE学习 --- 第一次作业

RHCE学习 — 第一次作业 首先我们先设置网卡开机自动启动 vi /etc/sysconfig/network-scripts/ifcfg-ens160 最下面修改ONBOOTyes 然后安装好chrony,配置/etc/chrony.conf文件,添加题目要求的时间服务器 然后设置一个例行性工作,每天早上九…

美国FBA海运专线究竟是什么?美国fba海运专线都有那些?

美国FBA海运专线究竟是什么?美国FBA特别航运线,顾名思义就是海运发送的特别货运线,那么它的收费标准是什么呢?一、美国FBA海运专线究竟是什么 美国FBA特别航运线,顾名思义就是海运发送的特别货运线,那么它的收费标准是什么呢? …

猿创征文|『编程与创作』10款颜值颇高的宝藏工具

🌟个人主页:Mymel_晗,一名喜欢鼓捣 Java 的在校学生。 🌟撸代码本来是一件枯燥的事情,而一款高颜值工具加持可能会让你事半功倍,今天就给大家推荐一下我在大学学习中发现的几款颜值工具~ 从写代码&#xff…

录音m4a怎么转换成mp3

有小伙伴问手机录音文件电脑上播放不了怎么办?这是很多小伙伴在用手机录完音后遇到最多的问题,尤其是那些第一次遇到这个问题的人,根本不知道这是什么原因导致的,还总以为自己的录音文件出了问题,回去检查发现手机上还…

03-Nginx性能调优与零拷贝

目录 Nginx 性能调优 零拷贝(Zero Copy) 零拷贝基础 A、 实现细节 B、 总结 零拷贝方式 A、 实现细节 B、 总结 A、 实现细节 B、 总结 A、 实现细节 B、 总结 Nginx 性能调优 在 Nginx 性能调优中,有两个非常重要的理论点(面试点…

【C++红黑树】带图详细解答红黑树的插入,测试自己的红黑树是否正确的代码

目录 1.红黑树的概念 1.1红黑树的特性(41) 2.红黑树的框架 3.红黑树的插入 3.1parent在grandfather的左边 3.1parent在grandfather的右边 4.测试自己的红黑树是不是平衡的 1.红黑树的概念 红黑树,是一种二叉搜索树,但在每个…

米联客FDMA3.1数据缓存方案全网最细讲解,自创升级版,送3套视频和音频缓存工程源码

米联客的FDMA数据缓存方案发布也有五六年了,但真正能熟练使用的兄弟却很少,其实还是没有好的例程作为参考和同熟易懂的讲解,这里我做如下解析: FDMA部分:这部分是米联客封装了用户接口的AXI4-FULL协议代码,…

xhs-web校验流程分析

经测试,cookie中需携带gid和timestamp2。参数整理有点乱,仅供参考。 xhsFingerprintV3,VERSION: ‘2.1.2’ 文章目录流程概述timestamp2滑块验证参数Params轨迹FNcaptcha deviceIdProfileDatax-s-commonx5生成x8生成x9生成smidV2a1x-b3-trac…

Jenkins配置linux节点

之前在Windows下安装Jenkins 但是通过windows节点进行构建有诸多的不便,于是想到通过Jenkins里添加linux节点,让构建的时候,使用远程的linux服务器构建 目录一、配置凭据二、配置节点一、配置凭据 Manage Jenkins → Manage Credentials→Je…

Cadence Allegro PCB设计88问解析(十三) 之 Allegro中artwork层的建立

一个学习信号完整性的layout工程师 作为layout工程师,我们经常接触到的是PCB文件,用Cadence设计的是.brd文件。但是我们发给板厂的都是gerber文件。这就涉及到在我们设计好PCB文件之后,怎么把这些文件给到板厂。也就是我们Allegro中的artwork…

Java知识点--IO流(上)

Java知识点--IO流(上)一、文件1、文件的含义2、文件流二、常用的文件操作1、创建文件对象相关构造器和方法2、创建文件案例演示(三种创建方法)3、获取文件相关信息的方法4、获取文件相关信息方法案例演示5、目录的操作与删除6、应…

电脑系统重装下载的系统在哪找到

​因为现在很多人都在使用小白一键重装系统,但是很多人都不太能够了解小白系统重装下载的系统在哪儿,下面是小编提供的具体位置供大家参考。 工具/原料: 系统版本:win10 品牌型号:联想yoga13 软件版本:小白…

期货开户有什么规定

有很多朋友刚刚接触到资本市场,当他们听到期货时,他们觉得它非常遥远和高端,这是普通人无法接触到的。但事实上,情况并非如此。期货是一种非常普通的金融产品,很容易接触。让我们来看看期货开户有哪些必要条件以及有什…

postman环境变量的设置

背景:由于我们项目接口入参都有加密,每次接口调试都得启动项目,运行项目才能把对应的参数给传到后台,然后后台再解密参数,才能进行接口调试,很麻烦(启动前端项目),如果接…

Linux篇【3】:Linux环境基础开发工具使用(中)

目录 一、Linux 编译器:gcc/g 的使用 1.1、知识拓展: 1.2、如何安装 C/C 标准静态库: 1.3、头文件与库文件: 1.4、静态库,静态链接,动态库,动态链接: 二、简单 vim 配置 2.1、…

【SpringBoot】一文了解SpringBoot热部署

文章目录前言手动启动热部署热部署种类手动进行热部署自动启动热部署热部署范围配置热部署的关闭总结🌕博客x主页:己不由心王道长🌕! 🌎文章说明:一文彻底搞懂SpringBoot热部署🌎 ✅系列专栏:Sp…

深入理解Java虚拟机:Java类的加载机制

本篇内容包括:Java 类的加载机制(Jvm 结构组成、Java 类的加载)、类的生命周期(加载-验证-准备-解析-初始化-使用-卸载)、类加载器 以及 双亲委派模型。 一、Java 类的加载机制 1、 Jvm 结构组成 Jvm 整体组成可分为…