什么是 Java 和 Java 的跨平台原理

什么是 Java 和 Java 的跨平台原理

Java 是众多编程语言的一种,通过它可以开发计算机程序软件。QQ 就是一个计算机程序。目前网站也是程序软件的一种,网站早就不是以前的纯 HTML 时代了,任何程序都是通过某一种语言开发出来的。

哪些知名网站使用 Java 开发?

Java 目前市场占有率非常大,很多公司的产品都以 Java 语言为主来开发,比如:

  • 京东——以前是 .NET,现在慢慢过渡到 Java
  • 淘宝
  • 很多银行系统

理解 Java 的跨平台

大家用过 QQ 吧?在 Windows 上面安装 QQ,我们需要下载一个 Windows 版本的 QQ。如果我们的操作系统是 Linux,则我们就无法使用 Windows 版本的 QQ 了,我们需要下载一个 Linux 版本的 QQ。这是为什么?因为 QQ 是使用 C++ 开发出来的,而 C++ 开发出来的程序可以直接编译成某个操作系统的可执行程序。如果我们使用 Windows 的 QQ,则它是编译成 Windows 可执行程序。

而 Java 语言和 C++ 不一样,它不是直接编译为机器语言,而是编译为一种 .class 字节码,然后字节码再运行在 JVM(Java 虚拟机)上,虚拟机再把 .class 转换为对应操作系统的机器语言。

跨平台的关键就是虚拟机,因为虚拟机有很多,每个平台都不一样。

假设 QQ 是用 Java 开发的:

Java 源码 ---》编译---》.class 字节码Code language: CSS (css)
  • Windows 版本的 JVM
  • Linux 版本的 JVM

这就是跨平台、一次编译处处运行。比如 Java 开发的财务系统:

  • 运行在安装了 Windows 版 Java 虚拟机的电脑
  • 运行在安装了 Linux 版 Java 虚拟机的 Linux 电脑

编译与运行过程

  • 编译过程:javac 命令,把 .java 文件转换为 .class 文件
  • 运行过程:java 命令,加载 .class 文件到 JVM,然后运行 .class 文件

虚拟机是 Sun 公司(Oracle)提供的,不需要我们程序员纠结,有很多很多版本的虚拟机。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注