Java编程入门官方教程(第7版)
出版信息
Java编程入门官方教程(第7版)
作者:[美]Herbert Schildt 着 左雷 译
定价:89元
印次:1-1
ISBN:9787302499329
出版日期:2018.06.01
印刷日期:2018.05.25
定价:89元
印次:1-1
ISBN:9787302499329
出版日期:2018.06.01
印刷日期:2018.05.25
内容简介
针对Java SE 9做了全面细緻的更新,将引导你轻鬆学习新的核心Java编程技能,指导你立即着手编写Java程式。《Java编程入门官方教程(第7版)》开篇讲述Java语言基础知识(如创建、编译和运行Java程式的方式),此后浓墨重彩地描述构成Java语言核心的关键字、语法和结构。最后介绍Java的一些高级特性,如多执行绪程式设计、泛型、lambda表达式、Swing、JavaFX、新“模组”功能以及Java最新的互动式编程工具Jshell。
目录
第1章Java基础1
1.1Java的起源1
1.2Java对Internet的贡献2
1.2.1Java简化了基于Web的编程3
1.2.2Javaapplet3
1.2.3安全性3
1.2.4可移植性3
1.3Java的魔法:位元组码3
1.4超越applet4
1.5Java的主要术语4
1.6面向对象程式设计5
1.6.1封装5
1.6.2多态性6
1.6.3继承6
1.7获得Java开发工具包6
1.8第一个简单的程式7
1.8.1输入程式7
1.8.2编译程式8
1.8.3逐行分析第一个程式8
1.9处理语法错误9
1.10第二个简单程式10
1.11另一种数据类型11
1.12两条控制语句13
1.12.1if语句13
1.12.2for循环语句14
1.13创建代码块15
1.14分号和定位16
1.15缩进原则16
1.16Java关键字18
1.17Java标识符18
1.18Java类库19
1.19自测题19
第2章数据类型与运算符21
2.1数据类型为什幺重要21
2.2Java的基本类型21
2.2.1整数类型22
2.2.2浮点型23
2.2.3字元型23
2.2.4布尔类型24
2.3字面值26
2.3.1十六进制、八进制和二进制字面值26
2.3.2字元转义序列26
2.3.3字元串字面值27
2.4变数详解28
2.4.1初始化变数28
2.4.2动态初始化28
2.5变数的作用域和生命期28
2.6运算符30
2.7算术运算符30
2.8关係运算符和逻辑运算符32
2.9短路逻辑运算符33
2.10赋值运算符34
2.11速记赋值34
2.12赋值中的类型转换35
2.13不兼容类型的强制转换36
2.14运算符的优先权37
2.15表达式38
2.15.1表达式中的类型转换38
2.15.2间距和圆括弧40
2.16自测题40
第3章程式控制语句41
3.1从键盘输入字元41
3.2if语句42
3.2.1嵌套if语句43
3.2.2if-else-if阶梯状结构44
3.3switch语句44
3.4for循环48
3.4.1for循环的一些变体50
3.4.2缺失部分要素的for循环50
3.4.3无限循环51
3.4.4没有循环体的循环51
3.4.5在for循环内部声明循环控制变数52
3.4.6增强型for循环52
3.5while循环52
3.6do-while循环54
3.7使用break语句退出循环57
3.8将break语句作为一种goto语句使用58
3.9使用continue语句61
3.10嵌套循环65
3.11自测题65
第4章类、对象和方法67
4.1类的基础知识67
4.1.1类的基本形式67
4.1.2定义类68
4.2如何创建对象70
4.3引用变数和赋值70
4.4方法71
4.5从方法返回值73
4.6返回值73
4.7使用形参75
4.8构造函式81
4.9带形参的构造函式82
4.10深入介绍new运算符83
4.11垃圾回收83
4.12this关键字84
4.13自测题85
第5章其他数据类型与运算符87
5.1数组87
5.2多维数组91
5.3不规则数组91
5.3.1三维或更多维的数组92
5.3.2初始化多维数组93
5.4另一种声明数组的语法93
5.5数组引用赋值94
5.6使用length成员95
5.7for-each形式的循环99
5.7.1叠代多维数组101
5.7.2套用增强型for循环102
5.8字元串102
5.8.1构造字元串102
5.8.2操作字元串103
5.8.3字元串数组104
5.8.4字元串是不可变的105
5.8.5使用String控制switch语句106
5.9使用命令行实参106
5.10位运算符107
5.10.1位运算符的与、或、异或和非108
5.10.2移位运算符111
5.10.3位运算符的赋值速记符112
5.11?运算符114
5.12自测题115
第6章方法和类详解117
6.1控制对类成员的访问117
6.2向方法传递对象121
6.3返回对象124
6.4方法重载125
6.5重载构造函式129
6.6递归132
6.7理解static关键字134
6.8嵌套类和内部类138
6.9varargs140
6.9.1varargs基础141
6.9.2重载varargs方法143
6.9.3varargs和歧义144
6.10自测题145
第7章继承147
7.1继承的基础知识147
7.2成员访问与继承149
7.3构造函式和继承151
7.4使用super调用超类构造函式152
7.5使用super访问超类成员155
7.6创建多级层次结构158
7.7何时调用构造函式160
7.8超类引用和子类对象161
7.9方法重写164
7.10重写的方法支持多态性166
7.11为何使用重写方法167
7.12使用抽象类170
7.13使用final173
7.13.1使用final防止重写173
7.13.2使用final防止继承174
7.13.3对数据成员使用final174
7.14Object类175
7.15自测题175
第8章包和接口177
8.1包177
8.1.1定义包177
8.1.2寻找包和CLASSPATH178
8.1.3一个简短的包示例178
8.2包和成员访问179
8.3理解被保护的成员181
8.4导入包182
8.5Java的类库位于包中183
8.6接口184
8.7实现接口185
8.8使用接口引用187
8.9接口中的变数192
8.10接口能够扩展193
8.11默认接口方法193
8.11.1默认方法的基础知识194
8.11.2默认方法的实际套用195
8.11.3多继承问题196
8.12在接口中使用静态方法196
8.13私有接口方法197
8.14有关包和接口的最后思考198
8.15自测题198
第9章异常处理199
9.1异常的层次结构199
9.2异常处理基础200
9.2.1使用关键字try和catch200
9.2.2一个简单的异常示例200
9.3未捕获异常的结果202
9.4使用多个catch语句203
9.5捕获子类异常204
9.6try代码块可以嵌套205
9.7抛出异常206
9.8Throwable详解207
9.9使用finally208
9.10使用throws语句210
9.11新增的3种异常功能211
9.12Java的内置异常212
9.13创建异常子类213
9.14自测题217
第10章使用I/O219
10.1Java的I/O基于流219
10.2位元组流和字元流219
10.3位元组流类220
10.4字元流类220
10.5预定义流221
10.6使用位元组流221
10.6.1读取控制台输入222
10.6.2写入控制台输出223
10.7使用位元组流读写档案223
10.7.1从档案输入223
10.7.2写入档案226
10.8自动关闭档案227
10.9读写二进制数据229
10.10随机访问档案232
10.11使用Java字元流234
10.11.1使用字元流的控制台输入235
10.11.2使用字元流的控制台输出237
10.12使用字元流的档案I/O237
10.12.1使用FileWriter238
10.12.2使用FileReader238
10.13使用Java的类型封装器转换数值字元串239
10.14自测题246
第11章多执行绪程式设计247
11.1多执行绪的基础知识247
11.2Thread类和Runnable接口248
11.3创建一个执行绪248
11.4创建多个执行绪255
11.5确定执行绪何时结束257
11.6执行绪的优先权259
11.7同步262
11.8使用同步方法262
11.9同步语句264
11.10使用notify()、wait()和notifyAll()的执行绪通信266
11.11执行绪的挂起、继续执行和停止270
11.12自测题274
第12章枚举、自动装箱、静态导入和注解275
12.1枚举275
12.2Java语言中的枚举是类类型277
12.3values()和valueOf()方法277
12.4构造函式、方法、实例变数和枚举278
12.5枚举继承enum279
12.6自动装箱284
12.7类型封装器284
12.8自动装箱的基础知识286
12.9自动装箱和方法286
12.10发生在表达式中的自动装箱/自动拆箱287
12.11静态导入289
12.12注解(元数据)290
12.13自测题292
第13章泛型295
13.1泛型的基础知识295
13.2一个简单的泛型示例296
13.2.1泛型只能用于引用类型298
13.2.2泛型类型是否相同基于其类型
实参298
13.2.3带有两个类型形参的泛型类299
13.2.4泛型类的一般形式300
13.3约束类型300
13.4使用通配符实参302
13.5约束通配符304
13.6泛型方法306
13.7泛型构造函式308
13.8泛型接口308
13.9原类型和遗留代码313
13.10使用菱形运算符进行类型推断315
13.11擦除特性315
13.12歧义错误316
13.13一些泛型限制316
13.13.1类型形参不能实例化316
13.13.2对静态成员的限制317
13.13.3泛型数组限制317
13.13.4泛型异常限制318
13.14继续学习泛型318
13.15自测题318
第14章lambda表达式和方法引用319
14.1lambda表达式简介319
14.1.1lambda表达式的基础知识320
14.1.2函式式接口320
14.1.3几个lambda表达式示例322
14.2块lambda表达式325
14.3泛型函式式接口326
14.4lambda表达式和变数捕获330
14.5从lambda表达式中抛出异常331
14.6方法引用332
14.6.1静态方法的方法引用332
14.6.2实例方法的方法引用334
14.7构造函式引用336
14.8预定义的函式式接口338
14.9自测题339
第15章模组341
15.1模组基础341
15.1.1简单的模组示例342
15.1.2编译、运行第一个模组示例345
15.1.3requires和exports346
15.2java.base和平台模组346
15.3旧代码和未命名的模组347
15.4导出到特定的模组347
15.5使用requirestransitive348
15.6使用服务351
15.6.1服务和服务提供程式的基础知识351
15.6.2基于服务的关键字351
15.6.3基于模组的服务示例352
15.7其他模组功能356
15.7.1open模组357
15.7.2opens语句357
15.7.3requiresstatic357
15.8继续模组的学习357
15.9自测题358
第16章Swing介绍359
16.1Swing的起源和设计原则359
16.2组件和容器360
16.2.1组件361
16.2.2容器361
16.2.3顶级容器窗格361
16.3布局管理器362
16.4第一个简单的Swing程式362
16.5Swing事件处理365
16.5.1事件365
16.5.2事件源365
16.5.3事件监听器366
16.5.4事件类和监听器接口366
16.6使用JButton366
16.7使用JTextField369
16.8使用JCheckBox371
16.9使用JList374
16.10使用匿名内部类或lambda表达式来处理事件380
16.11自测题381
第17章JavaFX简介383
17.1JavaFX的基本概念383
17.1.1JavaFX包384
17.1.2Stage和Scene类384
17.1.3节点和场景图384
17.1.4布局384
17.1.5Application类和生命周期方法384
17.1.6启动JavaFX应用程式385
17.2JavaFX应用程式的骨架385
17.3编译和运行JavaFX程式387
17.4应用程式执行绪387
17.5使用简单的JavaFX控制项Label387
17.6使用按钮和事件389
17.6.1事件基础389
17.6.2按钮控制项简介390
17.6.3演示事件处理和按钮390
17.7其他3个JavaFX控制项392
17.7.1CheckBox392
17.7.2ListView396
17.7.3TextField399
17.8效果和变换简介401
17.8.1效果401
17.8.2变换403
17.8.3演示效果和变换403
17.9进一步学习406
17.10自测题406
附录A自测题答案409
附录B使用Java的文档注释439
附录CJavaWebStart概述445
附录DJShell简介451
附录E更多Java关键字459