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

五分钟理解Java跨平台原理(适合小白)

JVM通俗的理解

Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机,即JVM(Java Virtual Machine)是实现这一特点的关键。JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。大家可以简单的理解为JVM也是一个操作系统,只不过JVM中只运行java程序。

跨平台原理

一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

不知道大家发现了没有,我们在IDE中编写完java代码(.java)点击运行以后,会生成与其对应的同名.class文件!其实.java文件只是给我们人类程序员看的,真正告诉系统该如何运行代码的是.class文件!一个.java文件在不同的操作系统中会生成不同的.class文件,而处理这些.class文件的老大就是我们提前安装好的java安装程序!我们安装java程序时,首先就是选择不同操作系统对应的jdk,如下所示:

这就是Java的能够“一次编译,到处运行”的原因。具体如下图所示:

JVM执行程序的过程:

接下来我们就来简答的理解一下JVM运行java程序的步骤,主要分三步:

1类加载器加载.class文件(JVM把磁盘中的.class文件拿到内存中)

2运行时管理并分配内存(.class文件在JVM所分配的内存中运行)

3执行垃圾收集(JVM把不再使用的java对象干掉以便腾出内存空间给新的java对象使用)

我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!

http://www.lryc.cn/news/212068.html

相关文章:

  • 从初级测试工程师到测试专家,你的晋升路线是什么?
  • 合肥中科深谷嵌入式项目实战——人工智能与机械臂(四)
  • Zynq-Linux移植学习笔记之64- 国产ZYNQ在linux下配置国产5396芯片
  • 系统架构设计师-第19章-大数据架构设计理论与实践-软考学习笔记
  • 论坛搭建.
  • 三种前端埋点方式
  • html获取网络数据,列表展示 第二种
  • 【Python 算法】信号处理通过陷波滤波器准确去除工频干扰
  • Redis(08)| 线程模型
  • Java14-16新特性
  • 中兴再推爆款,双2.5G网口的巡天AX3000Pro+仅需299元
  • 【系统架构】架构风格专题
  • 【Qt】盒子布局、网格布局、表单布局和堆栈布局
  • GO语言,半自动打怪
  • 【Java 进阶篇】Java登录案例详解
  • Vue 菜单导航栏,轮播图
  • 讲述为什么要学习Adobe XD以及 Adobe XD下载安装
  • Netty复习:(1)Http server: hello world
  • 【Python 千题 —— 基础篇】加法计算
  • 基于纵横交叉算法的无人机航迹规划-附代码
  • D-Bus:数据类型
  • BI零售数据分析,告别拖延症,及时掌握一线信息
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • 论文范文:论基于架构的软件设计方法及应用
  • C语言 指针进阶笔记
  • 数据库认证 | Oracle OCP好考吗
  • 处理大数据的基础架构,OLTP和OLAP的区别,数据库与Hadoop、Spark、Hive和Flink大数据技术
  • 解决计算机msvcp120.dll文件丢失的5种方法,亲测有效
  • Python selenium交互
  • 基本微信小程序的体检预约小程序