当前位置:首页分享Java从入门到放弃(一):Java简介

Java从入门到放弃(一):Java简介

Java,一种起源于上世纪90年代初的编程语言,最初由SUN公司(现已被Oracle收购)的詹姆斯·高斯林(Java之父)所开发。最初被命名为Oak,旨在应用于小型家电设备的嵌入式系统,然而并未引起市场的广泛关注。然而,随着互联网的崛起,Oak焕发出新的生机。1995年,SUN公司决定重新命名并发布这种语言,因为Oak已被他人注册,所以他们选择了Java这个名称。随着时间的推移,Java逐渐成为网络编程领域最重要的语言之一。

Java语言介于编译型语言和解释型语言之间。编译型语言如C和C++,它们的代码是直接编译成机器码执行的,但由于不同平台的CPU指令集存在差异,因此需要为每种平台编译相应的机器码。与此相反,解释型语言如Python和Ruby无需编译,而是由解释器直接加载源代码并执行,但这样做的代价是运行效率较低。Java则采取了一种折中的方法:它将代码编译成一种名为“字节码”的中间形式,类似于抽象的CPU指令。然后,针对不同平台编写虚拟机,这些虚拟机负责加载并执行字节码。这种方法实现了“一次编写,到处运行”的效果,为Java开发者带来了极大的便利。虽然需要为每个平台单独开发虚拟机,但SUN公司为确保Java字节码在不同平台、不同公司开发的虚拟机上都能正确执行,制定了一系列Java虚拟机规范。实践表明,JVM的兼容性非常出色,低版本的Java字节码可以在高版本的JVM上正常运行。

随着Java的不断发展,SUN公司进一步将其划分为三个不同版本:

  1. Java SE(Standard Edition):标准版,适用于桌面和服务器应用程序的开发。
  2. Java EE(Enterprise Edition):企业版,专注于开发企业级应用程序,如Web应用和企业级服务。
  3. Java ME(Micro Edition):微型版,主要针对移动设备和其他小型设备的应用开发。

这三个版本各有侧重,但都基于相同的Java核心技术和虚拟机规范,确保了跨平台的兼容性。

简单来说,Java SE作为标准版,提供了基础的JVM(Java虚拟机)和标准库,为开发者构建各类应用程序提供了核心工具。而Java EE,作为企业版,在Java SE的基础上进行了扩展,加入了大量API和库,特别针对Web应用、数据库操作、消息服务等企业级功能进行了优化。尽管Java EE应用所使用的虚拟机与Java SE完全相同,但它为开发者提供了更为丰富的功能和工具集。

与Java SE不同,Java ME是一个针对嵌入式设备的轻量化版本。它并不支持Java SE的全部标准库,且其虚拟机也经过了相应的优化以适应资源受限的环境。尽管Java ME的设计理念是为嵌入式设备提供编程支持,但在实际应用中,它并未获得广泛的普及。

Java SE无疑是整个Java平台的核心所在,而Java EE则是对Web应用开发者的进阶之选。众多流行的框架,如Spring,都是Java EE开源生态系统的重要组成部分。值得注意的是,尽管Java ME在理论上为嵌入式设备提供了编程支持,但实际上,随着Android平台的崛起,移动应用开发更多地倾向于使用Android原生开发。因此,对于大多数开发者而言,专注于Java SE和Java EE的学习将更为实用。

推荐的学习路线图如下:

  • 初级阶段:专注于Java SE的学习,掌握Java语言的基础知识、核心开发技术以及标准库的使用方法。
  • 进阶阶段:若对Web应用开发感兴趣,可继续学习Java EE,深入了解Spring框架、数据库开发以及分布式架构等关键概念和技术。
  • 特定领域:若有意从事大数据开发,应学习Hadoop、Spark、Flink等基于Java或Scala开发的大数据平台。若对移动开发感兴趣,则应深入研究Android平台,掌握Android应用的开发技能。

无论选择哪个方向,Java SE的核心技术始终是基础。本教程旨在帮助学习者全面精通Java SE,并为进一步掌握Java EE打下坚实基础。

名词解释

DK(Java Development Kit)和JRE(Java Runtime Environment)是Java编程中经常听到的两个名词,它们在Java开发和运行过程中起着至关重要的作用。

JDK(Java Development Kit)是Java开发工具包,它包含了Java编程语言所必需的开发工具集。JDK不仅包含了Java运行环境(JRE),还提供了编译器(如javac)用于将Java源代码编译成字节码文件(.class文件),以及调试工具和其他开发工具。对于Java程序开发者来说,JDK是必不可少的,因为它允许开发者编写、编译和调试Java程序。

JRE(Java Runtime Environment)则是Java运行环境,它包含了Java虚拟机(JVM)和Java核心类库。JRE的主要职责是运行已经编译好的Java字节码文件。Java虚拟机(JVM)是JRE的核心组件,它负责加载、验证、解释和执行Java字节码,提供了跨平台的运行环境。Java核心类库则提供了Java语言的基本功能和API,供Java程序调用。

简而言之,JDK是用于开发Java程序的工具包,而JRE则是运行Java程序的环境。在开发过程中,开发者使用JDK将Java源代码编译成字节码;而在运行阶段,JRE则负责执行这些字节码,提供程序的运行环境。因此,JDK和JRE共同构成了Java编程的完整生态环境。

二者关系如下:

为了确保Java语言的规范性和标准化,SUN公司引入了两个重要的机制:JSR(Java Specification Request)规范和JCP(Java Community Process)组织。

JSR规范是一个提议或请求,它定义了Java平台新增功能或修改的接口和标准。这意味着,任何希望为Java平台添加新功能,如数据库访问,都需要首先创建一个JSR规范。这样做的好处是,不同的数据库厂商可以遵循相同的规范来编写Java驱动程序,从而确保开发者编写的数据库代码能够在不同的数据库平台上运行,无论是MySQL还是PostgreSQL。

JCP组织则负责审核和管理这些JSR规范。它是一个开放的组织,由Java社区成员组成,旨在推动Java技术的发展和标准化。

每当一个新的JSR规范发布时,为了提供一个参考实现和测试标准,通常会同时发布一个“参考实现”(RI)和一个“兼容性测试套件”(TCK)。RI是一个能够运行的代码示例,它展示了如何实现该规范。而TCK则用于测试其他实现是否符合该规范的要求,确保不同的Java产品之间具有兼容性。

需要注意的是,RI通常只是一个基本的、能够运行的实现,它可能并不追求最优的性能。因此,在实际应用中,开发者通常会选择更为高效和可靠的商用或开源产品,而不是直接使用RI。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