当前位置: 首页 > 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 )。

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

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

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

 

 

相关文章:

  • 网络原理与 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优缺点及数据丢失案例
  • 小额贷款网站怎么做/如何发布视频赚钱
  • 自己做的网站页面错误/沈阳关键词优化费用
  • 网站开发一般多钱/seo学途论坛网
  • 如何学做网站外包/百分百营销软件
  • 微企点建站平台介绍/百度页面推广
  • 自用电脑做网站/今日重要新闻