示例解读Java的跨平台原理
首先简单的解释一下Java跨平台的特征,相当于说写一个Java程序论述上可以运行在不同的操作系统平台上面(此处的平台我们就简单的看成是操作系统平台)。下面我们用一些事例来说明它的好处。
我们先了解一些基本常识,计算机的由硬件和软件组成,软件又分为系统软件和应用软件。在硬件上面先安装系统软件,在系统软件上面安装应用软件,并且它们相互之间存在是否兼容的问题,如下(图3-1)所示:
(图3-1)
软件之间的兼容性问题我们看下面一个示例(图3-2):
(图3-2)
我们在下载软件的时候经常会看到上图这样的画面,不妨试想一下,你使用安卓手机下载一个苹果版本的小尛软件,能够正常安装运行吗?当然不行了。这样 的话我们可以理解成,为了满足不同操作系统的用户需要开发不同版本的小尛软件,工作量显然很大。如果开发一套小尛软件能够就直接能够运行在不同的操作系统 之上,那岂不是爽哉!
Java跨平台的原理我们可以分成这么几步来看:
① 先在不同的操作系统上分别安装一个JVM(Java虚拟机)软件;
② 把Java源文件(.java文件)编译成字节码文件(.class文件);
③ 再把字节码文件加载到JVM中运行,不管是什么操作系统都一样,只要是安装了Java的运行环境;
④ 注意:JVM本身也是软件,所以需要针对不同的操作系统开发不同版本的JVM,但是这一点不用我们程序猿操心,因为Java团队本身已经提供了很多主流操作系统支持的JVM。
综上所述,Java通过JVM(Java虚拟机)间接的实现了它的跨平台特性。
示例解读Java的跨平台原理的更多相关文章
- 全面解读Java NIO工作原理(4)
全面解读Java NIO工作原理(4) 2011-12-14 10:31 Rollen Holt Rollen Holt的博客 我要评论(0) 字号:T | T JDK 1.4 中引入的新输入输出 ( ...
- Java的跨平台原理
JAVA的跨平台原理 JAVA的跨平台原理 Java是一种简单易用.完全面向对象.有平台无关性.安全可靠的.主要面向Internet的开发工具.Java自从1995年正式面世以来,它的快速发展已经使整 ...
- 全面解读Java NIO工作原理(3)
全面解读Java NIO工作原理(3) 2011-12-14 10:31 Rollen Holt Rollen Holt的博客 我要评论(0) 字号:T | T JDK 1.4 中引入的新输入输出 ( ...
- 全面解读Java NIO工作原理(2)
全面解读Java NIO工作原理(2) 2011-12-14 10:31 Rollen Holt Rollen Holt的博客 我要评论(0) 字号:T | T JDK 1.4 中引入的新输入输出 ( ...
- 全面解读Java NIO工作原理(1)
全面解读Java NIO工作原理(1) 2011-12-14 10:31 Rollen Holt Rollen Holt的博客 我要评论(0) 字号:T | T JDK 1.4 中引入的新输入输出 ( ...
- 1,java的跨平台原理
简单讲一下java的跨平台原理: (1)为什么跨平台: 由于各OS支持的指令集各不相同,就需要程序在不同的平台执行不同的代码 (2)JAVA是如何实现的: ava开发了适合不同的OS及不同位数的jav ...
- Java语言跨平台原理
Java语言有一个很重要的原理叫:跨平台性. 在介绍Java语言的跨平台性之前首先要介绍一个很重要的概念:JVM: JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一 ...
- 快捷键和功能键、进入DOS命令行的方法、DOS命令讲解、java跨平台原理、JRE和JDK的定义、书写格式
快捷键和功能键A:键盘功能键* a:Tab* b:Shift* c:Ctrl* d:Alt* e:空格 * f:Enter* g:Window* h:上下左右键* i:PrtSc(PrintScree ...
- Java跨平台原理与Java虚拟机(JVM)
Java跨平台原理(字节码文件.虚拟机) C/C++语言都直接编译成针对特定平台机器码.如果要跨平台,需要使用相应的编译器重新编译. Java源程序(.java)要先编译成与平台无关的字节码文件(.c ...
随机推荐
- 去除Windows平台下每行代码的“^m”
有时在Windows里编写好的shell脚本放到Linux里不能运行了,打开编辑器显示正常,结果用vim打开发现每一行末尾都有^m,于是搜了一下解决办法. Windows上写好的文件,在Linux或者 ...
- 问题 D: C++ 习题 输出日期时间--友元函数
题目描述 设计一个日期类和时间类,编写display函数用于显示日期和时间.要求:display函数作为类外的普通函数,分别在Time和Date类中将display声明为友元函数.在主函数中调用dis ...
- 2017.11.23 利用Cookie管理实现自动登陆
Cookie管理 Cookie对象是由服务器产生并保存在客户端的信息,常用他记录用户个人信息以及个性化设置.用户每次访问网点时,应用程序就可以检索以前保存的信息 Cookie对象属于的类是javax. ...
- ceph-对象存储
ceph对象存储 作为文件系统的磁盘,操作系统不能直接访问对象存储.相反,它只能通过应用程序级别的API访问.ceph是一种分布式对象存储系统,通过ceph对象网关提供对象存储接口,也称为RADOS网 ...
- spring中使用i18n(国际化)
简单了解i18n i18n(其来源是英文单词internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称.在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件 ...
- 基于建模的视觉定位(SFM-Based Positioning)
具体方法来自我参与的这篇journal: Vision-Based Positioning for Internet-of-Vehicles, IEEE Transactions on Intelli ...
- 五、@property的参数
格式:@property(参数1,参数2)类型 名字: 参数可有可无 如:@property int age; @property (nonatomic,retain) UIButton* btn; ...
- C#继承的多态性
C#继承的多态性 当一个类A派生出新类B时,这个基类A在新类B中可以表现为不同的类型:用作它自己的类型.基类型,或者在实现接口时用作接口类型,我们将这种情况称为多态性. C#中的每种类型都是多态性的, ...
- javascript入门笔记4-数组
1.数组 var arr=new Array(); var myarray= new Array(8); //创建数组,存储8个数据. 注意: 1.创建的新数组是空数组,没有值,如输出,则显示unde ...
- jquery 筛选元素 (3)
.addBack() 添加堆栈中元素集合到当前集合中,一个选择性的过滤选择器. .addBack([selector]) selector 一个字符串,其中包括一个选择器表达式,匹配当前元素集合,不包 ...