JVM-第一章-整体架构+生命周期

《JVM系列》 第一章 -- JVM与Java体系结构 创新的GCIH(GCinvisible heap)技术实现了off-heap,即将生命周期较长的Java对象从heap中移到heap之外,并且Gc不能管理GCIH内部的Java对象,以此达到降低GC的回收频率和提升Gc的回收效率的目的。在项目开发中,每层的实现可以使用不同的语言,接口对每一层开发者都是透明的,各种语言之间的交互不存在任何困难,就像使用自己语言的原生API一样方便,因为它们最终都运行在一个虚拟机之上。目前,有影响力的三大商用虚拟机之一,也号称是世界上最快的Java虚拟机。 阅读详情

第一章

1、JVM的整体架构

在这里插入图片描述

2、Java代码的执行流程

在这里插入图片描述

解释执行:就是逐行执行

编译执行:就是将热点代码的字节码,二次编译成机器码,缓存到方法区后下次直接调用

3、JVM的架构模型

Java 编译器输入的指令流基本上是基于一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构

  • 基于栈式架构的特点

    • 设计和实现更简单,适用于资源受限的系统
    • 避开了寄存器的分配难题:使用零地址指令方式分配(零地址:只有操作数,没有操作地址【对应的有 一地址,有一个地址,一个操作数】)
    • 指令流中的指令大部分是零地址指令,起执行过程依赖于操作栈。指令集更小,编译器容易实现。
    • 不需要硬件支持,可移植更好,更好实现跨平台性
  • 基于寄存器架构的特点

    • 指令集架构完全依赖硬件,可以可移植性差

    • 性能优秀,执行效率高

    • 花费更少的指令完成一项操作

4、JVM的生命周期

  • 虚拟机的启动:
    • Java虚拟机的启动是通过引导类加载器(bootstrop class loader)创建一个初始类(initial class)来完成,这个类是由虚拟机的具体实现指定的。
  • 虚拟机的执行:
    • 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序
    • 程序开始执行时它才运行,程序结束时它就停止
    • 执行一个所谓的Java程序时,真真正正在执行的是一个叫做Java虚拟机的进程
  • 虚拟机的退出:
    • 程序正常执行结束
    • 程序在执行过程中遇到了异常或错误而异常终止
    • 由于操作系统出现错误导致Java虚拟机进程终止
    • 某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且Java安全管理器也允许这次操作
JVM——类的生命周期 方法区中的instanceKlass使用c++编译的,java不太好操作,所以在堆中创建了堆区中通过java语言包装后的对象(再从方法区中拷贝的过程中会将一些内容剔除掉,只包含我们需要的。当我定义数据时使用了final关键字,这就代表了在以后这个数据的值不再会发生变化了,所以就会在准备阶段直接将代码中的值进行赋值。连接阶段的第一个环节是验证,验证的主要目的是检测Java字节码文件是否遵守了《Java虚拟机规范》中的约束。3、类加载器在加载完类之后,java虚拟机会将字节码中的信息保存到内存的方法区中。 阅读详情

相关推荐

【JVM 第一章 JVM和Java体系架构】

所谓虚拟机(Virtual Machine),就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。大名鼎鼎的Virtual Box,VMware就属于系统虚拟机,它们完全是对物理计算机的仿真,提供了一个可运行完整操作系统的软件平台。程序虚拟机的典型代表就是Java虚拟机,它专门为执行单个计算机程序而设计,在Java虚拟机中执行的指令我们称为Java字节码指令。无论是系统虚拟机还是程序虚拟机,在上面运行的软件都被限制于虚拟机提供的资源中。

qq_45142349的博客 892

第一章 JVM和Java体系架构

文章目录1.jvm前言2.开发人员的病态3.架构师在想什么4.为什么学习jvm5.Java VS C++6.TIOBE 排行榜7.Java 生态圈8.Java的跨平台性9.字节码10.多语言混合编程11.自己写个jvm12.Java的重大事件13.虚拟机介绍13.1 虚拟机概念13.2 Java虚拟机14.jvm的位置15.jvm的整体结构16.Java代码执行流程17.JVM架构模型17.1 两种架构的举例17.2 反编译字节码文件17.3 总结18.jvm生命周期 1.jvm前言 作为Java工程师

JavaAlenboy 1万+

华为昇腾310P3+deepseek蒸馏版性能调优:FP16精度优化全记录

本文详细介绍了在华为昇腾310P3硬件环境下优化DeepSeek蒸馏版模型FP16精度的关键技术路径。通过分层量化策略、内存分配优化和并行计算配置,显著提升模型推理性能,实现83%的并发处理能力提升,同时保持98.7%的原始模型准确率。

weixin_29074409的博客 349

JVM笔记:JVM的整体架构

jvm的整体架构

唐欢 432

基于32nm CMOS工艺的传输门D触发器设计及HSPICE仿真分析

根据半导体集成电路、利用Hspice软件以及数字电路等课程的知识,使用集成电路CMOS工艺完成触发器的设计,帮助初学者熟悉和掌握集成电路芯片电路设计及模拟方法和技巧

2302_81301620的博客 2452

俄罗斯方块 C++控制台版

一、创建方块 wstring tetromino[7]; tetromino[0].append(L"..X...X...X...X."); // Tetronimos 4x4 tetromino[1].append(L"..X..XX...X....."); tetromino[2].append(L".....XX..XX....."); tetromino[3].append(L"..X..XX..X......"); tetromino...

一只大鸽子的博客 1623

2. JVM架构及其生命周期

由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现; 缺点是性能下降,实现同样的功能需要更多的指令。

weixin_45267102的博客 314

基于STM32、HAL库的ZMOD4510AI4R气体传感器驱动程序设计

ZMOD4510AI4R是Renesas公司推出的一款数字空气质量传感器,主要用于检测臭氧(O₃)和总挥发性有机化合物(TVOC)浓度。(status & 0x80)) // 检查数据就绪位。// 等待测量完成 (实际应用中应该使用非阻塞方式)// 转换为ppb (简化转换,实际应根据传感器文档校准)* @param hzmod: ZMOD4510句柄。* @param tvoc: TVOC浓度(ppb)* @param ozone: 臭氧浓度(ppb)* @param hi2c: I2C句柄。

