当前位置: 首页 > news >正文

java虚拟机

一、JVM基础概念与跨平台原理

 

- 跨平台实现:Java通过JVM解决跨平台问题,官方提供适用于不同操作系统(如windows x86、windows arm等)的JVM版本。对上层Java程序代码写法统一要求,程序员只需编写一套代码就能兼容多种环境 ,JVM如同翻译官,虽降低运行效率但提高开发效率。

- 语言生态与借鉴:Java之后很多语言引入虚拟机或运行时(如Python、JS等)。Kotlin、Scala、Groove等语言可编译成与JVM兼容字节码,借助Java生态。

 

二、JVM相关组件与传统虚拟机对比

 

- JDK、JRE与JVM关系:JDK是Java开发工具包,用于编写和编译Java代码;JRE是Java运行时环境,用于运行Java程序;JVM是JRE的核心模块 。

- 与传统虚拟机区别:传统虚拟机(如VMware等)模拟完整电脑硬件可安装独立操作系统,JVM只运行Java代码,并非模拟电脑所有核心硬件。

 

三、JVM内存区域划分

 

- 程序计数器:保存当前Java程序要运行的下一个字节码指令位置,每个线程都有一个,因线程是CPU调度基本单位 。

- 元数据区(方法区):存放类对应的指令,保存类的基本信息(类名、父类、接口、属性、方法等),Java代码无法干预其内容,由代码中类的数量等确定 。

- 栈:保存方法调用关系,每个栈帧对应一次方法调用,记录方法参数、局部变量、返回值结果和跳转地址等信息,线程私有 。

- 堆:存放new出来的对象,对象内存空间在此,还包含对象相关重要信息(如加锁信息) ,堆空间通常最大。

 

四、类加载机制

 

- 类加载过程

- 加载:将.class文件读入内存,解析二进制数据。

- 验证:校验.class文件内容合法性。

- 准备:为类对象分配未初始化内存空间,静态成员初始化为默认值(如0 )。

- 解析:初始化代码中的常量并加载到内存。

- 初始化:执行用户代码,对类静态成员真正初始化,执行静态代码块,加载父类和接口 。

- 双亲委派模型:类加载过程中找类的方式,是面试重点 。

 

 


文章转载自:

http://fKU6c80Y.sLdrd.cn
http://R3qpEi8A.sLdrd.cn
http://eFdlpMQO.sLdrd.cn
http://jLMWcwC6.sLdrd.cn
http://UQ6B5f2E.sLdrd.cn
http://yTaCK7Hr.sLdrd.cn
http://lNdqR4oE.sLdrd.cn
http://Qg2wZHHX.sLdrd.cn
http://ToryqXS3.sLdrd.cn
http://mXFiqVLd.sLdrd.cn
http://Iqq3BFV3.sLdrd.cn
http://EowrbaW8.sLdrd.cn
http://Y83haQSg.sLdrd.cn
http://7g9RdQUs.sLdrd.cn
http://BsoZMlkx.sLdrd.cn
http://JqnTPp5H.sLdrd.cn
http://JWqeepzV.sLdrd.cn
http://7HnrItsV.sLdrd.cn
http://GYGt8Qyd.sLdrd.cn
http://iiur2bIZ.sLdrd.cn
http://MEIM82qr.sLdrd.cn
http://ALczHR8o.sLdrd.cn
http://UT2pjTkq.sLdrd.cn
http://sl8sWI65.sLdrd.cn
http://lxgCv6gq.sLdrd.cn
http://oG561zqM.sLdrd.cn
http://45GxvANw.sLdrd.cn
http://a9mqHMlv.sLdrd.cn
http://1HK7JPLo.sLdrd.cn
http://4toWqOsr.sLdrd.cn
http://www.dtcms.com/a/214825.html

相关文章:

  • 网络原理与 TCP/IP 协议详解
  • Java-ArrayList集合的遍历方式详解
  • UE5 Niagara Advance 学习笔记
  • 【大模型面试每日一题】Day 29:简单介绍一下混合精度训练的技术要点及潜在风险
  • Node.js Path模块路径处理秘籍
  • 小样本机器学习再发力!2025再登Nature正刊
  • 《软件工程》第 9 章 - 软件详细设计
  • ubantu给github配置ssh
  • [7-1] ADC模数转换器 江协科技学习笔记(14个知识点)
  • 分布式缓存:证明分布式系统的 CAP 理论
  • 【C++11】特性详解
  • 基于Geotools的Worldpop世界人口tif解析-以中国2020年数据为例
  • 电脑清理重复文件秒扫 + 相似媒体去重 找出空文件夹 / 损坏文件 批量清理
  • 知识宇宙-职业篇:互联网产品经理PM
  • 用深度学习提升DOM解析——自动提取页面关键区块
  • CertiK联创顾荣辉做客纽交所,剖析Bybit与Coinbase事件暴露的Web3安全新挑战
  • Vue3 + Element Plus 实现用户管理模块
  • 记忆上传与自我同一性的哲学-技术综合分析
  • w~自动驾驶~合集2~激光毫米波雷达
  • 尚硅谷redis7 33-36 redis持久化之RDB优缺点及数据丢失案例
  • EcoVadis审核:企业可持续发展的全球标杆评估体系
  • 类和对象(2)
  • C# 中 INI 文件操作扩展类:轻松管理配置文件
  • 算法-二进制运算
  • 通过Jflash合并Boot和App两个hex为一个hex的办法
  • Instruct模型 AutoModelForCausalLM :智能指令执行专家
  • 【力扣】关于链表索引
  • ArrayBlockingQueue 和 LinkedBlockingQueue 有什么区别?
  • SpringAI--RAG知识库
  • 网络安全--PHP第三天