java程序的可移植性

    1.java作为一种编程语言:源代码可移植性

    作为一种编程语言java提供了一种最简单同时也是人们最熟悉的的可移植性--源代码可移植。这就意味着任何一个java程序,不论它运行在何种cpu、操作系统或者java编译器器上都产生一样的结果。这是不是一个新概念,人们使用c或者c++也产生同样的效果,但是使用c或者c++的人们有太多的选择,在许多细节上它都没有严格的定义。这样就导致了同一段程序在不同的环境下会产生不同意外的结果。而java就不同了,由于严密的语义结构,而使编译器不承担这一职责。

    2.java作为一个虚拟机:cpu可移植性

    大多数编译器产生的目标代码只能运行在一种cpu(如Intel的x86系列),即使那种支持多种编译器的目标代码,也不能产生适合多种cpu的目标代码。

    而java不一样,java编译器产生的目标代码针对的是一种并不存在的cpu--java虚拟机,而不是一种具体的cpu。java虚拟机能掩盖不同cpu之间的差别,从而使java-code运行在安装有虚拟机的机器上。

  3.java作为一种虚拟的操作系统和图形用户界面:操作系统的可移植。

   即使经过重新编译,大多数的用C和C++编写的Windows程序也不能在Unix或Macintosh系统上运行。这是为什么呢?因为程序员在编写Windows程序时使用了大量的WindowsAPI和中断调用,而Windows程序对系统功能的调用与Unix和Macintosh程序有很大的差别,所以除非将全套WindowsAPI移植到其它操作系统上,否则重编译的程序仍不能运行。

 JAVA采用了提供一套与平台无关的库函数(包括AWT、UTIL、LANG等等)的方法来解决这个问题。就象JVM提供了一个虚拟的CPU一样,JAVA库函数提供了一个虚拟的GUI环境。

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java程序设计》课程的题库资料,由贺州学院整理,可供学生期末课程复习使用,也可以供相关任课教师出卷使用。 内容示例为: 1. JAVA的源代码中定义几个类,编译结果就生成几个以“.class”为后缀的字节码文件。( ) 答案:√ [考点范围] JAVA简介 2. Java程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。( ) 答案:√ [考点范围] JAVA简介 3. 无论Java程序包含几个类的定义,若该源程序文件以a.java命名,编译后只生成一个名为A的字节码文件。( ) 答案:× [考点范围] JAVA简介 4. Java字节码程序是可以在Java虚拟机上执行的。( ) 答案:√ [考点范围] JAVA简介 5. Java程序对计算机硬件平台的依赖性很低。( ) 答案:√ [考点范围] JAVA简介 6. Java可以用来进行多媒体及网络编程。( ) 答案:√ [考点范围] JAVA简介 7. Java语言具有较好的安全性和可移植性及与平台无关等特性。( ) 答案:√ [考点范围] JAVA简介 8. Java语言的源程序不是编译型的,而是编译解析型的。( ) 答案:√ [考点范围] JAVA简介 9. Java Application程序中,必须有一个主方法main(),该方法有没有参数都可以。( ) 答案:× [考点范围] JAVA简介 10. Java是面向对象的语言,对象是客观事物,对象与之是一一对应,它是很具体的概念。( ) 答案:× [考点范围] JAVA简介
Java可移植性是通过以下几个原理实现的。首先,Java提供了一种最简单同时也是人们最熟悉的可移植性-源代码移植。这意味着无论Java程序运行在何种CPU、操作系统或Java编译器上,都将产生相同的结果。这是因为Java语言具有严密的语义结构,编译器不承担处理不同环境的职责。\[1\]\[2\]其次,Java使用了Java虚拟机(JVM)作为运行环境。JVM提供了一个独立于操作系统和硬件平台的运行环境,使得Java程序的字节码可以在任何支持JVM的操作系统和硬件平台上运行。这种特性使得Java程序具有很高的跨平台性,可以在不同的操作系统和硬件平台上运行而不需要修改代码。\[3\]因此,Java可移植性是通过源代码移植和JVM的跨平台特性实现的。 #### 引用[.reference_title] - *1* [详细介绍JAVA可移植性](https://blog.csdn.net/weixin_29738537/article/details/113019954)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Java可移植性及其原理](https://blog.csdn.net/2301_78523177/article/details/131285945)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值