清华大学出版社

您所在的位置:网站首页 maya官方入门教程 清华大学出版社

清华大学出版社

2024-06-29 01:33| 来源: 网络整理| 查看: 265

《Java官方入门教程(第9版·Java 17)》针对Java SE 17做了全面细致的更新,将引导你轻松学习**的核心Java编程技能。《Java官方入门教程(第9版·Java 17)》由畅销编程书作者Herbert Schildt撰写,开篇讲述基础知识,内容涉及如何创建、编译和运行Java程序。此后浓墨重彩地描述构成Java语言核心的关键字、语法和结构。本书还涵盖Java的一些更高级特性,如多线程编程、泛型、lambda表达式、模块、记录、密封类和Swing。另外,还介绍了Java的交互式编程工具JShell。本书通俗易懂、简明扼要、详略得当,成为全球数百万读者的选择。

more >

前 言 本书旨在帮助你学习Java程序设计的基础知识,采用循序渐进的教学方法,安排了许多示例、自测题和编程练习。本书不需要读者具备编程经验,是从最基础的知识,如何编译和运行Java程序开始讲起。然后讨论构成Java语言核心的关键字、特性和结构。还介绍Java的一些最重要的高级特性,如多线程编程、泛型、lambda表达式、记录和模块。此外,本书还介绍Swing基础。学完本书后,读者将能牢固掌握Java编程的精髓。 值得说明的是,本书只是学习Java的起点。Java不仅是一些定义语言的元素,还包括扩展的库和工具来帮助开发程序。要想成为顶尖的Java程序员,就必须掌握这些知识。读者在学完本书后,就有了足够的知识来继续学习Java的其他知识。 0.1 Java的发展历程 只有少数几种编程语言对程序设计带来过根本性影响。其中,Java的影响由于迅速和广泛而格外突出。可以毫不夸张地说,1995年Sun Microsystems公司发布的Java 1.0给计算机程序设计领域带来了一场变革。这场变革迅速将Web转变成一个高度交互的环境,也给计算机语言的设计设置了一个新标准。 多年来,Java不断发展、演化和修订。和其他语言加入新特性的动作迟缓不同,Java一直站在计算机程序设计语言的前沿,部分原因是其不断变革的文化,部分原因是它所面对的变化。Java已经做过或大或小的多次升级。 第一次主要升级是Java 1.1版,这次升级比较大,加入了很多新的库元素,修订了处理事件的方式,重新配置了1.0版本的库中的许多特性。 第二个主要版本是Java 2,它代表Java的第二代,标志着Java“现代化”的到来。Java 2第一个发布的版本号是1.2。Java 2在第一次发布时使用1.2版本号看上去有些奇怪。原因在于,该号码最初指Java库的内部版本号,后来就泛指整个版本号了。Java 2被Sun重新包装为J2SE(Java 2 Platform Standard Edition),并且开始把版本号应用于该产品。 Java的下一次升级是J2SE 1.3,它是Java 2版本首次较大的升级。它增强了已有的功能,精简了开发环境。J2SE 1.4进一步增强了Java。该版本包括一些重要的新功能,如链式异常、基于通道的I/O和assert关键字。 Java的下一版本是J2SE 5,它是Java的第二次变革。以前的几次Java升级提供的改进虽然重要,但都是增量式的,而J2SE 5却从该语言的作用域、功能和范围等方面提供了根本性的改进。为帮助理解J2SE 5的修改程度,下面列出了J2SE 5中的一些主要新功能: ● 泛型 ● 自动装箱/自动拆箱 ● 枚举 ● 增强型for循环(for-each) ● 可变长度实参(varargs) ● 静态导入 ● 注解(annotation) 这些功能都是升级后的重要结果,每个功能都代表了Java语言的一处重要改进。其中,泛型、增强型for循环和可变长度实参引入了新的语法元素;自动装箱和自动拆箱修改了语法规则;注解增加了一种全新的编程注释方法。 这些新功能的重要性反映在使用的版本号“5”上。从版本号的变化方式看,这一版本的Java应该是1.5。由于新功能和变革如此之多,常规的版本号升级(从1.4到1.5)已无法标识变化的幅度,因此Sun决定使用版本号5,以强调发生了重要改进。因此将这个版本称为J2SE 5,将开发工具包称为JDK 5。但是,为了保持和以前的一致性,Sun决定使用1.5作为内部版本号,也称为开发版本号。J2SE 5中的“5”称为产品版本号。 之后发布的Java版本是Java SE 6,Sun再次决定修改Java平台的名称,把“2”从版本号中删除了。Java平台现在的名称是Java SE,官方产品名称是Java Platform,Standard Edition 6,对应的Java开发工具包称为JDK 6。和J2SE 5一样,Java SE 6中的“6”是指产品的版本号,内部的开发版本号是1.6。 Java SE 6 建立在J2SE 5的基础之上,做了进一步的增强和改进。Java SE 6并没有对Java语言本身添加较重要的功能,而是增强了API库,添加了多个新包,改进了运行时环境。它在漫长的生命周期(Java术语)内经历了一些更新,添加了一些升级功能。总之,Java SE 6进一步巩固了J2SE 5建立的领先地位。 接下来的版本是Java SE 7,对应的Java开发工具包称为JDK 7,内部版本号是1.7。Java SE 7是Oracle收购Sun Microsystems之后发布的第一个主版本。Java SE 7包含许多新功能,对语言和API库做了许多增强。Java SE 7添加的最重要功能是在Project Coin中开发的那些功能。Project Coin的目的是确保把对Java语言所做的很多小改动包含到JDK 7中,其中包括: ● String可以控制switch语句。 ● 二进制整型字面值。 ● 在数值字面值中使用下画线。 ● 新增一种称为try-with-resources的可扩展的try语句,支持自动资源管理。 ● 构造泛型实例时,通过菱形运算符使用类型推断。 ● 增强了异常处理,可以使用单个catch捕获两个或更多个异常(多重捕获),并且可以对重新抛出的异常进行更好的类型检查。 可以看到,虽然Project Coin中的功能被视为小改动,但是“小”这个词实在不能体现它们所带来的好处。特别是,try-with-resources语句会对大量代码的编写方式产生深远影响。 此后的版本是Java SE 8,对应的开发工具包是JDK 8,内部的开发版本号是1.8。JDK 8表示这是对Java语言的一次重大升级,因为本次升级包含了一种意义深远的新语言功能:lambda表达式。lambda表达式不但改变了概念化的编程方式,而且改变了Java代码的编写方式。使用lambda表达式,可以简化并减少创建某个结构所需的源代码量。另外,使用lambda表达式还可将新的运算符-> 和一种新的语法元素引入Java语言中。除了lambda表达式,JDK 8中还新增了其他一些重要功能。例如,从JDK 8开始,通过接口可为指定的方法定义默认实现。总之,Java SE 8扩展了Java语言的功能,并且改变了Java代码的编写方式,带来的影响足够深远。 再后的Java版本是Java SE 9,对应的开发工具包是JDK 9。JDK 9表示这是对Java语言的一次重大升级,合并了对Java语言及其库的重大改进。主要的新功能是模块,它允许指定构成应用程序的代码之间的关系和依赖。模块还给Java的访问控制功能添加了另一种方式。包括模块导致一个新的语法元素、几个新的关键字和各种工具改进被添加到Java中。模块还对API库具有深远影响,因为从JDK 9开始,库包现在被组织为模块。 除了模块,JDK 9还包括几个新功能。其中一个特别有趣的是JShell,它是一个支持交互式程序体验和学习的工具(有关JShell的简介,见附录D)。另一个有趣的升级是支持私有接口方法。包含它们进一步增强了JDK 8对接口中默认方法的支持。JDK 9给javadoc工具添加了搜索功能,还添加了一个新的标记@index来支持它。与以前的版本一样,JDK 9包含对Java API库的许多更新和增强。 作为一般规则,在任何Java版本中,都有令人瞩目的新功能。但JDK 9废弃了Java高度配置的一个方面:applet。从JDK 9开始,applet不再推荐在新项目中使用。如第1章所述,因为applet需要浏览器支持以及其他一些因素,JDK 9废弃了整个applet API。 Java的下一个版本是Java SE 10 (JDK 10)。然而,在发布它之前,Java发布计划发生了重大变化。过去,主要发行版通常间隔两年或更长时间。然而,从JDK 10开始,发行版之间的时间明显缩短了。现在预计发布将严格按照基于时间的计划表进行,主要发布版本(现在称为功能发布版本)之间的预期时间只有6个月。因此,JDK 10于2018年3月发布,也就是JDK 9发布6个月之后。这种更快的发布节奏使Java程序员能快速获得新特性和改进。当一个新特性准备好时,它将成为下一个预定发行版的一部分,而不是等待两年或更长时间。 Java发布计划的另一个变化在于长期支持(long-term support,LTS)版本。该版本预计每隔3年会发布一次。LTS版本的支持时间超过6个月,在这段时间内一直有效。JDK 11是第一个LTS版本,JDK 17是第二个LTS版本,本书针对后面这个版本进行了更新。因为LTS版本非常稳定,所以这种版本的功能集很可能成为之后几年的功能基准。关于长期支持以及LTS版本的发布计划表的最新信息,请查阅Oracle的相关文档。 JDK 10增加的主要新语言特性是支持局部变量类型推断。有了局部变量类型推断,现在可在初始化器的类型中推断局部变量的类型,而不是显式指定其类型。为了支持这个新功能,将上下文敏感的标识符var添加到Java中,作为保留类型名。类型推断可以简化代码,因为如果可以从初始化器中推断变量的类型,就不需要指定多余的变量类型。在难以识别类型或无法显式指定类型的情况下,它还可以简化声明。局部变量类型推断已成为当代编程环境的一个常见部分。它包含在Java中,帮助Java跟上语言设计不断发展的趋势。除了其他一些更改,JDK 10还重新定义了Java版本字符串,更改了版本号的含义,以便更好地与新的基于时间的发布计划保持一致。 Java的下一个版本是Java SE 11 (JDK 11)。它于2018年9月发布,比JDK 10晚了6个月。JDK 11中主要的新语言特性是支持在lambda表达式中使用var。此外,还向Java启动程序添加了另一种执行模式,使其能够直接执行简单的单文件程序。JDK 11还删除了一些特性。也许最有趣的是取消了对applet的支持,这是因为applet的历史意义所致。回顾一下,applet最初是由JDK 9弃用的。随着JDK 11的发布,对applet的支持已经被移除。JDK 11还删除了对另一种与部署相关的技术Java Web Start的支持。JDK 11中还有一个引人注目的删除:JavaFX;这个GUI框架不再是JDK的一部分,而是成为一个独立的开源项目。因为JDK已经删除了这些特性,所以本书不讨论它们。 JDK 11 LTS 和下一个 LTS 版本 (JDK 17) 之间有5个功能版本: JDK 12到 JDK 16。JDK 12和 JDK 13 没有添加任何新的语言功能。JDK 14添加了对switch表达式的支持,可以通过该switch表达式求值。另外,JDK 14还添加了对switch的其他增强。JDK 15中新增了文本块,文本块本质上是一些可以跨行的字符串字面值。JDK 16中通过模式匹配增强了instanceof,并且添加了一种新类型的类(称为记录)和一个新的、上下文敏感的record关键字。记录提供了一种方便的聚合数据的方法。JDK 16还提供了新的应用程序打包工具jpackage。 在撰写本书时,Java的最新版本是Java SE 17 (JDK 17)。如前所述,JDK 17是第二个 LTS Java 版本,因此它特别重要,其主要新特性在于能够密封(seal)类和接口。JDK 17的这种密封功能可以让你控制类的继承以及接口的继承和实现。为此,JDK 17还添加了上下文敏感的关键字sealed、permits和non-sealed(第一个带连字符的Java关键字)。JDK 17将applet API标记为将被删除。如前所述,Java早在几年前就不再提供对applet的支持。不过,只是不再推荐使用applet API,但依赖于该API的残留代码仍然可通过编译。随着JDK 17的发布,applet API将被未来的版本删除。 关于Java演化的另一要点是:从2006年开始,Java的开源过程就开始了。如今,JDK的开源实现是可用的。开源进一步促进了Java开发的动态性。Java的创新是安全的。Java仍然是编程界所期待的充满活力和灵活性的语言。 本书中的内容已通过JDK 11更新。然而,如前所述,Java编程的历史是以动态变化为标志的。随着对Java的学习不断深入,用户将希望查看后续Java发行版的每个新特性。简单地说:Java的演进还在继续! 0.2 本书的组织结构 本书采用教程式的组织结构,每一章都建立在前面章节的基础之上。本书共分17章,每一章讨论Java的一个方面。本书的特色就在于包含许多便于读者学习的特色内容。 ● 关键技能与概念:每章首先介绍一些该章中要介绍的重要技能。 ● 自测题:每章都有自测题,测试读者学习到的知识。答案在附录A中提供。 ● 专家解答:每章中都穿插一些“专家解答”,以一问一答的形式介绍补充知识和要点。 ● 编程练习:每章中都包含一两道编程练习,以帮助读者将学到的知识应用到实践中。很多这样的练习都是实际示例,读者可将其用作自己程序的起点。 0.3 本书不需要读者具有编程经验 本书假定读者没有任何编程经验。如果读者没有编程经验,阅读本书是正确的选择。如果读者有一些编程经验,在阅读本书时可以加快速度。但要记住,Java在几个重要的地方与其他一些流行的计算机语言不同,所以不要急于下结论。因此,即使读者是经验丰富的程序员,也仍然建议仔细阅读本书。 0.4 本书需要的软件环境 要编译和运行本书提供的所有程序,需要获得最新版本的Java Development Kit (JDK)。在撰写本书时,最新版本为JDK 17,这是Java SE 17使用的JDK版本。本书第1章介绍了如何获得Java JDK。 如果读者使用早期版本的Java,也仍然可以阅读本书,只是无法编译和运行使用了Java新功能的程序。 0.5 不要忘记Web上的代码 本书所有示例和编程项目的源代码都可以扫描封底二维码下载。 0.6 特别感谢 特别感谢本书的技术编辑Danny Coward。Danny编辑过我写的多本书籍,他的见解和建议总是很有价值,也很受读者赞赏。 0.7 进一步学习 本书是引导读者进入Herbert Schildt系列编程图书的大门,下面的一些书你也会感兴趣: Java: The Complete Reference Herb Schildt’s Java Programming Cookbook The Art of Java Swing: a Beginner’s Guide Introducing JavaFX 8 Programming

more > 暂无课件 暂无样章 暂无网络资源 扫描二维码 下载APP了解更多

版权图片链接



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3