|
內容簡介: |
本书基于JavaSE8编写,清晰地介绍了面向对象编程的概念、语言基础等,涵盖了Lambda表达式、类型注解、默认方法、聚合操作、日期时间API等JavaSE8的新特性,更新了限制恶意小程序的攻击和RIA等相关内容。每章后面的问题和练习可以帮助读者巩固所学知识,此外,附录中还给出Java编程语言认证考试的相关内容。本书可作为高等院校计算机等相关专业的基础教材,也可作为编程初学者和中级程序员的参考资料。
|
關於作者: |
Raymond Gallardo Oracle公司高级技术作者;Scott Hommel Oracle公司高级技术作者;Sowmya Kannan在Java SE 文档团队身兼数职,包括规划、编写、与开发者听众沟通、修补等;Joni Gordon Oracle公司的首席技术作者;Sharon Biocca Zakhour 之前是Oracle公司技术团队的一位首席技术作者,为Java SE平台的文档化作出了许多贡献。
|
目錄:
|
目 录
The Java Tutorial: A Short Course on the Basics, Sixth Edition
出版者的话
译者序
前言
第1章快速入门1
1.1关于Java技术1
1.1.1Java程序语言1
1.1.2Java平台2
1.1.3Java技术的功能3
1.1.4Java技术的优势3
1.2“Hello World!”实例程序4
1.2.1用NetBeans IDE开发“Hello World!”4
1.2.2在Microsoft Windows中开发“Hello World!”10
1.2.3在Solaris和Linux中开发“Hello World!”13
1.3“Hello World!”实例程序剖析15
1.3.1源码注释15
1.3.2HelloWorldApp类定义15
1.3.3main方法16
1.4常见问题(及其解决方案)16
1.4.1编译器问题16
1.4.2运行时问题18
1.5问题和练习:快速入门19
第2章面向对象的编程概念21
2.1对象21
2.2类22
2.3继承23
2.4接口24
2.5包25
2.6问题和练习:面向对象的编程概念25
第3章语言基础27
3.1变量27
3.1.1命名28
3.1.2基本数据类型28
3.1.3数组32
3.1.4小结35
3.1.5问题和练习:变量36
3.2运算符36
3.2.1赋值运算符、算术运算符和一元运算符37
3.2.2等式运算符、关系运算符和条件运算符40
3.2.3位运算符和移位运算符42
3.2.4小结42
3.2.5问题和练习:运算符43
3.3表达式、语句和块44
3.3.1表达式44
3.3.2语句45
3.3.3块45
3.3.4问题和练习:表达式、语句和块46
3.4控制流语句46
3.4.1if-then语句和if-then-else语句46
3.4.2switch语句47
3.4.3while语句和do-while语句51
3.4.4for语句52
3.4.5分支语句53
3.4.6小结56
3.4.7问题和练习:控制流语句56
第4章类和对象58
4.1类58
4.1.1声明类59
4.1.2声明成员变量60
4.1.3定义方法61
4.1.4构建构造器62
4.1.5将消息传给方法或构造器63
4.2对象66
4.2.1创建对象67
4.2.2使用对象69
4.3类的更多细节71
4.3.1从方法返回值71
4.3.2使用this关键字73
4.3.3控制对类成员的访问74
4.3.4类成员75
4.3.5初始化字段78
4.3.6小结79
4.3.7问题和练习:类79
4.3.8问题和练习:对象80
4.4嵌套类81
4.4.1为什么使用嵌套类81
4.4.2静态嵌套类82
4.4.3内部类82
4.4.4覆盖82
4.4.5序列化83
4.4.6内部类实例83
4.4.7局部类和匿名类85
4.4.8Lambda表达式92
4.4.9何时使用嵌套类、局部类、匿名类和Lambda表达式105
4.4.10问题和练习:嵌套类105
4.5枚举类型106
4.5.1问题和练习:枚举类型108
第5章注解109
5.1注解基础知识109
5.1.1注解的格式109
5.1.2注解的使用场景110
5.2声明注解类型110
5.3预定义注解类型111
5.3.1Java语言使用的注解类型111
5.3.2应用于其他注解的注解112
5.4类型注解和可插拔类型系统113
5.5重复注解114
5.5.1声明重复注解类型114
5.5.2声明容器注解类型115
5.5.3检索注解115
5.5.4设计时的注意事项115
5.6问题和练习:注解115
第6章接口与继承117
6.1接口117
6.1.1Java语言的接口117
6.1.2将接口用作API118
6.1.3定义接口118
6.1.4实现接口119
6.1.5将接口用作类型120
6.1.6进化接口121
6.1.7默认方法122
6.1.8小结129
6.1.9问题和练习:接口129
6.2继承130
6.2.1Java平台中类的层次结构130
6.2.2继承实例131
6.2.3子类能做什么132
6.2.4超类的私有成员132
6.2.5转换对象132
6.2.6状态、实现和类型的多重继承133
6.2.7覆盖和屏蔽方法133
6.2.8多态性136
6.2.9屏蔽字段138
6.2.10使用super关键字138
6.2.11将对象用作超类140
6.2.12编写final类和方法142
6.2.13抽象方法和类143
6.2.14小结145
6.2.15问题和练习:继承145
第7章泛型147
7.1为什么用泛型147
7.2泛型类型147
7.2.1一个简单的Box类148
7.2.2Box类的泛型版本148
7.2.3类型参数命名约定148
7.2.4泛型类型的调用和实例化149
7.2.5钻石运算符149
7.2.6多个类型参数149
7.2.7参数化类型150
7.2.8原生类型150
7.3泛型方法151
7.4受限类型形式参数152
7.4.1多重限制153
7.4.2泛型方法和受限类型形式参数154
7.5泛型、继承和子类型154
7.5.1泛型类和子类型155
7.6类型推导156
7.6.1类型推导和泛型方法156
7.6.2类型推导和泛型类的实例化157
7.6.3类型推导与泛型类和非泛型类的泛型构造函数157
7.6.4目标类型158
7.7通配符159
7.7.1上界通配符159
7.7.2无界通配符160
7.7.3下界通配符160
7.7.4通配符和子类型161
7.7.5通配符匹配和辅助方法162
7.7.6通配符使用指南164
7.8类型擦除165
7.8.1泛型类型的擦除165
7.8.2泛型方法的擦除166
7.8.3类型擦除效果和桥方法167
7.8.4不可具体化类型和可变参数方法168
7.9泛型的局限性170
7.9.1不能用基本数据类型实例化泛型类型170
7.9.2不能创建类型参数实例171
7.9.3不能声明类型为“类型参数”
|
內容試閱:
|
前 言The Java Tutorial: A Short Course on the Basics, Sixth Edition自2010年年初Oracle公司收购Sun公司以来,Java语言迎来激动人心的时代。正如Java Community Process计划的活动所印证的,Java语言将不断发展。本书基于Java SE 8(Java Platform Standard Edition 8)并引用其API。
相比本书第5版(针对的是Java版本7),第6版有一些新特点:
Lambda表达式使得功能可作为方法参数使用,代码作为数据使用。Lambda表达式描述单个方法接口(也称为功能接口)的实例会更简洁。4.4.8节介绍该专题。
联合使用类型注解和可插拔类型系统可改善类型检测,重复注解使得同样的注解可应用于声明和类型使用。5.4节和5.5节介绍相关专题。
默认方法是接口中实现的方法。使用默认方法,可将新功能添加到接口中,并确保与这些接口的老版本代码兼容。6.1.7节介绍该专题。
聚合操作可在元素流上执行功能型操作,特别是集合上的批量操作,如串行或并行的map-reduce转换。12.3节介绍该专题。
在限制恶意程序和RIA攻击方面有了一些改进。详情可参考第16章、19.5节和19.6节、20.4节等新增或修订章节。
日期时间API可用于表示日期和时间并处理日期和时间值。这些API支持国际标准日历系统和其他常见的全球日历。新增的第21章介绍该专题。
如果读者准备参加Java SE 8认证考试,本书可提供一定的帮助。附录中列出三个级别的考试,详细介绍每个级别考试覆盖的内容,并指出书中涉及相关信息的章节及有价值的参考资料。注意,这只是参加认证考试要准备的众多内容之一。检查在线教程,下载最新的认证目标和参考教程的相关章节。
所有材料都经过Oracle Java工程组的成员审校,以确保书中信息都是正确和最新的。本书也被置于Oracle网站的在线教程内,其网址如下:
http:docs.oracle.comjavasetutorial本书内容被视为Java的核心教程,是初学者和中级程序员的必学知识。只要掌握这些内容,就可以研究网站上Java平台文档的其余部分。如果你有兴趣开发复杂的富互联网应用(RIA),可以查看JDK中的Java图形用户界面(GUI)工具包JavaFX。相关专题参考第22章。
和以前的版本一样,本书的目的是编写一个易于阅读的实用程序员指南,以协助读者学习使用Java提供的丰富环境来构建应用程序、applet和组件。让我们继续学习编程吧!
读者对象本书同时面向新手和有经验的程序员。
新手通读本书(包括第1章中编译和运行第一个程序的每一步指令)收获会很大。
有经验的过程式语言(如C语言)程序员可以从面向对象的概念和Java程序语言的特性开始学习。
有经验的程序员可以直接学习高级主题,如泛型、并发和部署等。
本书内容适用于不同层次的程序员学习。
如何使用本书本书可直接从头读到尾或忽略某些主题跳到另一个主题。这些信息的组织有一定的逻辑顺序,并尽可能避免引用前文。
本书例子都在JDK 8中编译。读者需要下载该版本或更新的版本以编译和运行实例。
本书对引用的一些材料提供了在线帮助(如可下载的实例、问题和习题的答案、JDK 8手册和API规范)。
相关链接在文中以脚注形式给出,例如:
8docsapijavalangClass.html和tutorialjavagenericsexamplesBoxDemo.javaOracle网站上Java文档主页的地址如下:
http:docs.oracle.comjavase访问脚注中给出的在线文件时,需要将脚注中的URL链接在Java文档主页之后,例如:
http:docs.oracle.comjavase8docsapijavalangClass.html和http:docs.oracle.comjavasetutorialjavagenericsexamplesBoxDemo.javaJava教程也提供了两种格式的电子书:
移动电子书文件,适用于Kindle。
ePub电子书文件,适用于iPad、Nook和其他支持ePub格式的设备。
每本电子书包含唯一的路径,对应本书的相关章节。读者可通过Java教程主页上的链接“In Book Form”下载电子书:
http:docs.oracle.comjavasetutorialindex.html欢迎读者给我们反馈,请通过下述教程反馈页面联系我们:
http:docs.oracle.comjavasefeedback.html致谢如果没有Oracle Java工程组不知疲倦地检查本书的技术内容,本书将不能面世。本书第6版的推出,要特别感谢Alan Bateman、Alex Buckley、Stephen Colebourne、Joe Darcy、Jeff Dinkins、Mike Duigou、Brian Goetz、Andy Herrick、Stuart Marks、Thomas Ng、Roger Riggs、Leif Samuelsson和Daniel Smith。
Jordan Douglas和Dawn Tyler快速高效地制作了书中的专业插图。
Janet Blowney、Deborah Owens和Susan Shepard仔细完整地对书稿进行了编辑加工。
感谢团队成员Devika Gollapudi、Ram Goyal和Alexey Zhebel的支持。
最后(但同样重要)要感谢Sowmya Kannan、Sophia Mikulinsky、Alan Sommerer和Barbara Ramsey等管理人员的支持。
|
|