第1章 一种现代语言 1
1.1 进入Java世界 2
1.1.1 Java的起源 2
1.1.2 成长 3
1.2 虚拟机 4
1.3 Java与其他语言的比较 7
1.4 设计安全 10
1.4.1 语法简单性 10
1.4.2 类型安全和方法绑定 11
1.4.3 递增开发 12
1.4.4 动态内存管理 13
1.4.5 错误处理 14
1.4.6 线程 14
1.4.7 可伸缩性 15
1.5 实现安全 15
1.5.1 校验器 17
1.5.2 类加载器 18
1.5.3 安全管理器 18
1.6 应用和用户级安全性 19
1.7 Java路线图 20
1.7.1 过去:Java 1.0到Java 1.6 20
1.7.2 如今:Java 7 21
1.7.3 将来 23
1.7.4 可用性 24
第2章 第一个应用 25
2.1 Java工具和环境 25
2.2 配置Eclipse并且创建项目 26
2.2.1 导入本书示例 28
2.3 HelloJava 29
2.3.1 类 32
2.3.2 main()方法 32
2.3.3 类和对象 34
2.3.4 变量与类类型 34
2.3.5 HelloComponent 35
2.3.6 继承 36
2.3.7 JComponent类 37
2.3.8 关系与指向 38
2.3.9 包与导入 39
2.3.10 paintComponent() 方法 40
2.4 HelloJava2:余波未平 41
2.4.1 实例变量 43
2.4.2 构造函数 43
2.4.3 事件 45
2.4.4 repaint()方法 47
2.4.5 接口 48
2.5 HelloJava3:按钮的震撼 49
2.5.1 方法重载 51
2.5.2 组件 52
2.5.3 容器 52
2.5.4 布局 53
2.5.5 派生子类与子类型 53
2.5.6 更多事件和接口 54
2.5.7 颜色的说明 55
2.5.8 静态成员 55
2.5.9 数组 56
2.5.10 颜色的相关方法 56
2.6 HelloJava4:Netscape的反戈一击 58
2.6.1 线程 60
2.6.2 Thread类 60
2.6.3 Runnable接口 61
2.6.4 启动线程 62
2.6.5 在线程中运行代码 62
2.6.6 异常 63
2.6.7 同步 64
第3章 使用工具 66
3.1 JDK环境 66
3.2 Java虚拟机 67
3.3 运行Java应用程序 67
3.4 类路径 69
3.5 Java编译器 71
3.6 JAR Files 73
3.6.1 文件压缩 73
3.6.2 jar工具 74
3.6.3 Pack200工具 77
3.7 策略文件 78
3.7.1 默认的安全性管理器 78
3.7.2 policytool工具 79
3.7.3 通过默认的安全管理器使用策略文件 81
第4章 Java语言 82
4.1 文本编码 82
4.2 注释 83
4.3 类型 85
4.3.1 基本类型 86
4.3.2 引用类型 89
4.3.3 字符串的有关问题 91
4.4 语句和表达式 92
4.4.1 语句 93
4.4.2 表达式 99
4.5 异常 103
4.5.1 异常和错误类 104
4.5.2 异常处理 106
4.5.3 逐级上浮 108
4.5.4 栈轨迹 109
4.5.5 受查和非受查异常 110
4.5.6 抛出异常 111
4.5.7 try的“潜伏”功用 114
4.5.8 finally子句 115
4.5.9 带有资源的Try 116
4.5.10 性能问题 118
4.6 断言 118
4.6.1 启用和禁用断言 119
4.6.2 使用断言 120
4.7 数组 121
4.7.1 数组类型 122
4.7.2 数组的创建和初始化 122
4.7.3 使用数组 124
4.7.4 匿名数组 126
4.7.5 多维数组 126
4.7.6 深入数组 128
第5章 Java中的对象 129
5.1 类 130
5.1.1 访问字段和方法 132
5.1.2 静态成员 133
5.2 方法 136
5.2.1 局部变量 137
5.2.2 遮蔽 137
5.2.3 静态方法 138
5.2.4 初始化局部变量 139
5.2.5 参数传递与引用 140
5.2.6 基本类型的包装器 142
5.2.7 基本类型的自动装箱和拆箱 144
5.2.8 可变长度的参数列表 145
5.2.9 方法重载 146
5.3 对象创建 148
5.3.1 构造函数 148
5.3.2 使用重载构造函数 149
5.3.3 静态和非静态初始化块 151
5.4 对象销毁 152
5.4.1 垃圾回收 152
5.4.2 最终化 153
5.4.3 弱引用和软引用 154
5.5 枚举 155
5.5.1 枚举值 156
5.5.2 定制化枚举 156
第6章 类之间的关系 158
6.1 派生子类和继承 158
6.1.1 被遮蔽变量 160
6.1.2 覆盖方法 162
6.1.3 特殊引用:this和super 169
6.1.4 类型强制转换 170
6.1.5 使用超类构造函数 172
6.1.6 完全揭密:构造函数和初始化 173
6.1.7 抽象方法和类 173
6.2 接口 174
6.2.1 作为回调的接口 176
6.2.2 接口变量 177
6.2.3 子接口 178
6.3 包与编译单元 179
6.3.1 编译单元 179
6.3.2 包名 180
6.3.3 类可见性 180
6.3.4 导入类 181
6.4 变量和方法的可见性 183
6.4.1 基本访问修饰符 184
6.4.2 子类和可见性 185
6.4.3 接口和可见性 186
6.5 数组和类的层次体系结构 186
6.6 内部类 188
6.6.1 内部类作为适配器 190
6.6.2 方法中的内部类 192
第7章 使用对象和类 198
7.1 Object类 198
7.1.1 相等性与等价 199
7.1.2 散列码 200
7.1.3 复制对象 200
7.2 Class类 203
7.3 反射 205
7.3.1 安全性 208
7.3.2 访问字段 209
7.3.3 访问方法 210
7.3.4 访问构造函数 212
7.3.5 关于数组 213
7.3.6 访问泛型类型信息 213
7.3.7 访问注解数据 214
7.3.8 动态接口适配器 214
7.3.9 反射适用之处 215
7.4 注解 216
7.4.1 使用注解 217
7.4.2 标准注解 218
7.4.3 Apt工具 219
第8章 泛型 220
8.1 容器:构建一个更好的捕鼠器 221
8.2 走进泛型 222
8.3 根本就没有勺子 226
8.3.1 擦除 226
8.3.2 原始类型 228
8.4 参数化类型关系 229
8.5 类型转换 232
8.6 编写泛型类 233
8.6.1 类型变量 233
8.6.2 子类化泛型 234
8.6.3 异常和泛型 235
8.6.4 参数类型限制 236
8.7 边界 237
8.8 通配符 239
8.8.1 所有实例化的超类型 240
8.8.2 有界限通配符 240
8.8.3 思考容器 240
8.8.4 下边界 241
8.8.5 读、写和算术 242
8.8.6 <?>、
展开
如果你有一些Java的经验,本书将帮助你快速上手新的流行工具,以及针对Web服务和XML的Java API。你将学会管理应用程序中的资源和异常的强大方法。
本书包括以下内容:
学习核心Java语言——基本语法、类和对象以及其他的组件;
用Java进行开发,使用编译器、解释器和其他工具;
介绍Java内建的线程工具和并发包;
学习文本处理和强大的正则表达式API;
编写高级的网络化或基于Web的应用和服务;
使用Java组件架构,构建图形化的Java应用;
探讨丰富的新桌面API;
使用XML和XSLT,包括XML Schema、验证、XPath和XInclude。