`
cucaracha
  • 浏览: 137675 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A8f3fa2f-18ce-3862-897a-5d2209197c90
Java NIO.2
浏览量:85814
7a076ba7-8ec8-3241-aa3c-67bb2f7856a2
Java EE 7 简明教...
浏览量:35650
社区版块
存档分类
最新评论

什么是 Java ?

阅读更多
如果有人问你“什么是 Java ?”,你可能会做出这样的回答“Java 就是 Java 语言、Java API、Java 字节码以及 Java 虚拟机的总称。”

好吧,这么说看起来也没什么错,不是吗?

Java 一出现就举着“一次编码处处运行”的大旗,这也是 Java 超高兼容性的体现,拥有这个基石,Java 迅速占据市场,并击败了众多竞争者。

但是,因为 Java 语言本身发展缓慢,于是 JVM 语言迅速出现。Groovy、JRuby、Jython、Clojure、Scala ......等等数不胜数,它们都拥有自己的编译器有能力将源码编译为 Java 的字节码文件。在 Java 7 之前,由这些非 Java 语言编译出的字节码比较冗长,效率低下,对 Java 语言本身并不构成实质的威胁。但是从 Java 7 版本之后,由于 Java 虚拟机正式支持 JSR 292 规范,JVM 语言终于迎来了自己的春天。由它们编译出来的字节码运行效率和 Java 语言已无区别,甚至效率比使用 Java 反射还高。至此,Java 语言不再独享 Java 平台,至少在问到“ 什么是 Java?”这个问题的时候,要为 JVM 语言留下一席之地。

JVM 语言的出现算是将 Java 语言和 Java 字节码相分离,Java 语言和 Java 字节码之间不再是一对一的关系,而是多对一的关系(即多个语言对 Java 字节码)。但是 Java 字节码、Java 虚拟机和跨平台等 Java 根本特性依旧无法动摇。

这时,Google 的 Android 系统正式登场,算是对 Java 进行了一次彻底的颠覆。Android 是一个开源操作系统,但也是一个开发平台,并且使用 Java 语言来开发 Android 应用。它不再使用 Java 字节码和虚拟机,而是使用自己的 Dalvik 字节码和虚拟机。Android 出现后,Java 语言不再跨平台,也不再“一次编写处处运行”,因为针对 Android 编写的应用只能在 Android 平台上运行。

Android 的出现,将 Java 语言和 Java 字节码再次分离,让 Java 语言可以对应多个不同的字节码(目前至少有 Java 字节码和 Dalvik 字节码)。至此,Java 语言、Java 字节码、Java 虚拟机之间出现了多对多的关系。

好了,再回到刚开始那个问题,究竟“什么是 Java”?

原文:http://www.aptusource.org/2014/06/what-is-java/
分享到:
评论
1 楼 xiaohu7924 2014-08-27  
  

相关推荐

Global site tag (gtag.js) - Google Analytics