浅谈JAVA平台三个版本以及JAVA是如何实现跨平台操作的。


Java SE、Java EE、Java ME三者的区别

1. Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。

2. Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。

3. Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。

说得更简单点

Java SE 是做电脑上运行的软件。

Java EE 是用来做网站的-(我们常见的JSP技术)

Java ME 是做手机软件的。 

JAVA语言为什么能跨平台?

因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。Java虚拟机(Java Virtual Machine) 简称JVM。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。

因为它有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台。 

java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。  

java是先把java文件编译成二进制字节码的class文件,jvm就解释执行class文件。  

就是因为java是运行在jvm上的,所以它的代码就能不经修改,就能在不同平台的jvm上运行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm)  

假如用windows移植到UNIX,只需把java文件是UNIX的jvm上编译成class文件,然后用jvm运行就可以了. 

java语言编写的程序要先经过编译的,但这个编译不是生成特定平台的机器码,而是生成一种与平台无关的字节码。

java语言里负责解释执行字节码文件的是Java虚拟机(Java Virtual Machine)。JVM是运行字节码文件的虚拟计算机。所有平台上的JVM向编译器提供相同的编程接口,而编译器只需面向虚拟机,生成虚拟机能理解的字节码,然后由虚拟机解释执行。之所以说Java跨平台是因为字节码与平台无关,但不同平台的JVM是不同的,但它们向编译器生成的Java字节码程序都提供了相同的接口,但它们适应不同的平台的接口不同。JVM是Java跨平台的关键,只要为不同平台实现了相应的虚拟机,那编译生成的相同的字节码文件就可以被解释后执行了。相同的字节码在不同的平台上是不能直接运行的,要通过JVM这个转换器来解释执行。

总结:Java跨平台,原因是相同的字节码文件在不同的平台上的不同的Java虚拟机解释执行的,没有虚拟机,Java也就不能实现所谓的跨平台操作了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM