Java简介

Java 简介

一、Java 概述

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的面向对象程序设计语言和 Java 平台的统称。它由 James Gosling 及其同事共同研发,并于同年正式亮相。后来,Sun 公司被 Oracle(甲骨文)公司收购,Java 也随之成为 Oracle 的产品。

Java 主要分为三个体系:

  1. JavaSE(Java 平台标准版):前身是 J2SE(Java 2 Platform Standard Edition),它是 Java 的基础,提供了核心类库,用于开发桌面应用程序、命令行工具等。

  2. JavaEE(Java 平台企业版):原称 J2EE(Java 2 Platform, Enterprise Edition),主要用于开发企业级分布式应用,如 Web 应用、电子商务系统等,包含了 Servlet、JSP、EJB 等一系列技术规范。

  3. JavaME(Java 平台微型版):之前叫 J2ME(Java 2 Platform Micro Edition),用于开发移动设备和嵌入式系统的应用,如手机游戏、小型嵌入式设备软件等。不过,随着智能手机操作系统的发展,JavaME 的应用场景有所减少。

2005 年 6 月,在 JavaOne 大会上,SUN 公司公开 Java SE 6,同时对 Java 的各个版本进行更名,去除了其中的数字 “2”,即 J2EE 更名为 Java EE,J2SE 更名为 Java SE,J2ME 更名为 Java ME。

二、Java 主要特性

  1. 简单性:Java 语言的语法与 C 语言和 C++ 语言相近,便于大多数程序员学习和使用。同时,它摒弃了 C++ 中一些复杂且较少使用的特性,如操作符重载、多继承、自动的强制类型转换等。Java 不使用指针,而是采用引用,并且具备自动分配和回收内存空间的机制,大大减轻了程序员对内存管理的负担。
  2. 面向对象:Java 语言全面支持类、接口和继承等面向对象特性。它仅支持类之间的单继承,避免了多继承带来的复杂性和冲突,但支持接口之间的多继承,通过接口实现了更灵活的功能扩展。此外,Java 语言支持类与接口之间的实现机制(使用关键字 implements),并且全面支持动态绑定,而 C++ 语言仅对虚函数使用动态绑定。由此可见,Java 是一门纯粹的面向对象程序设计语言。
  3. 分布式:Java 语言对 Internet 应用开发提供了有力支持。在基本的 Java 应用编程接口中,包含一个网络应用编程接口(java.net),它提供了丰富的类库用于网络应用编程,如 URL、URLConnection、Socket、ServerSocket 等类,方便开发者创建网络连接、处理网络请求等。此外,Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段,允许程序员在不同的 Java 虚拟机之间调用方法,实现分布式计算。
  4. 健壮性:Java 的强类型机制确保变量在使用前必须声明类型,且类型检查严格,有助于在编译阶段发现错误。异常处理机制使得程序在遇到错误或异常情况时能够进行合理的处理,避免程序崩溃。垃圾自动收集机制则自动回收不再使用的内存空间,防止内存泄漏。同时,对指针的舍弃以及安全检查机制,都使得 Java 程序更加健壮可靠。
  5. 安全性:鉴于 Java 常被应用于网络环境,它提供了一套完善的安全机制,以抵御恶意代码的攻击。除了语言本身具备的诸多安全特性外,Java 对通过网络下载的类设有安全防范机制,如类 ClassLoader 会为不同来源的类分配不同的名字空间,防止本地同名类被替代,同时进行字节代码检查。此外,还提供安全管理机制(类 SecurityManager),允许 Java 应用设置安全哨兵,对系统资源的访问进行严格控制。
  6. 体系结构中立:Java 程序(后缀为.java 的文件)在 Java 平台上被编译为字节码格式(后缀为.class 的文件),这种字节码与具体的硬件平台和操作系统无关,可在任何实现了 Java 平台的系统中运行。这种特性使得 Java 程序能够在异构的网络环境中顺利运行,方便软件的分发和部署。
  7. 可移植性:Java 的可移植性源于其体系结构中立性。此外,Java 对各个基本数据类型的长度进行了严格规定,确保在不同平台上数据类型的一致性。不仅如此,Java 系统本身也具有很强的可移植性,Java 编译器用 Java 实现,而 Java 的运行环境则用 ANSI C 实现,这使得 Java 能够在多种操作系统上运行。
  8. 解释型:Java 程序首先在 Java 平台上被编译为字节码格式,然后在运行时,由 Java 平台中的 Java 解释器对字节码进行解释执行。在执行过程中,所需的类会在联接阶段被载入到运行环境中。这种方式使得 Java 程序能够在不同的平台上运行,只要该平台具备相应的 Java 运行环境。
  9. 高性能:相较于一些解释型的高级脚本语言,Java 具备较高的性能。随着 JIT(Just - In - Time)编译器技术的不断发展,Java 的运行速度越来越接近 C++。JIT 编译器在运行时将字节码编译为本地机器码,大大提高了程序的执行效率。
  10. 多线程:在 Java 语言中,线程被视为一种特殊的对象,必须由 Thread 类或其子(孙)类来创建。通常有两种创建线程的方法:一种是使用型构为 Thread (Runnable) 的构造子类,将一个实现了 Runnable 接口的对象包装成一个线程;另一种是从 Thread 类派生出子类并重写 run 方法,通过该子类创建的对象即为线程。值得注意的是,Thread 类已经实现了 Runnable 接口,因此每个线程都有其 run 方法,该方法包含了线程要执行的代码。Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(使用关键字 synchronized),以确保在多线程环境下数据的一致性和程序的正确性。
  11. 动态性:Java 语言的设计旨在适应动态变化的环境。Java 程序所需的类能够在运行时动态地被载入到运行环境中,也可以通过网络下载所需的类,这对于软件的升级和维护非常有利。此外,Java 中的类在运行时刻有相应的表示,能够进行运行时刻的类型检查,增强了程序的灵活性和适应性。

三、Java 发展历史

Java 作为一门广泛应用于软件开发领域的编程语言,拥有着丰富且辉煌的发展历程。从它诞生之初,就凭借着独特的设计理念和强大的功能特性,逐步在全球范围内得到广泛应用和认可。以下是 Java 发展过程中的关键节点梳理:

诞生与初步发展(1995 - 1999 年)

  • 1995 年 5 月 23 日:Java 语言正式诞生,它由 Sun 公司的詹姆斯・高斯林(James Gosling)及其团队开发。Java 从一开始就以 “一次编写,到处运行(Write Once, Run Anywhere)” 的跨平台特性为目标,这一特性为其后续的广泛应用奠定了基础。

  • 1996 年 1 月:第一个 JDK - JDK1.0 问世,它为 Java 开发者提供了基本的开发工具包,包括编译器、调试器等,使得开发者能够开始使用 Java 进行程序开发。

  • 1996 年 4 月:10 个主要的操作系统供应商宣布将在其产品中嵌入 JAVA 技术,这标志着 Java 开始在操作系统领域得到广泛认可和应用,进一步扩大了 Java 的影响力。

  • 1996 年 9 月:约 8.3 万个网页采用 JAVA 技术制作,显示出 Java 在 Web 开发领域的巨大潜力,吸引了更多开发者投身于 Java Web 开发。

  • 1997 年 2 月 18 日:JDK1.1 发布,带来了许多新的特性和改进,如内部类、JDBC(Java Database Connectivity)等,进一步增强了 Java 的功能,使得 Java 在数据库操作等方面更加便捷。

  • 1997 年 4 月 2 日:JavaOne 会议召开,参与者超过一万人,创下当时全球同类会议规模的纪录,表明 Java 受到了业界的高度关注,成为了当时软件开发领域的热门话题。

  • 1997 年 9 月:JavaDeveloperConnection 社区成员超过十万,社区的壮大为 Java 的发展提供了强大的支持和动力。开发者们在社区中交流经验、分享代码,促进了 Java 技术的快速传播和发展。

  • 1998 年 2 月:JDK1.1 被下载超过 2,000,000 次,反映出 Java 在开发者群体中的受欢迎程度,越来越多的开发者开始选择 Java 作为他们的开发语言。

  • 1998 年 12 月 8 日:JAVA2 企业平台 J2EE 发布,为企业级应用开发提供了完整的解决方案,涵盖了分布式应用、事务处理、安全管理等多个方面,满足了企业对大规模、高可靠性应用的需求。

  • 1999 年 6 月:SUN 公司发布 Java 的三个版本:标准版(JavaSE,前身为 J2SE)、企业版(JavaEE,前身为 J2EE)和微型版(JavaME,前身为 J2ME),明确了 Java 在不同领域的应用方向。这一举措使得 Java 能够更好地适应不同的应用场景,进一步拓展了其应用范围。

持续发展与优化(2000 - 2009 年)

  • 2000 年 5 月 8 日:JDK1.3 发布,对性能和稳定性进行了优化,提高了 Java 程序的运行效率和可靠性,使得 Java 在更多的领域得到应用。
  • 2000 年 5 月 29 日:JDK1.4 发布,引入了更多新特性,如正则表达式支持、XML 处理改进等,进一步丰富了 Java 的功能,使得 Java 在文本处理、数据交换等方面更加得心应手。
  • 2001 年 6 月 5 日:NOKIA 宣布到 2003 年将出售 1 亿部支持 Java 的手机,推动了 Java 在移动设备领域的应用,为 Java 在移动开发领域的发展奠定了基础。
  • 2001 年 9 月 24 日:J2EE1.3 发布,进一步完善了企业级应用开发的规范和功能,提供了更多的企业级服务和组件,使得企业级应用开发更加高效和便捷。
  • 2002 年 2 月 26 日:J2SE1.4 发布,Java 的计算能力得到大幅提升,为科学计算、大数据处理等领域的应用提供了更好的支持。
  • 2004 年 9 月 30 日 18:00PM:J2SE1.5 发布,这是 Java 语言发展史上的一个重要里程碑。为了突出其重要性,J2SE1.5 更名为 Java SE 5.0,引入了泛型、自动装箱 / 拆箱、枚举类型、注解等重要特性,大大提高了 Java 的编程效率和代码的可读性。
  • 2005 年 6 月:JavaOne 大会召开,SUN 公司公开 Java SE 6,同时对 Java 的各个版本进行更名,去除数字 “2”,进一步规范了 Java 版本的命名体系。
  • 2006 年 12 月:SUN 公司发布 JRE6.0,Java 运行环境得到进一步优化,提高了 Java 程序的运行性能和兼容性。
  • 2009 年 04 月 20 日:甲骨文以 74 亿美元收购 Sun,取得 Java 的版权。这一收购事件引起了业界的广泛关注,人们开始关注甲骨文对 Java 未来发展的规划和策略。

甲骨文时代的发展(2010 - 至今)

  • 2010 年 11 月:由于甲骨文对 Java 社区的不友善,Apache 扬言将退出 JCP(Java 社区过程),引发了业界对 Java 未来发展的关注和讨论。这一事件也促使甲骨文重新审视其对 Java 社区的态度和管理方式。
  • 2011 年 7 月 28 日:甲骨文发布 Java7.0 的正式版,带来了一些新特性,如字符串在 switch 语句中的支持、try-with-resources 语句等,提高了 Java 代码的简洁性和安全性。
  • 2014 年 3 月 18 日:Oracle 公司发表 Java SE 8,引入了 Lambda 表达式、Stream API、新的日期时间 API 等重要新特性,进一步提升了 Java 的编程效率和功能,使得 Java 在函数式编程、数据处理等方面有了更好的支持。
  • 2017 年 9 月 21 日:Oracle 公司发表 Java SE 9,带来了模块化系统、JShell(交互式编程环境)等新特性,增强了 Java 的可维护性和安全性,同时也为开发者提供了更加便捷的开发工具。
  • 2018 年 3 月 21 日:Oracle 公司发表 Java SE 10,引入了局部变量类型推断、并行全垃圾回收器 G1 等新特性,提高了 Java 代码的简洁性和性能。
  • 2018 年 9 月 25 日:Java SE 11 发布,这是一个长期支持版本(LTS),提供了性能优化、安全性增强、HTTP Client API 等方面的改进,为企业级应用提供了更加稳定和可靠的支持。
  • 2019 年 3 月 20 日:Java SE 12 发布,带来了一些新的语言特性和改进,如 Switch 表达式的预览、Shenandoah 垃圾回收器等,进一步提升了 Java 的性能和功能。
  • 2019 年 9 月 17 日:Java SE 13 发布,包含了文本块(Text Blocks)预览、改进的 Switch 表达式等特性,增强了 Java 在处理复杂文本和条件判断时的便利性。
  • 2020 年 3 月 17 日:Java SE 14 发布,正式引入了文本块功能,同时引入了 Records 预览特性,简化了类的定义,减少了样板代码。还包含了其他一些改进,如打包工具 jpackage 的孵化等。
  • 2020 年 9 月 15 日:Java SE 15 发布,带来了隐藏类(Hidden Classes)、密封类(Sealed Classes)预览等新特性,进一步增强了 Java 的安全性和可维护性。
  • 2021 年 3 月 16 日:Java SE 16 发布,Records 和密封类转正,还引入了 Vector API 预览等特性,为 Java 在科学计算等领域的应用提供了更好的支持。
  • 2021 年 9 月 14 日:Java SE 17 发布,作为一个长期支持版本(LTS),它提供了增强的安全性、性能优化和其他一些改进,巩固了 Java 在企业级应用开发中的地位。
  • 2022 年 3 月 22 日:Java SE 18 发布,包含了 UTF - 8 标准的默认字符集、Simple Web Server 等新特性,方便开发者进行 Web 开发和字符编码处理。
  • 2022 年 9 月 20 日:Java SE 19 发布,引入了虚拟线程(Virtual Threads)预览等新特性,旨在提高 Java 在高并发场景下的性能和资源利用率。
  • 2023 年 3 月 21 日:Java SE 20 发布,继续对虚拟线程等特性进行改进和完善,同时提供了其他一些增强功能,推动 Java 不断适应新的应用场景和技术需求。
  • 2023 年 9 月 19 日:Java SE 21 发布,虚拟线程正式转正,同时带来了结构化并发(Structured Concurrency)等新特性,进一步提升了 Java 在并发编程方面的能力,为开发者提供了更强大的工具来处理复杂的并发任务。

