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

什么是 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  
  

相关推荐

    appjava服务端源码-java-all-basic-program-part-2:什么是Java?Java是一种流行的编程语言,创建于19

    什么是Java? Java是一种流行的编程语言,创建于1995年。它是Oracle拥有的,运行Java的设备超过30亿。 它用于:移动应用程序(特别是Android应用程序)桌面应用程序Web应用程序Web服务器和应用程序服务器游戏数据库...

    appjava服务端源码-java-all-basic-programs:什么是Java?Java是一种流行的编程语言,创建于1995年。它是

    java服务端原始码什么是Java? Java是一种流行的编程语言,创建于1995年。 它归Oracle所有,超过30亿台设备运行Java。 它用于: 移动应用程序(特别是Android应用程序)桌面应用程序Web应用程序Web服务器和应用程序...

    什么是C语言?什么是VB语言?什么是VF语言?什么是JAVA语言?什么是C++语言?.pdf

    什么是JAVA语言?什么是C++语言?" 在计算机编程领域中,有多种编程语言,每种语言都有其特点和应用场景。今天,我们将讨论五种常见的编程语言:C语言、VB语言、VF语言、JAVA语言和C++语言。 首先,让我们了解一下...

    如何在 Web 浏览器中禁用 Java?

    如何在 Web 浏览器中禁用 Java? 在本文中,我们将介绍如何在 Web 浏览器中禁用 Java,以确保浏览器的安全性和稳定性。本文适用于多种平台和浏览器,包括 Solaris SPARC、Solaris x86、Red Hat Linux、SUSE Linux、...

    JAVA面试题

    - 什么是Java?Java是一种跨平台的面向对象的编程语言,由Sun Microsystems(现已被Oracle收购)开发。 - Java的主要特性是什么?包括简单性、面向对象、健壮性、安全性、可移植性、高性能、多线程和动态性。 - ...

    常见的java面试题

    - 什么是Java?Java是一种解释型、类C++语法的、跨平台的编程语言,由Sun Microsystems(现为Oracle公司)开发。 - Java有哪些特性?主要特性包括:简单性、面向对象、健壮性、安全性、可移植性、高性能、多线程和...

    125条常见的java面试笔试题汇总

    - 什么是Java?它的主要特性是什么? - Java有哪些版本?如Java SE、Java EE和Java ME分别代表什么? - 解释Java中的“一次编写,到处运行”(Write Once, Run Anywhere)理念。 - Java源代码的扩展名是什么?...

    java面试题锦集.zip

    1. 什么是Java?Java语言的特点是什么? 2. 解释一下Java的跨平台特性,并描述JVM的工作原理。 3. Java有哪些访问修饰符,它们的作用分别是什么? 二、数据类型与变量 4. Java中的基本数据类型有哪些?它们的存储...

    江西财经大学jav电子档案a

    什么是Java ? Java简史 由James Gosling领导的小组在Sun Microsystems公司开发 该小组的领导人是James Gosling,是一位非常杰出的程序员。他出生于1957年,于1984年加盟Sun Microsystem 公司,之前在一家IBM研究机构...

    自己总结的Java面试题

    - **什么是Java?** Java是一种跨平台、面向对象的编程语言,由Sun Microsystems(现为Oracle公司)开发,具有自动内存管理(垃圾回收)、多线程和安全性等特性。 - **Java的三大特性是什么?** 封装、继承、多态...

    Java面试题目大全 很好的

    - 什么是Java?它有哪些特点? Java是一种跨平台的、面向对象的编程语言,主要特点是简单性、面向对象、健壮性、安全性、高性能、可移植性、多线程和动态性。 2. **面向对象** - 什么是封装、继承和多态? 封装...

    java面试题.rar

    - 什么是Java?它的特点是什么? Java是一种跨平台的、面向对象的编程语言,主要特点是简单性、面向对象、健壮性、安全性、可移植性、高性能和动态性。 - Java的基本数据类型有哪些?它们的内存占用是多少? ...

    如何学习Java?Java进阶学习方法论【Java一周入门教程8】

    如何学习Java?Java进阶学习方法论【Java一周入门教程8】

    java面试题参考.md

    有什么是Java?、Java的特点是什么?、Java程序的基本结构是什么?、什么是Java虚拟机(JVM)?、什么是垃圾回收(Garbage Collection)?、什么是面向对象编程(OOP)?、Java中的继承和多态性是什么?、什么是接口...

    大学毕业设计JAVA班主任管理系统(源代码+论文).zip

    首先,“JAVA???????(???+??)”可能代表了项目的主要源代码目录,其中包含了多个子目录,这些子目录可能分别对应系统不同的功能模块。例如,“JAVA???????(???+??)\JAVA???????(???+??)\JAVA???????(???+??)\”可能...

    常见的java面试题汇总,看看吧,很有帮助的

    - **什么是Java?** Java是一种跨平台的、高性能的、解释型的、类为基础的、面向对象的编程语言,由Sun Microsystems(现为Oracle公司)开发。 - **JVM是什么?** JVM(Java Virtual Machine)是Java的核心组成...

    反病毒,就需要反Java?.pdf

    反病毒,就需要反Java?

    100家大公司java笔试题汇总

    12. 什么是Java中的垃圾回收? 答:垃圾回收是Java中的机制,用于回收无用的对象,释放内存。 13. 在Java中,什么时候对象可以被垃圾回收? 答:对象可以被垃圾回收,当对象不再被引用时。 Java异常 14. 什么是...

    Java面试题55.ORM是什么?ORM框架是什么?.mp4

    Java面试题55.ORM是什么?ORM框架是什么?.mp4

Global site tag (gtag.js) - Google Analytics