文档章节

java的夸平台性

Bony
 Bony
发布于 2016/05/14 18:00
字数 581
阅读 72
收藏 2

使用Java语言编写应用程序最大的优点在于“一次编译,处处运行”,然而这并不是说所有的Java程序都具有Java跨平台的特性,事实上,相当一部分的Java程序是不能在别的操作系统上正确运行的,

Java跨平台的原理

Java字节码的两种执行方式

1、即时编译方式:解释器先将字节码编译成机器码,然后再执行该机器码。

2、解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程序的所有操作。
 
 通常采用的是第二种方法。由于JVM规格描述具有足够的灵活性,这使得将字节码翻译为机器代码的工作具有较高的效率。对于那些对运行速度要求较高的应用程序,解释器可将Java字节码即时编译为机器码,从而很好地保证了Java代码的可移植性和高性能。

Java程序执行与C/C++程序执行的对比分析

如果把Java源程序想象成我们的C++源程序,Java源程序编译后生成的字节码就相当于C++源程序编译后的80x86的机器码(二进制程序文件),JVM虚拟机相当于80x86计算机系统,Java解释器相当于80x86CPU。在80x86CPU上运行的是机器码,在Java解释器上运行的是Java字节码。

Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。Java解释器实际上就是特定的平台下的一个应用程序。只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。当前,并不是在所有的平台下都有相应Java解释器程序,这也是Java并不能在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行。

© 著作权归作者所有

共有 人打赏支持
Bony
粉丝 11
博文 154
码字总数 98659
作品 0
深圳
QA/测试工程师
My java——JVM(java 虚拟机)一

JVM是Java Virtual Machine(Java虚拟机)的缩写。一般我们在学习java中会用到很多缩写名称,如JRE、JDK、SDK、JAVA SE、JAVA EE、JAVA ME、JAVA FX、还有j2se、j2ee、javaee5,我勒个去!多...

tngou
2013/03/13
0
2
新瓶装老酒–PHP结合Java构建Web应用的新思路

本文最早发布在CSDN的博客上,是我为LAJP写的第一篇文章,说明了当时创建LAJP的思路,现在 迁移到这里。 PHP和Java各自有着鲜明的特点: PHP简单、易学,开发动态网页效率高,草根文化气息浓...

刁忆飞
2010/06/03
0
0
1.3.2 java程序的运行机制和jvm

java语言比较特殊,由java语言编写的程序需要经过编译步骤,但这个编译步骤并不会生成特定平台的机器码,而是生成一种与平台无关的字节码(也就是*.class文件)。当然,这种字节码不是可执行...

Gooiem
2015/08/17
0
0
Java常识:IDE、JRE、JDK等字段的阐述

目前对这些最基本的常识都难以阐述,颇觉羞愧,果断整理出来。 IDE(Integrated Development 集成开发环境),集成开发环境(简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、...

MiniBu
2014/05/06
0
0
JVM学习心得体会 (第一天)

Java虚拟机 Java虚拟机(Java Virtual Machine) 简称JVM Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还...

seng
2013/06/25
0
3

没有更多内容

加载失败,请刷新页面

加载更多

给MySQL授权远程访问

putty登录服务器; 登录MySQL: mysql -u root -p 新建远程用户: CREATE USER 'myusername' IDENTIFIED BY 'mypassword'; 授权: grant all on *.* to john@'101.102.103.104' identified by......

sweethome
56分钟前
0
0
在t-io老巢造谣,不过有造谣的就会有反造谣的!

只发当事人的截图,不发表评论,以免有引导嫌疑 PS: 截图是由不同的人发过来的 本人已经不在此微信群 图3:有造谣的,就有反造谣的 图4是2018-09-23的t-io官方群的一个发言小统计,有助于让...

talent-tan
今天
99
0
heartbeat 资源

drbd+apache+heartbeat : http://blog.51cto.com/11838039/1827901 heartbeat双机热备的架设 : http://blog.51cto.com/11838039/1827560 对heaetbeat的深一步认识 : http://blog.51cto.co......

寰宇01
今天
4
0
Spring 转换 model 为 json 时增加属性

缘起 目前的项目中有个需求是在附件对象转换成 json 时增加个 url 属性,以前的方式是在返回附件对象或列表时候做一次统一处理,这次想看看 spring 或者 jackson fasterxml 是否自带类似功能...

郁也风
今天
4
0
10大PHP比特币开源项目

如果你是一个Phper,如果你希望学习区块链,那么本文列出的 10个开源的Php比特币项目,将有助于你了解在自己的应用中 如何加入对比特币的支持。 如果你希望快速掌握使用Php对接比特币钱包的方...

汇智网教程
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部