目录
第1章Java简介1
1.1面向对象的程序设计1
1.2开发环境4
1.3在命令提示符窗口设计程序6
1.4使用Eclipse设计程序9
1.5Java程序结构15
1.6代码风格16
1.6.1命名约定16
1.6.2缩进和空格17
1.6.3块风格18
1.7注释18
1.8动手实验19
1.8.1安装JDK和Eclipse IDE19
1.8.2在命令提示符窗口设计程序19
1.8.3在Eclipse中设计程序19
1.8.4切换Eclipse工作空间20
习题21第2章Java程序基本规则22
2.1标识符24
2.2基本数据类型24
2.3字面量26
2.4变量27
2.5运算符30
2.5.1赋值运算符30
2.5.2算术运算符30
2.5.3关系运算符31
2.5.4逻辑运算符31
2.5.5条件运算符32
2.6运算符的优先级32
2.7表达式和语句33
2.8Scanner类35
2.9控制结构37
2.9.1顺序结构37
2.9.2分支结构38
2.9.3循环结构41
2.9.4分支语句45
2.10数组46
2.11Java API51
2.11.1String类51
2.11.2StringBuffer类56
2.11.3Random类57
2.11.4BigInteger类58
2.12包装类59
2.13动手实验60
2.13.1使用Scanner类获取键盘输入60
2.13.2查找API帮助文档62
2.13.3计算器63
2.13.4平方根64
2.13.5空格和字母统计64
2.13.6命令行参数65
习题66第3章类和对象70
3.1类的声明70
3.2创建对象77
3.3访问对象78
3.4输出对象的字符串表示80
3.5对象引用this82
3.6参数传递84
3.7方法的返回91
3.8方法的重载92
3.9类变量和实例变量92
3.10静态方法和实例方法96
3.11变量的作用域97
3.12垃圾收集100
3.13反射100
3.14代码组织103
3.14.1包103
3.14.2标准API104
3.14.3自定义包104
3.15正规表达式在字符串API中的应用105
3.16动手实验109
3.16.1创建对象109
3.16.2参数传递109
3.16.3数组作为参数109
3.16.4对象作为方法的返回值110
3.16.5静态变量110
3.16.6变量的作用域110
3.16.7反射110
3.16.8正规表达式110
习题110第4章继承118
4.1概念118
4.2父类和子类的构造方法122
4.3覆盖125
4.4上转型和下转型128
4.5抽象类和抽象方法131
4.6接口134
4.7多态142
4.8final类145
4.9访问控制147
4.10Object类154
4.10.1toString方法154
4.10.2equals方法155
4.10.3hashCode方法158
4.10.4clone方法159
4.11动手实验167
4.11.1继承167
4.11.2子类中调用父类的构造方法167
4.11.3构造方法调用链167
4.11.4方法的覆盖与隐藏167
4.11.5上转型167
4.11.6抽象方法168
4.11.7接口168
4.11.8通过继承实现多态168
4.11.9通过接口实现多态168
4.11.10同一包中的可访问性168
4.11.11不同包中的可访问性168
4.11.12对象克隆168
习题169第5章异常处理179
5.1概述179
5.2处理异常184
5.3finally块189
5.4自定义异常193
5.5Java异常处理机制的优势196
5.6断言200
5.7动手实验202
5.7.1ClassNotFoundException异常202
5.7.2异常204
5.7.3异常的两种处理方式204
5.7.4finally块205
5.7.5异常的捕获和处理205
5.7.6自定义异常205
5.7.7从异常中恢复205
习题206第6章JCF框架212
6.1概述212
6.2Set接口216
6.3List接口223
6.3.1ArrayList类224
6.3.2与线性表有关的算法229
6.4Queue接口236
6.5栈237
6.6Map接口239
6.7泛型245
6.8动手实验252
6.8.1在Eclipse中查看API源代码252
6.8.2Set接口和HashSet实现类254
6.8.3List接口255
6.8.4Collections类255
6.8.5Queue接口及实现类255
6.8.6Deque接口及实现类ArrayDeque255
6.8.7Map接口及实现类255
6.8.8泛型255
习题256第7章输入输出流259
7.1文件与文件夹管理259
7.2流266
7.2.1字节流267
7.2.2缓冲字节流271
7.2.3数据流274
7.2.4字符流279
7.2.5字符缓冲流282
7.3Scanner类284
7.4printf方法289
7.5对象串行化294
7.6重定向296
7.7字符集和Unicode297
7.8动手实验299
7.8.1File对象299
7.8.2InputStream和OutputStream300
7.8.3缓冲流300
7.8.4数据流300
7.8.5字符流300
7.8.6文本文件复制300
7.8.7Scanner用法302
7.8.8printf方法302
7.8.9对象串行化303
7.8.10文件的随机访问303
习题304第8章图形用户界面310
8.1介绍310
8.2设计一个简单的窗口应用311
8.3Swing部件317
8.4部件间的包含关系319
8.5对话框321
8.6布局管理326
8.7菜单332
8.8常用部件336
8.9事件338
8.10事件监听器341
8.11ListSelectionListener事件监听器344
8.12窗口事件346
8.13MVC349
8.14观察者模式351
8.15动手实验355
8.15.1JButton355
8.15.2Action Event356
8.15.3对话框356
8.15.4布局管理器356
8.15.5菜单356
8.15.6事件监听器356
8.15.7窗口监听器356
8.15.8模型委托356
8.15.9聚焦监听器356
8.15.10按键监听器358
8.15.11鼠标监听器360
8.15.12MVC361
习题363第9章多线程程序设计365
9.1进程和线程365
9.2线程368
9.3线程状态372
9.4线程调度和优先级374
9.5线程间的同步376
9.6同步块381
9.7原子变量383
9.8线程的管理者386
9.9获取子线程的返回结果389
9.10BlockingQueue391
9.11动手实验394
9.11.1单线程版本的窗口应用394
9.11.2线程394
9.11.3线程优先级394
9.11.4共享计数器对象395
9.11.5同步块395
9.11.6原子变量395
9.11.7线程池396
9.11.8阻塞队列396
习题399附录AJava修饰符401附录BJava文档402附录CUnicode表(Basic Latin)408附录D常用Eclipse快捷键413参考文献416