内容简介

针对JavaSE9做了全面细致的更新,将引导你轻松学习新的核心Java编程技能,指导你立即着手编写Java程序。《Java编程入门官方教程(第7版)》开篇讲述Java语言基础知识(如创建、编译和运行Java程序的方式),此后浓墨重彩地描述构成Java语言核心的关键字、语法和结构。最后介绍Java的一些高级特性,如多线程程序设计、泛型、lambda表达式、Swing、JavaFX、新“模块”功能以及Java*新的交互式编程工具Jshell。

作者简介

畅销书作家HerbertSchildt是Java语言的**,他撰写程序设计图书超过三十年,在全世界销售了数百万册,并被翻译成了多种语言。他撰写了众多关于Java的图书,包括Java:TheCompleteReference、HerbSchildt’sJavaProgrammingCookbook、IntroducingJavaFX8Programming和Swing:ABeginner’sGuide,还撰写了一些有关C、C++和C#方面的书籍。虽然他对计算机的方方面面都很感兴趣,但主要关注点是计算机语言。Schildt获得了伊利诺伊大学的学士和硕士学位。

目录

第1章Java基础
1.1Java的起源
1.2Java对Internet的贡献
1.2.1Java简化了基于Web的编程
1.2.2Javaapplet
1.2.3安全性
1.2.4可移植性
1.3Java的魔法:字节码
1.4超越applet
1.5Java的主要术语
1.6面向对象程序设计
1.6.1封装
1.6.2多态性
1.6.3继承
1.7获得Java开发工具包
1.8第一个简单的程序
1.8.1输入程序
1.8.2编译程序
1.8.3逐行分析第一个程序
1.9处理语法错误
1.10第二个简单程序
1.11另一种数据类型
1.12两条控制语句
1.12.1if语句
1.12.2for循环语句
1.13创建代码块
1.14分号和定位
1.15缩进原则
1.16Java关键字
1.17Java标识符
1.18Java类库
1.19自测题

第2章数据类型与运算符
2.1数据类型为什么重要
2.2Java的基本类型
2.2.1整数类型
2.2.2浮点型
2.2.3字符型
2.2.4布尔类型
2.3字面值
2.3.1十六进制、八进制和二进制字面值
2.3.2字符转义序列
2.3.3字符串字面值
2.4变量详解
2.4.1初始化变量
2.4.2动态初始化
2.5变量的作用域和生命期
2.6运算符
2.7算术运算符
2.8关系运算符和逻辑运算符
2.9短路逻辑运算符
2.10赋值运算符
2.11速记赋值
……

第3章程序控制语句
第4章类、对象和方法
第5章其他数据类型与运算符
第6章方法和类详解
第7章继承
第8章包和接口
第9章异常处理
第10章使用I/O
第11章多线程程序设计
第12章枚举、自动装箱、静态导入和注解
第13章泛型
第14章lambda表达式和方法引用
第15章模块
第16章Swing介绍
第17章JavaFX简介
附录A自测题答案
附录B使用Java的文档注释
附录CJavaWebStart概述
附录DJShell简介
附录E更多Java关键字