corlin6688的博客 311

JVM学习之JVM的整体架构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录JVM与Java体系结构作用特点JVM所处的位置JVM整体结构Java代码执行流程JVM架构模型基于栈式架构的特点基于寄存器的指令集架构的特点总结JVM的生命周期虚拟机的启动虚拟机的执行虚拟机的退出 JVM与Java体系结构 JVM:Java虚拟机,即跨语言的平台,多种语言可以通用的编译平台。Java虚拟机不关心运行在其内部的程序到底是使用何种编程语言编写的,只关心“字节码”文件,也就是说Java虚拟机拥有语言无关性。 虚拟机:就

红莲灭的博客 443

【知识分享】单端到混合S参数转换指南

信号完整性(SI)工程师几乎总是必须使用S参数,因为许多的高速接口和行业标准都正在转向串行链路架构,并使用基于S参数测量的频域限制指标,了解其工作过程将会很有意义。

一只豌豆象的博客 1580

Android开发工程师面试问题与参考答案

这是一份Android开发工程师职位面试指南,主要针对自研OS开发岗位。岗位要求3年以上独立开发经验,熟悉Android平台UI设计、四大组件和Java基础。面试问题覆盖五大核心领域:基础知识、开发经验、技术深度、问题解决和性能优化。文章提供了典型面试问题及专业参考答案,帮助应聘者准备关键技术点,如多线程处理、HashMap与ConcurrentHashMap区别、Handler机制等。同时建议应聘者结合项目经验展示优化能力,并注意公司提供完善的薪酬福利和团队文化。

郑伟强dev的专栏 894

JVM的整体架构

基本上是基于栈的指令集架构总结:由于跨平台的设计,Java的 指令都是根据栈来设计的。不同平台下CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。

weixin_60964305的博客 470

C++(Qt)软件调试---Windows下Qt使用dump定位崩溃位置(1)

在C++/Qt程序崩溃时,往往很难找到崩溃的原因,如果是稳定复现的问题还好,但是多数情况遇见的问题是随机出现的,这时想要快速找到问题并解决就需要通过dump文件定位崩溃位置。

mahuifa的博客 1万+

JVM的生命周期

在加载阶段,JVM会找到并加载Java字节码文件。加载阶段分为三个步骤:通过类的全限定名找到对应的字节码文件,创建一个与该类相关的Class对象,将类的静态数据结构存储在方法区中。加载完成后,JVM内存中就存在了一个Class对象,它包含了该类的所有属性和方法的信息。

Flying_Fish_roe的博客 1979

汇川H5U PLC通过EtherCAT总线控制SV660N和X3E伺服

首先我们看下系统硬件和软件配置:汇川H5U PLC的编程软件是:AutoShop V4.6.3.0 硬件:PLC H5U-1614MTD-A16,汇川伺服型号:SV660NS1R6I 电机型号:MS1H1-10B30CB 100W 220V 3000R/M 0.32N*M 1.3A,禾川伺服驱动器型号:SV-X3EB075A-A2 伺服电机型号:SV-X2MH075A-N2LA。

