资源名称:《Java 7程序设计》PDF 下载
内容简介:
《Java7程序设计入门经典》(作者施密特、斯克林)是一本在世界范围内有一定影响力的经典Java教程,由拥有数十年编程经验的资深软件开发专家撰写,被世界多所著名高校作为教材,广受好评,是最适合教学和自学的Java参考书之一。本书根据最新的Java 7撰写,全面系统地讲解了Java语言的语法和核心要素、利用Swing进行GUI编程以及Java API库三大方面的内容,包含大量代码示例、练习和自测题。
《Java7程序设计入门经典》共27章,分为三部分。第一部分(第1~16章)描述定义Java语言的元素和编程的核心元素,首先对Java进行概述,然后介绍数据类型、运算符和控制语句的基本概念,接着讲解该语言更复杂的特性,如类、方法、继承、接口、包、异常、多线程和泛型。第二部分(第17~21章)介绍Swing,首先对用Swing进行GUI编程进行概述,阐述组件、事件、布局管理器的基本概念,然后依次对Swing组件、菜单、对话框、绘图等进行介绍。第三部分(第22~27章)探究Java API库的部分内容,其中包括java.lang包和java.util包的大部分内容,以及集合框架、网络和并发API等。
作者简介:
世界知名程序设计大师,是c、c++、Java和c#编程语言方面的权威,也是windowrs编程方面的专家。拥有伊利诺伊大学的计算机科学硕士学位。畅销书作家,他的编程书籍销量已经超过300万册,并被翻译成多种语言在世界范围内广为流传。美国科尔比学院计算机科学系教授,研究方向为算法图形理论、面向对象程序设计。拥有30多年丰富的教学经验,讲授过数学、计算机科学以及Java课程。他出版过教科书《面向对象设计原理与模式(Java版)》。
资源目录:
译者序
前言
第一部分 Java语言
第1章 Java编程基础2
1.1 计算基础3
1.1.1 计算机的硬件组成3
1.1.2 位、字节和二进制4
1.1.3 操作系统5
1.2 程序5
1.3 编程语言6
1.4 Java语言7
1.4.1 Java的起源7
1.4.2 Java对互联网的贡献9
1.4.3 Java applet9
1.4.4 安全性9
1.4.5 可移植性9
1.4.6 Java的解决方案:字节码10
1.4.7 Java的演进10
1.5 面向对象编程的关键特性11
1.5.1 封装12
1.5.2 多态12
1.5.3 继承13
1.6 Java开发工具包13
1.7 第一个简单的程序14
1.7.1 输入程序15
1.7.2 编译程序15
1.7.3 运行程序15
1.7.4 逐行解析第一个简单的程序16
1.8 处理语法错误18
1.9 第二个简单的程序18
1.10 另一种数据类型20
1.11 两种控制语句23
1.11.1 if语句23
1.11.2 for循环25
1.12 创建代码块26
1.13 分号和语句的位置27
1.14 关于缩进28
1.15 Java关键字30
1.16 Java中的标识符30
1.17 Java类库31
1.18 习题32
第2章 数据类型和运算符34
2.1 为什么数据类型很重要34
2.2 Java的基本数据类型34
2.2.1 整数35
2.2.2 浮点类型36
2.2.3 字符37
2.2.4 布尔类型38
2.3 字面量40
2.3.1 十六进制、八进制和二进制字面量41
2.3.2 转义字符序列41
2.3.3 字符串字面量42
2.4 深入解析变量43
2.4.1 初始化变量43
2.4.2 动态初始化44
2.5 变量的作用域和生命周期44
2.6 运算符47
2.7 算术运算符47
2.8 关系运算符和逻辑运算符49
2.9 具有“短路”功能的逻辑运算符50
2.10 赋值运算符52
2.11 速记赋值运算符53
2.12 赋值中的类型转换53
2.13 使用强制类型转换55
2.14 运算符的优先级56
2.15 表达式58
2.15.1 表达式中的类型转换58
2.15.2 空白和圆括号60
2.16 习题60
第3章 程序控制语句63
3.1 从键盘输入字符63
3.2 if语句65
3.3 嵌套的if语句66
3.4 if-else-if梯队67
3.5 switch语句68
3.6 嵌套的switch语句71
3.7 for循环74
3.8 for循环中的一些特殊情况76
3.8.1 缺少部分76
3.8.2 无限循环77
3.8.3 没有循环体的循环78
3.9 在for语句内部声明循环控制变量78
3.10 增强的for循环79
3.11 while循环80
3.12 do-while循环81
3.13 使用break语句退出循环86
3.14 像使用goto语句一样使用break语句88
3.15 使用continue语句91
3.16 嵌套的循环96
3.17 习题97
第4章 类、对象和方法初探100
4.1 类的基础知识100
4.1.1 类的一般形式101
4.1.2 定义类101
4.2 如何创建对象104
4.3 变量引用和赋值语句105
4.4 方法106
4.5 从方法返回108
4.6 返回值109
4.7 使用形参111
4.8 构造函数119
4.9 含有形参的构造函数120
4.10 new运算符再探123
4.11 垃圾回收和终结器123
4.12 使用this关键字126
4.13 习题128
第5章 更多数据类型和运算符131
5.1 数组131
5.2 多维数组136
5.2.1 二维数组136
5.2.2 不规则数组137
5.2.3 三维或多维数组139
5.2.4 初始化多维数组139
5.3 其他声明数组的语法140
5.4 对数组的引用赋值141
5.5 使用成员length142
5.6 for-each风格的for循环149
5.6.1 遍历多维数组152
5.6.2 应用增强for循环153
5.7 字符串154
5.7.1 构造字符串154
5.7.2 操作字符串155
5.7.3 字符串数组156
5.7.4 字符串是不可改变的157
5.7.5 使用字符串控制switch语句158
5.8 使用命令行参数159
5.9 按位运算161
5.9.1 按位与、按位或、按位异或、按位非运算符161
5.9.2 移位运算符165
5.9.3 位速记赋值运算符167
5.10 问号运算符170
5.11 习题171
第6章 深入解析类和方法174
6.1 控制对类成员的访问174
6.2 向方法传递对象180
6.3 如何传递实参181
6.4 返回对象183
6.5 重载方法185
6.6 重载构造函数189
6.7 递归195
6.8 理解关键字static199
6.8.1 静态变量199
6.8.2 静态方法201
6.8.3 静态代码块203
6.9 嵌套类和内部类207
6.10 长度可变的实参vararg210
6.10.1 vararg基础210
6.10.2 重载varargs方法213
6.10.3 vararg和二义性214
6.11 习题215
第7章 继承220
7.1 继承基础220
7.2 成员访问和继承223
7.3 构造函数和继承226
7.4 用super关键字调用超类的构造函数227
7.5 用super关键字访问超类成员232
7.6 创建多层层次结构235
7.7 执行构造函数的时机238
7.8 超类引用与子类对象239
7.9 方法重写244
7.10 用重写方法支持多态246
7.11 为什么要重写方法248
7.12 使用抽象类252
7.13 使用final关键字256
7.13.1 用final关键字防止方法重写256
7.13.2 用final关键字防止继承257
7.13.3 对数据成员使用final关键字257
7.14 Object类258
7.15 习题259
第8章 接口261
8.1 接口的基础知识261
8.2 创建接口262
8.3 实现接口263
8.4 使用接口引用266
8.5 实现多个接口268
8.6 接口中的常量276
8.7 可扩展的接口277
8.8 嵌套的接口278
8.9 关于接口的最后思考279
8.10 习题279
第9章 包281
9.1 包的基础知识281
9.1.1 定义包282
9.1.2 寻找包与环境变量CLASSPATH282
9.1.3 一个短小的包例子283
9.2 包与成员访问284
9.2.1 一个包访问的例子285
9.2.2 受保护的成员287
9.3 导入包289
9.4 静态导入293
9.5 习题295
第10章 异常处理298
10.1 异常层次结构298
10.2 异常处理基础299
10.2.1 使用关键字try和catch299
10.2.2 一个简单的异常处理例子300
10.3 未捕获异常的后果302
10.4 异常可以优雅地处理错误303
10.5 使用多个catch子句305
10.6 捕获子类异常306
10.7 嵌套的try块307
10.8 抛出异常309
10.9 进一步解读Throwable类311
10.10 使用finally块312
10.11 使用throws关键字314
10.12 Java的内置异常315
10.13 JDK 7中新添加的异常特性317
10.14 创建异常子类319
10.15 习题325
第11章 使用输入/输出329
11.1 Java的输入/输出是建立在流上的330
11.2 字节流和字符流330
11.3 字节流类330
11.4 字符流类331
11.5 预定义的流331
11.6 使用字节流332
11.6.1 读控制台输入333
11.6.2 写控制台输出334
11.7 使用字节流读写文件335
11.7.1 从文件中输入335
11.7.2 写文件339
11.8 自动关闭文件340
11.9 读写二进制数据343
11.10 随机访问文件347
11.11 使用Java字符流350
11.11.1 用控制台获得字符流输入351
11.11.2 使用字符流进行控制台输出353
11.12 使用字符流进行文件输入/输出354
11.12.1 使用FileWriter类355
11.12.2 使用FileReader类356
11.12.3 File类357
11.12.4 获得文件属性357
11.12.5 获得目录列表359
11.12.6 使用FilenameFilter接口360
11.12.7 listFiles()方法361
11.12.8 多种文件实用方法361
11.13 使用Java的类型包装器来转换数值字符串363
11.14 习题371
第12章 多线程编程375
12.1 多线程基础375
12.2 Thread类和Runnable接口376
12.3 创建线程376
12.4 创建多个线程384
12.5 判定线程终止的时间386
12.6 线程的优先级389
12.7 同步390
12.8 使用同步方法390
12.9 synchronized语句393
12.10 使用方法notify()、wait()和notifyAll()进行线程通信396
12.11 线程挂起、恢复和终止402
12.12 习题406
第13章 枚举、自动装箱和注解410
13.1 枚举410
13.2 Java的枚举是类类型413
13.3 values()方法和valueOf()方法413
13.4 构造函数、方法、实例变量和枚举415
13.5 从Enum类继承枚举416
13.6 自动装箱423
13.6.1 类型包装器和装箱424
13.6.2 自动装箱基础425
13.6.3 装箱与方法426
13.6.4 表达式中的自动装箱和自动拆箱427
13.6.5 警告429
13.7 注解(元数据)430
13.7.1 创建和使用注解430
13.7.2 内置注解431
13.8 习题432
第14章 泛型436
14.1 泛型基础436
14.1.1 一个简单的泛型例子437
14.1.2 泛型只能用于对象440
14.1.3 基于不同类型实参的不同泛型类型440
14.1.4 有两个类型形参的泛型类441
14.1.5 泛型类的一般形式442
14.2 有界的类型443
14.3 使用有通配符的实参446
14.4 有界的通配符449
14.5 泛型方法452
14.6 泛型构造函数454
14.7 泛型的类层次结构454
14.8 泛型接口458
14.9 原始类型和遗留代码464
14.10 带有菱形运算符的类型推断467
14.11 清除468
14.12 二义性错误469
14.13 泛型的一些限制470
14.13.1 不能实例化类型形参470
14.13.2 对静态成员的限制470
14.13.3 泛型数组的限制470
14.13.4 泛型异常的限制471
14.14 习题472
第15章 applet与剩余的Java关键字475
15.1 applet基础475
15.2 applet的完整骨架478
15.3 applet的初始化和终止479
15.4 applet架构的关键点480
15.5 请求重绘480
15.6 使用状态窗口485
15.7 向applet传递形参486
15.8 剩余的Java关键字488
15.8.1 修饰符volatile488
15.8.2 修饰符transient488
15.8.3 关键字instanceof488
15.8.4 关键字strictfp489
15.8.5 关键字assert489
15.8.6 原生方法489
15.9 习题491
第16章 面向对象设计介绍493
16.1 优雅的软件及其重要性493
16.2 优雅的方法496
16.2.1 命名约定497
16.2.2 方法的内聚497
16.2.3 形式良好的对象499
16.2.4 内部文档500
16.2.5 外部文档501
16.3 优雅的类503
16.3.1 类的内聚和专家模式503
16.3.2 避免重复505
16.3.3 完整的接口507
16.3.4 设计时要考虑变化507
16.3.5 最少知识原则510
16.4 继承与委托的比较511
16.4.1 UML类图512
16.4.2 从代码重用的角度看513
16.4.3 is-a关系514
16.4.4 类似的行为516
16.4.5 多态518
16.4.6 继承的代价519
16.5 设计模式521
16.5.1 适配者模式522
16.5.2 观察者模式525
16.6 习题529
第二部分 利用Swing工具箱进行GUI编程
第17章 Swing基础534
17.1 Swing的起源和设计理念534
17.2 组件和容器536
17.2.1 组件536
17.2.2 容器537
17.2.3 顶级容器窗格537
17.3 布局管理器538
17.4 第一个简单的Swing程序539
17.5 事件处理544
17.5.1 事件544
17.5.2 事件源544
17.5.3 事件侦听器545
17.5.4 事件类和侦听器接口545
17.5.5 适配器类546
17.6 使用按钮547
17.7 JTextField类介绍554
17.8 使用匿名内部类来处理事件564
17.9 习题565
第18章 探索Swing控件567
18.1 JLabel类和ImageIcon类567
18.2 Swing按钮570
18.2.1 处理动作事件571
18.2.2 处理项事件571
18.2.3 JButton类572
18.2.4 JToggleButton类574
18.2.5 复选框576
18.2.6 单选按钮579
18.3 JTextField类581
18.4 JScrollPane类590
18.5 JList类597
18.6 JComboBox类601
18.7 树603
18.8 JTable类606
18.9 模型简介609
18.10 习题609
第19章 使用菜单612
19.1 菜单基础612
19.2 JMenuBar类、JMenu类和JMenuItem类概览613
19.2.1 JMenuBar类613
19.2.2 JMenu类614
19.2.3 JMenuItem类615
19.3 创建主菜单616
19.4 为菜单项添加助记键和快捷键620
19.5 为菜单项添加图像和工具提示622
19.6 使用JRadioButtonMenuItem类和JCheckBoxMenuItem类629
19.7 习题632
第20章 对话框634
20.1 JOptionPane类634
20.2 showMessageDialog()方法636
20.3 showConfirmDialog()方法640
20.4 showInputDialog()方法644
20.5 showOptionDialog()方法648
20.6 JDialog类652
20.7 创建无模式的对话框656
20.8 用JFileChooser类选择文件657
20.9 习题667
第21章 线程、applet和绘图670
21.1 Swing中的多线程670
21.2 使用Timer类676
21.3 创建Swing的applet681
21.4 绘图689
21.4.1 绘图基础689
21.4.2 图形上下文689
21.4.3 计算可绘图区域690
21.4.4 请求绘图691
21.4.5 绘图的例子691
21.5 习题695
第三部分 畅游Java API库
第22章 处理字符串698
22.1 字符串的基础知识698
22.2 字符串的构造函数699
22.3 三个与字符串有关的语言特性701
22.3.1 字符串字面量701
22.3.2 字符串拼接702
22.3.3 字符串与其他数据类型拼接702
22.3.4 重写toString()方法703
22.4 length()方法707
22.5 获得字符串中的字符708
22.5.1 charAt()方法708
22.5.2 getChars()方法708
22.5.3 toCharArray()方法709
22.6 字符串比较710
22.6.1 equals()方法和equalsIgnoreCase()方法710
22.6.2 equals()方法与“==”运算符的比较711
22.6.3 regionMatches()方法712
22.6.4 startsWith()方法和endsWith()方法712
22.6.5 compareTo()方法和compareToIgnoreCase()方法713
22.7 使用indexOf()方法和lastIndexOf()方法715
22.8 获得修改的字符串716
22.8.1 substring()方法716
22.8.2 replace()方法718
22.8.3 trim()方法719
22.9 改变字符串中字符的大小写720
22.10 StringBuffer类和StringBuilder类722
22.11 习题723
第23章 探索java.lang包725
23.1 基本类型包装器726
23.1.1 Number类726
23.1.2 Double类和Float类726
23.1.3 Byte类、Short类、Integer类和Long类728
23.1.4 Character类731
23.1.5 Boolean类734
23.1.6 自动装箱和类型包装器734
23.2 Math类735
23.3 Process类738
23.4 ProcessBuilder类738
23.5 Runtime类740
23.6 System类742
23.6.1 使用currentTimeMillis()方法测量程序执行的时间743
23.6.2 使用arraycopy()方法744
23.6.3 获得属性值744
23.6.4 重定向标准输入流和标准输出流745
23.7 Object类746
23.8 Class类747
23.9 Enum类749
23.10 与线程有关的类和Runnable接口749
23.11 其他类749
23.12 java.lang包中的接口750
23.12.1 Comparable接口750
23.12.2 Appendable接口752
23.12.3 Iterable接口752
23.12.4 Readable接口753
23.12.5 CharSequence接口753
23.12.6 AutoCloseable接口753
23.13 习题754
第24章 探索java.util包756
24.1 Locale类757
24.2 使用日期和时间760
24.2.1 Date类760
24.2.2 Calendar类和GregorianCalendar类761
24.3 用Formatter类格式化输出766
24.3.1 Formatter类的构造函数766
24.3.2 格式化基础768
24.3.3 格式化字符串和字符769
24.3.4 格式化数字769
24.3.5 格式化日期和时间770
24.3.6 说明符%n和说明符%%772
24.3.7 指定最小的域宽度772
24.3.8 指定精度773
24.3.9 使用格式标志774
24.3.10 大写字母选项776
24.3.11 使用实参索引777
24.3.12 为不同的地区设置格式化778
24.3.13?关闭Formatter对象778
24.4 格式化和printf()方法781
24.5 Scanner类783
24.5.1?Scanner类的构造函数783
24.5.2?Scanner类的基础知识783
24.5.3?Scanner类的例子785
24.5.4?Scanner类的其他特性789
24.6 Random类790
24.7 使用Observable类和Observer接口792
24.8 Timer类和TimerTask类795
24.9 其他混杂的应用类和接口797
24.10 习题798
第25章 使用集合框架中的数据结构800
25.1 数据结构概览800
25.1.1?栈和队列801
25.1.2?链表801
25.1.3?树802
25.1.4?散列表803
25.1.5?选择数据结构803
25.2 集合概览804
25.3 集合接口805
25.3.1?Collection接口806
25.3.2?List接口807
25.3.3?Set接口808
25.3.4?SortedSet接口809
25.3.5?NavigableSet接口809
25.3.6?Queue接口810
25.3.7?Deque接口811
25.4 集合类813
25.4.1?ArrayList类814
25.4.2?LinkedList类817
25.4.3?HashSet类820
25.4.4?TreeSet类822
25.4.5?LinkedHashSet类824
25.4.6?ArrayDeque类825
25.4.7?PriorityQueue类827
25.5 通过迭代器访问集合828
25.5.1?使用迭代器829
25.5.2?用for-each风格的循环代替迭代器831
25.6 使用映射832
25.6.1?映射接口832
25.6.2?映射类835
25.7 比较器840
25.8 集合算法842
25.9 Arrays类845
25.10 遗留类和遗留接口846
25.10.1?Enumeration接口846
25.10.2?Vector类846
25.10.3?Stack类846
25.10.4?Dictionary类846
25.10.5?Hashtable类846
25.10.6?Properties类847
25.11 习题847
第26章 使用java.net包进行网络编程849
26.1 网络基础849
26.2 网络类和网络接口850
26.3 InetAddress类851
26.4 Socket类853
26.5 URL类856
26.6 URLConnection类858
26.7 HttpURLConnection类862
26.8 数据报865
26.8.1?DatagramSocket类865
26.8.2?DatagramPacket类865
26.8.3 数据报的例子866
26.9 习题869
第27章 并发实用工具870
27.1 并发API包871
27.1.1 java.util.concurrent包871
27.1.2 java.util.concurrent.atomic包872
27.1.3 java.util.concurrent.locks包872
27.2 使用同步对象872
27.2.1 Semaphore类872
27.2.2 CountDownLatch类876
27.2.3 CyclicBarrier类878
27.2.4 Exchanger类881
27.2.5 Phaser类883
27.3 使用执行器890
27.4 使用Callable接口和Future接口892
27.5 TimeUnit枚举895
27.6 并发集合896
27.7 锁897
27.8 原子操作900
27.9 通过Fork/Join框架并行编程900
27.10 主要的Fork/Join类901
27.10.1 ForkJoinTask类901
27.10.2 RecursiveAction类902
27.10.3 RecursiveTask类902
27.10.4 ForkJoinPool类903
27.11 分治策略904
27.11.1 第一个简单的Fork/Join示例904
27.11.2 理解并行度的影响906
27.11.3 使用RecursiveTask类的一个例子910
27.11.4 异步执行任务912
27.12 并发实用工具与Java的传统方法的比较912
27.13 习题913
附录A 使用Java文档注释915
附录B 正则表达式介绍921
附录C 部分习题的参考答案928
资源截图:
评论(0)