回顾 Java 的发展历程,我们可以看到它不断适应时代的需求,持续引入新的特性和改进,始终保持着强大的生命力和广泛的应用前景。在未来,随着技术的不断发展,Java 有望在人工智能、大数据、云计算等新兴领域发挥更加重要的作用。

四、Java 开发工具

  1. 操作系统:Java 可以在多种操作系统上进行开发和运行,常见的包括 Linux 系统、Mac OS 系统以及 Windows 系列操作系统,如 Windows 95/98/2000/XP、WIN 7/8 等。不同操作系统在开发体验和性能上可能会有一些差异,但 Java 的跨平台特性确保了程序在不同系统上的一致性。

  2. Java JDK:JDK(Java Development Kit)是 Java 开发的核心工具包,它包含了 Java 编译器、Java 运行时环境(JRE)以及一系列的类库。目前常用的版本有 Java JDK 7、8 等,不同版本在功能和特性上有所差异,开发者可根据项目需求选择合适的版本。例如,Java 8 引入的 Lambda 表达式和 Stream API 为函数式编程提供了支持,提高了代码的简洁性和可读性;而 Java 11 作为长期支持版本,在性能和安全性方面有更好的表现。

  3. 编辑器

    • vscode:Visual Studio Code 是一款轻量级、跨平台的代码编辑器,具有丰富的插件生态系统,通过安装 Java 相关插件,能够为 Java 开发提供良好的支持,如代码语法高亮、智能代码补全、调试等功能。
    • 其他编辑器:除了 vscode,还有许多其他优秀的文本编辑器可用于 Java 开发,如 Sublime Text、Atom 等,它们同样具有简洁易用、可扩展性强等特点,适合喜欢轻量级开发工具的开发者。
  4. IDE

    • Eclipse:一款开源的集成开发环境,广泛应用于 Java 开发领域。它提供了丰富的功能,如代码导航、代码重构、可视化调试等,并且拥有庞大的插件社区,开发者可以根据项目需求安装各种插件来扩展其功能。
    • IntelliJ IDEA:由 JetBrains 公司开发,被认为是功能最强大的 Java IDE 之一。它具有智能代码分析、高效的代码导航、强大的调试功能以及对各种 Java 框架的良好支持等特点,能够显著提高开发效率。分为社区版(免费开源)和旗舰版(功能更丰富,需付费)。
    • NetBeans:同样是一款开源的 IDE,它对 Java 开发提供了全面的支持,包括可视化的 GUI 设计工具、代码分析和优化功能等,适合初学者和专业开发者使用。

在安装好以上工具后,我们就可以开始编写并运行 Java 的第一个程序 “Hello World!”,示例代码如下:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

上述代码定义了一个名为 HelloWorld 的类,其中包含一个 main 方法,这是 Java 程序的入口点。在 main 方法中,通过 System.out.println 语句在控制台输出 “Hello World”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值