什么是 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)提供的,不需要我们程序员纠结,有很多很多版本的虚拟机。
Previous: 如何学习java
Next: 理解 JDK、JRE、JVM