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

java 可以跨平台的原因是什么?

我们对比一个东西就可以了,那就是chrome浏览器。

MacOS/Linux/Windows上的Chrome浏览器,那么对于HTML/CSS/JS的渲染效果都一样的。

我们就可以认为Chrome+HTML/CSS/JS是跨平台的。

这里面,HTML/CSS/JS是不变的的,对于一个网页,它就一份。

但是在不同的操作系统上,Chrome 程序其实是不一样的。

然后用这些不一样的Chrome程序,来渲染同一份HTML/CSS/JS,实现同样的效果。

HTML/CSS/JS 是代码or程序,Chrome是代码运行的平台,也叫运行时Runtime。

同样的,对于Java来说,也有两个东西。

Java代码以及编译后的字节码,class文件或其打包的jar文件。

以及运行class或jar的容器,Java虚拟机,也叫JRE运行时。

不同操作系统平台上安装的JRE是不一样的。

但是给他们同样的一个class或者Jar文件,这些不同的虚拟机需要屏蔽差异,像Chrome运行HTML/CSS/JS一样,执行Java程序的效果最后是一样的。

这就是跨平台的原因,有一层用来承上启下的事儿,对上做抽象提供统一的调用方式和执行结果,对下屏蔽下层平台或操作系统的差异性,封装起来。

用一句最简单的话来说,不同平台的差异性由一个虚拟层来屏蔽掉了。

实际上,这个思路被用在各个地方,比如Linux操作系统跨不同的硬件平台。

再比如,Java的Swing和eclipse的swt/jface都可以做跨MacOS/Linux/Windows的桌面UI程序。

但是Swing和SWT/jface的方式又有非常大的差异。

Swing是完全自己重新画一套虚拟的界面出来,这样UI就全部统一了,缺点是效率低一点,优势是不管什么平台都是完全一致的。

SWT/jface则是直接复用当前操作系统原生或者某个native的UI,然后封装一层统一的操作模型,这样的优势是效率高一些,一个明显的缺点是,不同平台上明显效果是差异较大的。

java 可以跨平台的原因是什么? - kimmking的回答 - 知乎
https://www.zhihu.com/question/573490785/answer/36932325263

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

相关文章:

  • Solana应用开发常见技术栈
  • npm | Yarn | pnpm Node.js包管理器比较与安装
  • Linux下编译MFEM
  • 【团购核销】抖音生活服务商家应用快速接入②——商家授权
  • django宠物服务管理系统
  • vue2中使用three.js步骤
  • 部落商城App开发笔记 2024.11.21 实现进入app就是短视频
  • 解决.DS_Store 在项目一致无法排除,.gitignore里也不生效
  • MySQL-关键字执行顺序
  • 极客时间《Redis核心技术与实战》开篇词 知识点总结
  • TCP并发服务器
  • Debug-031-近期功能实现小结
  • Consumer Group
  • .NET架构师学习大纲
  • 【代码随想录】贪心
  • Harmony鸿蒙类似与Android中broadcast广播的api使用及释义
  • openGauss 6.0.0主备部署(企业版)
  • 【机器学习】聚类算法原理详解
  • Ubuntu20.04从零安装IsaacSim/IsaacLab
  • 基于Java Springboot大学校园旧物捐赠网站
  • 【Java 集合】Collections 空列表细节处理
  • 大数据实验4-HBase
  • deepin系统下载pnpm cnpm等报错
  • #Js篇:JSON.stringify 和 JSON.parse用法和传参
  • c#通过网上AI大模型实现对话功能
  • pymysql模块
  • WPF-模板和样式
  • 网络编程 day1.2~day2——TCP和UDP的通信基础(TCP)
  • element ui table 每行不同状态
  • 力扣--LRC 142.训练计划IV