Java如何实现跨平台

摘要:
为了解决这个问题,Java使用了另一种解决方案,这也是Java的一个主要特性:“一次编写,在任何地方运行”,即“编译一次,在任何位置运行”。这意味着您不必为每个平台编写代码,Java程序可以在任何平台上运行。基本思想如下:Java跨平台原理从上图可以看出,与系统相对应的软件工具——虚拟机已经安装在不同类型的系统上,这是跨平台的关键。

在前面讲解编程语言的时候我们看到,通过引入编译器,解决了使用机器语言编程带来的问题。但这有待来了另一个问题:不同的平台(你可以理解成CPU不同、操作系统不同)所能理解的二进制机器指令是不一样的,编译器只能针对某个特定目标平台进行编译,一旦编译完成生成的可执行程序只能在目标平台上运行,换到其它平台就不能运行了。

针对这一问题,Java使用了另一种方案,这也是Java的一大特色:“write once, run anywhere”,即“一次编译,到处运行”。就是说你不用专门为每个平台写一份代码,你写的Java程序在任何平台都能跑起来。基本思路大概是这样的:

Java如何实现跨平台第1张

Java跨平台原理

从上图可以看出,在不同类型的系统上又安装了一个与系统对应的软件工具——虚拟机(Java Virtual Machine,简称JVM),这个就是跨平台的关键。Java程序的运行流程是:程序员写了源代码(.java后缀),然后经过编译器(javac)编译成字节码文件(.class后缀,二进制文件,跨平台),字节码是所有虚拟机都能理解的中间文件。软件想要在哪个平台运行,就把.class文件交给该平台的虚拟机去运行。虚拟机不跨平台,每个平台都有对应的虚拟机。所以对“write once, run anywhere”更准确的理解是,“一次编译,到处装虚拟机,所以到处运行”。

免责声明:文章转载自《Java如何实现跨平台》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SqlServer性能优化(一)解析如何利用ElasticSearch和Redis检索和存储十亿信息下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# 关键字extern用法

修饰符用于声明在外部实现的方法。extern 修饰符的常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 属性一起使用;在这种情况下,该方法还必须声明为 static,如下面的示例所示:[DllImport("avifil32.dll")]private static extern void AVIFileInit();注意ext...

Vmware centos 虚拟机 磁盘扩容

一,lvm ext4 扩容 1,首先关闭虚拟机,在vSphere Client 将硬盘大小增加或者新增一块硬盘 (从原来10G增加到50G) 2,开机   此时,df -hT只显示原来的磁盘大小      使用 fdisk /dev/sda  然后按 p 可以打印查看已经扩展的空间 3,分区   fdisk /dev/sda   按 n ;再按 3 (如...

从硬盘安装Linux操作系统

从硬盘安装Linux操作系统 《中文版Linux 桌面操作系统初级教程》郭守华 宋雪娇 编著 Linux操作系统支持多种安装方式。本章将讨论从硬盘安装对红旗Linux、共创Linux等各种版 本的Linux都适用的通用方法。从硬盘安装Linux操作系统,首先要准备安装包,Linux操作系统的安 装包通常是一个或多个ISO镜像文件(一般通过网络下载就可...

linux应用之gcc环境的安装

我们知道,用yum install gcc可以安装gcc编译环境,关于 GCC 在 CentOS 下通过 yum 安装默认版本号,CentOS 5 是 4.1.2;CentOS 6 是 4.4.7;CentOS 7 是 4.8.3。 很多时候在编译安装软件都需要高版本的 GCC,否则就会报错。那么如何升级 GCC 的版本呢? 首先要确认升级到的 GCC 版...

VirtualBox安装及使用说明和虚拟机安装XP系统图文教程

virtualbox是一款开源的虚拟机软件,它能够支持多种操作系统的安装如:Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系统作为client操作系统,而且最新版本号:VirtualBox-4.1.18-78361(2012-6-20公布)还支持Android 4.0系统,更大程度的给予使用者们便利,它的功能十分强大且...

Gsoap编译

gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。gSOAP支持大多数平台,包括嵌入式系统和小系统。 你首先要定义好c/s通讯的函数接口,通过这些函数接口gSOAP就可以生成server端和client端的框架。生成的客户端(服务端)内部API可以将接收到的xml...