前言/序言

  前言
  《Java编程入门官方教程(第7版)》旨在帮助你学习Java程序设计的基础知识,采用循序渐进的教学方法,安排了许多示例、自测题和编程练习。《Java编程入门官方教程(第7版)》不需要读者具备编程经验,而是从最基础的知识,从如何编译并运行一个Java程序开始讲起。然后讨论构成Java语言核心的关键字、功能和结构。还介绍Java的一些最重要高级功能,如多线程编程、泛型和lambda表达式和模块。此外,《Java编程入门官方教程(第7版)》还介绍Swing基础和JavaFX。学完《Java编程入门官方教程(第7版)》后,读者将牢固掌握Java编程精髓。
  值得说明的是,《Java编程入门官方教程(第7版)》只是学习Java的起点。Java不仅是一些定义语言的元素,还包括扩展的库和工具来帮助开发程序。要想成为顶尖的Java程序员,就必须掌握这些知识。读者在学习完《Java编程入门官方教程(第7版)》后,就有了足够的知识来继续学习Java的其他方面。
  0.1Java的发展历程
  只有少数几种编程语言对程序设计带来过根本性影响。其中,Java的影响由于迅速和广泛而格外突出。可以毫不夸张地说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革。这场变革迅速地把Web转变成了一个高度交互的环境,也给计算机语言的设计设置了一个新标准。
  多年来,Java不断发展、演化和修订。和其他语言加入新功能的动作迟缓不同,Java一直站在计算机程序设计语言的前沿,部分原因是其变革的文化,部分原因是它所面对的变化。Java已经做过或大或小的多次升级。
  第一次主要升级是Java1.1版,这次升级比较大,加入了很多新的库元素,修订了处理事件的方式,重新配置了1.0版本的库中的许多功能。
  第二个主要版本是Java2,它代表Java的第二代,标志着Java“现代化”的到来。Java2第一个发布的版本号是1.2。Java2在第一次发布时使用1.2版本号看上去有些奇怪。原因在于,该号码最初指Java库的内部版本号,后来就泛指整个版本号了。Java2被Sun重新包装为J2SE(Java2PlatformStandardEdition),并且开始把版本号应用于该产品。
  Java的下一次升级是J2SE1.3,它是Java2版本首次较大的升级。它增强了一些已有的功能,并且精简了开发环境。J2SE1.4进一步增强了Java。该版本包括一些重要的新功能,如链式异常、基于通道的I/O以及assert关键字。
  Java的下一版本是J2SE5,它是Java的第二次变革。以前的几次Java升级提供的改进虽然重要,但都是增量式的,而J2SE5却从该语言的作用域、功能和范围等方面提供了根本性改进。为帮助理解J2SE5的修改程度,下面列出了J2SE5中的一些主要新功能:
  ●泛型
  ●自动装箱/自动拆箱
  ●枚举
  ●增强型for-each形式的for循环
  ●可变长度实参(varargs)
  ●静态导入
  ●注解(annotation)
  这些条目都是重要升级,每个条目都代表了Java语言的一处重要改进。其中,泛型、增强型for循环和可变长度实参引入了新的语法元素;自动装箱和自动拆箱修改了语法规则;注解增加了一种全新的编程注释方法。
  这些新功能的重要性反映在使用的版本号“5”上。从版本号的变化方式看,这一版本的Java应该是1.5。由于新功能和变革如此之多,常规的版本号升级(从1.4到1.5)已无法标识实际的变化,因此Sun决定使用版本号5,以强调发生了重要改进。因此,当前的版本称为J2SE5,开发工具包称为JDK5。但是,为了保持和以前的一致性,Sun决定使用1.5作为内部版本号,也称为开发版本号。J2SE5中的“5”称为产品版本号。
  之后发布的Java版本是JavaSE6,Sun再次决定修改Java平台的名称,把“2”从版本号中删除了。因此,Java平台现在的名称是JavaSE,官方产品名称是JavaPlatformStandardEdition6,对应的Java开发工具包称为JDK6。和J2SE5一样,JavaSE6中的“6”是指产品的版本号,内部的开发版本号是1.6。
  JavaSE6建立在J2SE5的基础之上,做了进一步的增强和改进。JavaSE6并没有对Java语言本身添加较大的功能,而是增强了API库,添加了多个新包,改进了运行时环境。它在漫长的生命周期(Java术语)内经历了一些更新,添加了一些升级功能。总之,JavaSE6进一步巩固了J2SE5建立的领先地位。
  Java的下一版本是JavaSE7,对应的Java开发工具包称为JDK7,内部版本号是1.7。JavaSE7是Oracle收购SunMicrosystems之后发布的第一个主版本。JavaSE7包含许多新功能,对语言和API库做了许多增强。JavaSE7添加的最重要功能是在ProjectCoin中开发的那些功能。ProjectCoin的目的是确保把对Java语言所做的很多小改动包含到JDK7中,其中包括:
  ●现在String可控制switch语句。
  ●二进制整型字面值。
  ●在数值字面值中使用下画线。
  ●新增一种称为try-with-resources的try语句,支持自动资源管理。
  ●构造泛型实例时,通过菱形运算符使用类型推断。
  ●增强了异常处理,可以使用单个catch捕获两个或更多个异常(多重捕获),并且对重新抛出的异常可以进行更好的类型检查。
  可以看到,虽然ProjectCoin中的功能被视为小改动,但是“小”这个词实在不能体现它们所带来的好处。特别是,try-with-resources语句会对大量代码的编写方式产生深远影响。
  Java的下一版本是JavaSE8,对应的开发工具包是JDK8,内部的开发版本号是1.8。JDK8表示这是对Java语言的一次重大升级,因为本次升级包含了一种意义深远的新语言功能:lambda表达式。lambda表达式的影响深远:不但改变了概念化的编程方式,而且改变了Java代码的编写方式。使用lambda表达式,可以简化并减少创建某个结构所需的源代码量。另外,使用lambda表达式还可将新的运算符->和一种新的语法元素引入Java语言中。
  除了lambda表达式,JDK8中还新增了其他一些重要功能。例如,从JDK8开始,通过接口可以为指定的方法定义默认实现。JDK8也捆绑了对JavaFX、Java的新GUI框架的支持。期待JavaFX不久便能在几乎所有的Java应用程序中扮演重要的角色,并且最终替代用于大多数基于GUI项目的Swing。总之,JavaSE8主要版本扩展了Java语言的功能,并且改变了Java代码的编写方式,带来的影响足够深远。
  0.2JavaSE9
  Java的最新版本是JavaSE9,对应的开发工具包是JDK9,内部的开发版本号也是9。JDK9表示这是对Java语言的一次重大升级,合并了对Java语言及其库的重大改进。主要的新功能是模块,它允许指定构成应用程序的代码之间的关系和依赖。模块还给Java的访问控制功能添加了另一种方式。包括模块导致了一个新的语法元素、几个新关键字和各种工具改进添加到Java中。模块还对API库有深远的影响,因为在JDK9中,库包现在组织为模块。
  除了模块之外,JDK9还包括几个新功能。其中一个特别有趣的是JShell,它是一个支持交互式程序体验和学习的工具(JShell简介见附录D)。另一个有趣的升级是支持私有接口方法。包含它们进一步增强了JSK8对接口中默认方法的支持。JDK9给javadoc工具添加了搜索功能,还添加了一个新的标记@index来支持它。与以前的版本一样,JDK9包含对JavaAPI库的许多更新和改进。
  作为一般规则,在任何Java版本中,都有最受人瞩目的新功能。但JDK9废弃了Java高度配置的一个方面:applet。从JDK9开始,applet不再推荐在新项目中使用。如第1章所述,因为applet需要浏览器支持(和其他因素),JDK9废弃了整个appletAPI。目前,建议使用JavaWebStart在Internet上部署应用程序(JavaWebStart简介见附录C)。因为applet被设置为过时,不推荐用于新代码,所以《Java编程入门官方教程(第7版)》不再讨论它。但是对applet感兴趣的读者可以在《Java编程入门官方教程(第7版)》以前的版本中找到它们的内容。
  总之,JDK9继续Java的革新,确保Java成为用户所期望的充满活力且敏捷的语言。《Java编程入门官方教程(第7版)》中的内容已更新至JavaSE9版本(JDK9),包括一些新的功能、更新和其他内容。
  0.3《Java编程入门官方教程(第7版)》的组织结构
  《Java编程入门官方教程(第7版)》采用教程式的组织结构,每一章都建立在前面的基础之上。《Java编程入门官方教程(第7版)》共分17章,每一章讨论一个有关Java的主题。《Java编程入门官方教程(第7版)》的特色就在于包含许多便于读者学习的特色内容。
  ●关键技能与概念:每一章都首先介绍一些该章中要介绍的重要技能。
  ●自测题:每一章都有自测题,测试读者学习到的知识。答案在附录A中提供。
  ●专家解答:每一章中都穿插一些“专家解答”,以一问一答的形式介绍补充知识和要点。
  ●编程练习:每一章中都包含一两个编程练习,以帮助读者将学习到的知识应用到实践中。很多这样的练习都是实际的示例,读者可以将其用作自己的程序的起点。
  0.4《Java编程入门官方教程(第7版)》不需要读者具备编程经验
  《Java编程入门官方教程(第7版)》假定读者没有任何编程经验。如果读者没有编程经验,阅读《Java编程入门官方教程(第7版)》是正确的选择。如果读者有过一些编程经验,在阅读《Java编程入门官方教程(第7版)》时可以加快速度。但是要记住,Java在几个重要的地方与其他一些流行的计算机语言不同,所以不要急于下结论。因此,即使读者是经验丰富的程序员,也仍然建议仔细阅读《Java编程入门官方教程(第7版)》。
  0.5《Java编程入门官方教程(第7版)》需要的软件环境
  要编译和运行《Java编程入门官方教程(第7版)》提供的所有程序,需要获得Oracle提供的最新版本的JavaDevelopmentKit(JDK)。在撰写《Java编程入门官方教程(第7版)》时,最新版本为JDK9,这是JavaSE9使用的JDK版本。《Java编程入门官方教程(第7版)》第1章介绍如何获得JavaJDK。
  如果读者使用早期版本的Java,也仍然可以阅读《Java编程入门官方教程(第7版)》,只是无法编译和运行使用了Java新功能的程序。
  0.6不要忘记Web上的代码
  《Java编程入门官方教程(第7版)》所有示例和编程项目的源代码都可以免费从Web网址www.oraclepressbooks.com下载,也可以扫描《Java编程入门官方教程(第7版)》封底二维码下载。
  0.7特别感谢
  特别感谢《Java编程入门官方教程(第7版)》的技术编辑DannyCoward。他对《Java编程入门官方教程(第7版)》提出了许多宝贵的建议和意见,对此十分感谢。
  0.8进一步学习
  《Java编程入门官方教程(第7版)》是引导读者进入HerbertSchildt系列编程图书的大门,对下面的一些书你也会感兴趣:
  Java:TheCompleteReference
  HerbSchildt’sJavaProgrammingCookbook
  TheArtofJava
  Swing:aBeginner’sGuide
  IntroducingJavaFX8Programming

其他推荐