标题：Java标准教程
图书简介
作者：宋礼鹏、夏永恒 等编著  丛书名：Java标准教程 
出版日期：2011年1月 
书号：978-7-122-09797-2 
开本：16 
装帧：平 
版次：1版1次 
页数：389页
内容简介
本书循序渐进、通俗易懂地介绍了Java语言编程的基础知识，将读者带入Java语言的殿堂。 
本书共分3篇14章。第1篇系统地介绍了Java语言的诞生与发展、Java编程环境的搭建及基本语法的使用。第2篇系统地讲解了Java编程中的函数、数组、字符串操作的概念与运用，且列出了常用的算法以供参考学习。第3篇通过典型的实例，使读者系统地感受软件开发的整体过程。本书贴近实际，针对性强；并且每章中都含有例题以及其程序源代码，帮助读者熟练掌握基本知识及其运用。 
本书适用于初、中级程序员，同时也可用作高校相关专业和社会培训班的教材。
前 言
Java语言是一门完全面向对象的语言，有着得天独厚的优势，现在已是世界上使用最多的编程语言。它被广泛地应用于各行各业，小到手机，大到巨型服务器都有它的身影。Java的广泛应用也促进了其自身的发展，如今的Java已经变成一个成熟的编程语言了。 
面对Java的强势地位，很多人想掌握这门语言，但是学习时总是不得要领，编者工作的时候，经常遇到新人的提问，很多问题非常简单，只要提示一句就够了，可就是这句话，不知道难倒了多少入门者。正是鉴于此，编者萌生了写一本书的想法，结合自己多年的开发经验，让初学者能够快速掌握Java。 
本书特点 
本书的主要特点如下： 
由一线开发人员编写，贴近企业需求； 
只讲开发需要的内容，对于一些边边角角的技术，基本不涉及； 
简化理论，强化实验，让学生在编码的过程中体会编程思想； 
每个实验都有明确的目的，做到不重复、不遗漏，确保学一个会一个； 
保证每个例子都能调试通过； 
代码注释细致，保证学生能很快学会。 
本书内容 
Java近年来迅速得到应用的语言，其作为新一代的面向对象的程序设计语言，已经成为目前最具吸引力且功能强大的程序设计语言。本书主要讲解了该语言的基本语法知识，主要内容如下。 
第1章首先带领读者了解Java的发展与特点，并且介绍了Java开发工具包，最后举实例讲解Java程序开发的一般流程。 
第2章介绍了基础Java数据类型及各种数据类型之间的转换方式，并且介绍了各种标识符的命名规范。 
第3章介绍了Java的基本运算符，并且介绍了常用的数学包，为下一步的学习打下基础。 
第4章介绍了程序设计中常用的分支与循环控制方法以及相应的语句实现。 
第5章介绍了Java面向对象的程序设计，包括类、包、继承、抽象等内容。 
第6章介绍了编程中最基本的函数的概念及其使用方法。 
第7章介绍了数组的概念，并且介绍了数组初始化、相互赋值以及数组的常用操作等知识点。 
第8章介绍了字符串的概念，并且介绍了常用的字符串操作方法，以及在函数中输入输出字符串的方法。 
第9章介绍了I/O及文件操作，包括多个文件操作类的使用，如File、Stream、Random AccessFile等。 
第10章介绍了Swing界面设计及常用的Swing界面的用法，并着重说明了版面布局和事件处理的编程实现。 
第11章介绍了Java编程中常用的数据结构和算法。通过具体的编程实例，详细地介绍了Java中的栈、队列以及排序方法。 
第12章介绍了网络程序设计，重点介绍了Socket类的用法。 
第13章介绍了程序设计的风格、代码的布局、命名及合理的注释等内容。这些虽然不是Java的语法内容，但了解该章知识，可以使编程更有条理，更有可读性，从而提升编程效率。 
第14章通过经典的实例“学生成绩统计”，系统全面地回顾学过的知识，通过实例连接各个知识点，使读者较直观地了解程序的开发过程。 
本书读者 
本书适合初、中级程序员阅读，也可用作高效相关专业师生和社会培训班学院的参考教材。 
本书编者 
本书主要由宋礼鹏、夏永恒编写，其他参与编写的人员有刘成、马臣云、潘娜、阮履学、陶则熙、王大强、王磊、徐琦、许少峰、颜盟盟、杨娟、杨瑞萍、于海波、俞菲、曾苗苗、赵莹、朱存等。由于编者水平有限，书中难免存在不足和疏漏之处，恳请读者批评指正
目 录
第1篇 Java语法基础 
第1章 Java简介 2 
1.1 Java简介 2 
1.1.1 Java语言的不同平台 2 
1.1.2 Java语言发展的历程 2 
1.1.3 Java语言的特点 3 
1.2 安装开发工具包 4 
1.2.1 下载JDK6.0 4 
1.2.2 安装JDK6.0 5 
1.2.3 环境变量的设置 7 
1.2.4 验证JDK是否成功安装 9 
1.3 安装后JDK目录的解读 10 
1.3.1 bin文件夹 10 
1.3.2 lib文件夹 11 
1.4 demo文件夹与Java示例 12 
1.4.1 Applet时钟程序演示 13 
1.4.2 Applet弧线演示程序 14 
1.4.3 Java记事本程序 16 
1.4.4 Java格式化书写板 17 
1.4.5 Java 2D效果演示程序 17 
1.4.6 Java 3D效果演示程序 20 
1.4.7 Java Swing演示程序 21 
1.5 学会使用API 22 
1.5.1 安装JDK帮助文档 22 
1.5.2 如何使用JDK帮助文档 24 
1.6 第一个Java程序 26 
1.6.1 编写源代码 26 
1.6.2 编译运行 27 
1.7 类和对象简介 28 
1.8 源代码注释 29 
1.8.1 单行注释 29 
1.8.2 区域注释 31 
1.8.3 文档注释 32 
1.9 综合实例：计算三角形的周长 35 
1.10 小结 35 
1.11 练习题 36 
第2章 数据类型 37 
2.1 基本数据类型 37 
2.1.1 整型 37 
2.1.2 浮点型 41 
2.1.3 字符型 43 
2.1.4 布尔型 45 
2.2 基本数据类型之间的转换 46 
2.2.1 自动类型转换 46 
2.2.2 强制类型转换 48 
2.3 常量 50 
2.3.1 标识符 50 
2.3.2 常量及其赋值 51 
2.4 变量 53 
2.4.1 变量的声明及初始化 54 
2.4.2 变量的作用域 56 
2.4.3 表达式中数据类型的自动提升 57 
2.5 基本数据类型的对象包装类 59 
2.6 综合实例 61 
2.6.1 定义基本的数据类型变量并输出 61 
2.6.2 使用自动类型转换和强制类型转换 62 
2.7 小结 63 
2.8 练习题 64 
第3章 运算符 65 
3.1 算术运算符 65 
3.1.1 “+”运算符 65 
3.1.2 “-”运算符 66 
3.1.3 “*”运算符 68 
3.1.4 “/”运算符 69 
3.1.5 “%”运算符 72 
3.2 自增自减运算符 74 
3.3 关系运算符 76 
3.3.1 等于/不等于运算符 76 
3.3.2 比较大小运算符 77 
3.4 逻辑运算符 79 
3.5 三元运算符 81 
3.6 位运算符 82 
3.6.1 整型数据在内存中的表示 82 
3.6.2 取反运算符（~） 83 
3.6.3 按位与运算符（&） 84 
3.6.4 按位或运算符（|） 85 
3.6.5 按位异或运算符（^） 87 
3.7 移位运算符 88 
3.7.1 左移运算符（<<） 89 
3.7.2 带符号右移运算符（>>） 91 
3.7.3 无符号右移运算符（>>>） 93 
3.8 赋值运算符 94 
3.8.1 普通赋值运算符 94 
3.8.2 运算赋值运算符 96 
3.9 字符串连接运算符 97 
3.10 运算符的优先级 98 
3.11 常用的数学类——java.lang.Math 100 
3.11.1 数学常量 101 
3.11.2 java.lang.Math类中的函数 101 
3.12 综合实例 104 
3.12.1 求圆的周长与面积 105 
3.12.2 复杂的数学运算 105 
3.12.3 运用表达式解决实际的分页问题 106 
3.13 小结 107 
3.14 练习题 108 
第4章 流程控制 109 
4.1 顺序结构 109 
4.2 if条件语句 110 
4.2.1 简略形式 110 
4.2.2 完全形式 111 
4.2.3 嵌套形式 113 
4.3 switch多分支语句 116 
4.3.1 基本语法 117 
4.3.2 嵌套结构 120 
4.4 while循环语句 122 
4.5 do-while循环语句 124 
4.6 for循环语句 127 
4.6.1 基本语法 127 
4.6.2 声明的三大组成部分 129 
4.6.3 嵌套循环 132 
4.7 break语句 134 
4.8 continue语句 137 
4.9 综合实例 139 
4.9.1 解一元二次方程 139 
4.9.2 九九乘法表 140 
4.10 小结 141 
4.11 练习题 142 
第2篇 Java高级技术 
第5章 面向对象程序设计 144 
5.1 面向对象的基本概念 144 
5.1.1 面向过程的程序设计和面向对象的程序设计 144 
5.1.2 对象和封装 145 
5.1.3 类和实例 145 
5.2 类 145 
5.2.1 类的定义 145 
5.2.2 成员变量和局部变量 146 
5.2.3 成员方法 147 
5.2.4 构造方法 148 
5.3 包 148 
5.3.1 包的定义 148 
5.3.2 运行包中的类 149 
5.4 类的继承 150 
5.4.1 继承的概念 150 
5.4.2 继承数据成员和方法 151 
5.4.3 覆盖 152 
5.5 类的多态性 154 
5.6 抽象类 155 
5.6.1 抽象类的定义 155 
5.6.2 抽象类的应用 156 
5.7 接口 157 
5.7.1 接口的定义 157 
5.7.2 接口的使用 158 
5.7.3 接口的继承 159 
5.8 内部类 160 
5.8.1 匿名类(anonymous class) 160 
5.8.2 静态类(static class) 161 
5.8.3 成员类(member class) 161 
5.8.4 局部类(local class) 162 
5.9 和类相关的其他关键字 163 
5.9.1 final修饰符 163 
5.9.2 static修饰符 163 
5.9.3 this关键字 163 
5.9.4 super关键字 164 
5.10 综合实例 164 
5.11 小结 165 
5.12 练习题 165 
第6章 函数 166 
6.1 函数的理解 166 
6.2 自定义函数 167 
6.3 函数的参数 169 
6.4 函数的返回值 173 
6.4.1 return语句 173 
6.4.2 返回值类型 175 
6.5 static关键字 177 
6.5.1 静态变量 177 
6.5.2 静态代码块 178 
6.5.3 静态函数 179 
6.6 函数的调用 180 
6.6.1 一般形式 180 
6.6.2 函数表达式 181 
6.6.3 函数作为参数 182 
6.7 函数的递归调用 184 
6.8 综合实例 186 
6.8.1 字符菜单函数 186 
6.8.2 排列组合公式函数 188 
6.9 小结 189 
6.10 练习题 190 
第7章 数组 191 
7.1 数组的声明和创建 191 
7.1.1 一维数组 191 
7.1.2 多维数组 193 
7.2 数组的初始化 197 
7.2.1 默认初始化 197 
7.2.2 枚举初始化 200 
7.2.3 循环初始化 201 
7.3 数组作为函数的参数 203 
7.3.1 数组元素作为函数参数 203 
7.3.2 数组名作为函数参数 205 
7.3.3 数组名作为函数返回类型 207 
7.4 数组的常用操作 209 
7.4.1 数组的长度 210 
7.4.2 数组的填充 211 
7.4.3 数组的复制 213 
7.4.4 数组的比较 215 
7.4.5 数组的排序 216 
7.4.6 在数组中搜索指定元素 218 
7.4.7 把数组转换为字符串 219 
7.5 综合实例 220 
7.5.1 斐波那契数组 221 
7.5.2 统计与分析学生成绩 222 
7.6 小结 224 
7.7 练习题 224 
第8章 字符串 225 
8.1 字符串的声明及赋值 225 
8.2 字符串函数 226 
8.2.1 字符串的截取 227 
8.2.2 字符串的查找 228 
8.2.3 字符串的替换 231 
8.2.4 返回一个数据类型值的字符串形式 232 
8.2.5 大小写转换 233 
8.2.6 字符串插入 234 
8.2.7 字符串的连接 236 
8.2.8 字符串的比较 237 
8.2.9 字符串的长度 240 
8.2.10 去除字符串的前后空格 241 
8.2.11 获得字符串中的指定字符 241 
8.2.12 测试字符串的前后缀 243 
8.2.13 使用split函数进行字符串分割 244 
8.2.14 使用StringTokenizer类进行字符串分割 246 
8.3 关于args 247 
8.4 输入和输出 248 
8.5 字符串与函数 249 
8.5.1 字符串作为函数的参数 250 
8.5.2 字符串数组作为函数的参数 251 
8.5.3 字符串作为函数返回类型 252 
8.5.4 字符串数组作为函数返回类型 253 
8.6 综合实例 254 
8.6.1 程序中根据需要输入字符串 254 
8.6.2 猜字游戏 257 
8.7 小结 258 
8.8 练习题 258 
第9章 I/O及文件操作 260 
9.1 文件类 260 
9.1.1 常用构造函数 260 
9.1.2 常用方法 261 
9.1.3 文件的创建 261 
9.1.4 文件的删除和更名 263 
9.2 流 264 
9.2.1 输入流与输出流 264 
9.2.2 标准输入输出流 265 
9.2.3 流的常用方法 265 
9.2.4 I/O读写时可能遇到的异常 266 
9.3 随机访问文件类 268 
9.3.1 常用构造函数 268 
9.3.2 常用方法 268 
9.3.3 随机访问文件实例 269 
9.4 可序列化接口 273 
9.5 文件压缩 275 
9.6 综合实例 276 
9.6.1 读取文件内容操作 276 
9.6.2 文件压缩实例 279 
9.7 小结 281 
9.8 练习题 281 
第10章 Swing 282 
10.1 Swing介绍 282 
10.1.1 Swing的特点 282 
10.1.2 Swing实现GUI的过程 282 
10.2 Swing组件 283 
10.2.1 JFrame、JInternalFrame 283 
10.2.2 Border、Icon、JButton 285 
10.2.3 JCheckBox、JRadioButton、JList 286 
10.2.4 JTable 286 
10.2.5 JTextField、JPasswordField 287 
10.2.6 JTree 287 
10.2.7 JSplitPane 287 
10.3 Swing的版面布局 288 
10.3.1 BorderLayout 288 
10.3.2 FlowLayout 289 
10.3.3 GridLayout 291 
10.3.4 CardLayout 292 
10.3.5 GridBagLayout 294 
10.3.6 BoxLayout 296 
10.4 事件处理 298 
10.4.1 事件处理的基本步骤 298 
10.4.2 事件处理器 299 
10.4.3 注册事件监听器 299 
10.4.4 事件适配器 299 
10.4.5 内部类的应用 300 
10.5 综合实例 300 
10.6 小结 302 
10.7 练习题 302 
第11章 常见数据结构和算法 303 
11.1 数据结构 303 
11.1.1 栈的基本概念 303 
11.1.2 栈的实现 304 
11.1.3 队列 307 
11.1.4 队列的实现 307 
11.2 排序 310 
11.2.1 冒泡排序 311 
11.2.2 选择排序 314 
11.2.3 插入排序 318 
11.3 综合实例 322 
11.3.1 用栈实现简单表达式的计算 322 
11.3.2 用栈实现字符串的倒序 328 
11.3.3 用栈实现括号匹配的检查 330 
11.3.4 用队列计算排队时间 333 
11.4 小结 336 
11.5 练习题 336 
第12章 网络程序设计 337 
12.1 网络通信概述 337 
12.1.1 什么是网络通信 337 
12.1.2 网络协议基础 337 
12.1.3 Java中所涉及的网络应用类 338 
12.2 使用URL类 338 
12.2.1 URL类中常用的方法 339 
12.2.2 使用URLConnetion类 339 
12.3 使用InetAddress类获取IP地址 341 
12.4 使用套接字Socket类 343 
12.4.1 Socket类与ServerSocket类 343 
12.4.2 建立与服务器的连接 345 
12.5 使用套接字Datagram类 351 
12.5.1 Datagram（数据报）套接字 351 
12.5.2 使用Datagram实现数据传输 352 
12.6 综合实例 354 
12.6.1 URL类对象的创建及使用 354 
12.6.2 简单的网页浏览器 355 
12.7 小结 357 
12.8 练习题 357 
第3篇 项目开发实例 
第13章 程序设计风格 360 
13.1 代码布局的思想 360 
13.2 布局技术 362 
13.2.1 分组 362 
13.2.2 空行 363 
13.2.3 缩进 364 
13.3 代码的布局 365 
13.3.1 循环语句的代码布局 365 
13.3.2 switch语句的代码布局 366 
13.3.3 单条语句的代码布局 367 
13.4 注释 368 
13.4.1 高效的注释 368 
13.4.2 正确使用行注释和块注释 369 
13.4.3 注释的布局 371 
13.5 命名规则 372 
13.5.1 变量的命名 372 
13.5.2 类相关的命名 373 
13.6 使用函数 374 
13.7 小结 376 
13.8 练习题 376 
第14章 学生成绩统计 377 
14.1 程序分析 377 
14.2 程序编写 377 
14.2.1 菜单选择 378 
14.2.2 数据录入 379 
14.2.3 数据列表子程序 380 
14.2.4 数据统计子程序 381 
14.2.5 学生信息查询子程序 383 
14.2.6 删除数据子程序 384 
14.2.7 其他子程序 385 
14.2.8 程序的编写和运行 386 
14.3 小结 389