RXXW_Dor的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

jvm整体架构图文详解

今天学习了jvm三大组成部分(jvm类加载器,jvm内存结构,jvm执行引擎)的内存结构,现在把学习笔记总结记录一下,当作复习吧。 1.jvm的概念 JVM(虚拟机):指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。 jvm和VMware,Virtual Box等虚拟机一样,都是运行在操作系统之上的计算机系统。 首先我们来看看jvm的整体架构的划分: 大家在留意内存结构的时候是不是发现,本地方法栈,程序计算器和java栈颜色一样的,而方法区和堆却不

bhegi_seg的博客 3839

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

简单的梳理JVM(一)——JVM生命周期、类的生命周期

文章目录前言一、简介二、JVM的介绍JVM生命周期JVM进程和线程三、类的生命周期1.类的概念2. 生命周期2.1 加载2.2 连接2.2.1 验证2.2.2 准备2.2.3 解析2.3 初始化2.4 使用2.4.1 主动使用2.4.2 被动使用2.5 卸载总结 前言 最近闲来无事,索性去学习了一下JVM的基础知识。虽然知识浅显的学习,但是收获还是非常大的,于是决定记录下来。 一、简介 简单来说,JVM就是java虚拟机。它是是由软件技术模拟出计算机运行的一个虚拟的计算机。 主要作用是把我们编写的ja

笑里笑外~ 1282

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jvm的生命周期

突发灵感想到jvm 的生命周期,就花了一点时间来整理了一下,特此分享,如果分享不对,欢迎各位指正,谢谢!废话不多说,走起! jvm实例的诞生: 当一个程序启动,伴随的就是一个jvm实例的诞生,当这个程序关闭退出,这个jvm实例就随之消亡。如果在同一台机器上运行多个程序,将诞生相应数量的jvm实例,每个程序都有一个与之对应的jvm实例供其运行。任何一个拥有公开的(public)、静态的(static)、没有返回值(void)并且接受一个字符串数组参数(String[] args) 的main...

qq_40860932的博客 1155

【从零开始学JVM】第一章_JVM和java体系结构

JVM学习笔记,jvm和java体系结构

踢桃的成长之路 1331

Java JVM的基本概念、结构、生命周期

介绍了JVM的基本概念、JVM的生命周期、大概结构。

终生学习践行者 3209

JVM 的生命周期是怎么样的

JVM 的生命周期是指 JVM 实例从启动到终止的整个过程。一个 Java 应用程序通常对应一个 JVM 实例(除非使用 JNI 等技术在同一进程中创建多个 JVM 实例,但这并不常见)。

专注于技术分享 592

【JVM】类的生命周期

加载(Loading)连接(Linking)验证准备解析初始化(Initialization)使用(Using)卸载(Unloading)加载:根据类的全限定名把字节码文件的内容加载并转换成合适的数据放入内存种种那个,存放在方法区和堆上。连接验证:魔数,版本号等验证,一般不需要程序员关注。准备:为静态变量分配内存并设置初始值。解析:将常量池中的符号引用(编号)替换为直接引用(内存地址)初始化:执行静态代码块和静态变量的赋值。使用卸载静态变量使用final。

Decade_Faiz的博客 1230

JVM中对象的生命周期

 JVM中对象的生命周期在JVM运行空间中,对象的整个生命周期大致可以分为7个阶段:创建阶段(Creation)、应用阶段(Using)、不可视阶段(Invisible)、不可到达阶段(Unreachable)、可收集阶段(Collected)、终结阶段(Finalized)与释放阶段(Free)。上面的这7个阶段,构成了JVM中对象的完整的生命周期。下面分别介绍对象在处于这7个阶段时的不同情

dongliheng的专栏 1212

JVM生命周期

今天读书的时候,读到这样一句“……java虚拟机退出时……”,我心生疑问,难道JVM还有进入?带着疑问百度后得知了一些JVM声明周期相关知识。 1.jvm的生命周期 一个运行时的java虚拟机实例的天职就是运行一个java程序。 1.1.JVM实例的诞生 任何class文件的main函数都可认为是jvm示例的起点。当一个程序启动,伴随的就是一个jvm实例的诞生,当这个程序...

pp814274513的专栏 332
上一篇: SpringSecurity实现自定义登录接口
下一篇: JVM-第二章-类加载子系统
o独酌o
博客等级 码龄3年 324粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值