标题：Java基础与实例精解
内容简介
《Java基础与实例精解》以全新的视角，深入浅出地介绍了Java语言的核心基础知识。并使用了大量的例子对Java语言中的知识点加以验证，从而一步一步引导读者学习和掌握Java语言程序设计的方法与技巧。
该书积聚了作者多年的教学及应用实践经验以语言简洁．概念清晰，覆盖面广，实例丰富，重点突出，实用性强为特点，是一本非常实用的学习Java语言编程的教材。可作为高等院校计算机及相关专业的本科及高职高专学生教材，也可作为Java程序员的参考用书。
《Java基础与实例精解》的每一章均附有典型习题并对习题作了详细解答；为了增强读者在就业中的竞争力，对《Java基础与实例精解》还编写了实验指导；配套使用将使学习效果更佳。
目录
第1章 Java简介
1.1 编程语言的几个发展阶段
1.1.1 低级语言
1.1.2 过程语言
1.1.3 面向对象编程
1.2 Java的诞生
1.3 Java的特点
1.4 安装JDK与JRE
1.5 Java程序的开发流程
1.5.1 Java程序分类
1.5.2 Java源程序结构
1.5.3 Java源程序的开发流程
1.5.4 Java应用程序开发举例
1.5.5 Java小应用程序开发举例
1.6 Java的应用领域
第2章 标识符.关键字和数据类型
2.1 标识符
2.2 关键字
2.3 Java的数据类型
2.3.1 值类型
2.3.2 引用类型
2.4 数据类型之间的转换
2.4.1 同种类型之间的转换
2.4.2 不同种类型之间的转换
第3章 运算符.表达式和语句
3.1 运算符与表达式
3.1.1 算术运算符和算术表达式
3.1.2 位运算符
3.1.3 关系运算符和关系表达式
3.1.4 逻辑运算符和逻辑表达式
3.1.5 条件赋值运算符
3.1.6 赋值运算符和赋值表达式
3.1.7 instanceof运算符
3.1.8 圆括号与方括号运算符
3.1.9 运算符的优先级与结合性
3.2 语句概述
3.2.1 简单语句
3.2.2 复合语句
3.3 条件分支语句
3.3.1 if语句
3.3.2 switch语句
3.4 循环语句
3.4.1 while语句
3.4.2 dowhile语句
3.4.3 while和dowhile语句的区别
3.4.4 for语句
3.4.5 foreach语句
3.5 跳转语句
3.5.1 break语句
3.5.2 continue语句
3.5.3 break与continue语句的异同
3.5.4 return语句
第4章 类和对象
4.1 类
4.1.1 类的声明
4.1.2 类体
4.2 变量
4.2.1 变量的数据类型
4.2.2 成员变量的分类
4.2.3 变量的作用域
4.3 方法
4.3.1 方法的定义
4.3.2 方法重载
4.3.3 构造方法
4.3.4 类方法和实例方法
4.3.5 变量.方法中值得注意的问题
4.4 内部类
4.4.1 静态内部类
4.4.2 实例内部类
4.4.3 局部内部类
4.4.4 匿名内部类
4.5 对象
4.5.1 创建对象
4.5.2 使用对象
4.5.3 对象的引用和实体
4.5.4 方法中的参数传值
4.6 static关键字
4.6.1 实例变量与类变量的区别
4.6.2 实例方法和类方法的区别
4.7 this关键字
4.7.1 在实例方法中使用this
4.7.2 在构造方法中使用this
4.8 包及JAR工具
4.8.1 包
4.8.2 JAR工具
4.8.3 反编译和文档生成器
4.9 访问权限
4.9.1 private（私有的）
4.9.2 default（友好的）
4.9.3 protected（受保护的）
4.9.4 public（公有的）
4.9.5 公有类与友好类
4.1 0过时信息
第5章 继承与多态
5.1 继承简介
5.2 类的继承
5.2.1 继承的语法
5.2.2 子类的继承性
5.3 访问权限的进一步说明
5.3.1 访问权限总结
5.3.2 default（友好的）
5.3.3 protected（受保护的）
5.4 成员变量的隐藏与方法重写
5.4.1 成员变量的隐藏
5.4.2 方法重写
5.4.3 方法重写与方法重载的异同
5.5 super关键字
5.5.1 使用关键字super调用父类的构造方法
5.5.2 使用关键字super操作被隐藏的成员变量和方法
5.6 final关键字
5.6.1 final变量
5.6.2 final方法
5.6.3 final类
5.7 对象的上转型对象
5.8 多态性
5.9 abstract类和abstract方法
5.10 接口
5.10.1 接口的定义
5.10.2 接口的使用
5.10.3 接口与抽象类的区别
5.10.4 接口继承
5.10.5 接口回调
5.10.6 接口做参数
5.11 匿名类
5.11.1 与类有关的匿名类
5.11.2 与接口有关的匿名类
第6章 数组
6.1 一维数组
6.2 多维数组
6.3 数组做参数
6.4 Javaapplication命令行参数
6.5 Arrays类
6.5.1 数组的填充和打印
6.5.2 数组的比较
6.5.3 数组的排序
6.5.4 数组的查找
6.6 数组的复制
第7章 基础类与集合类
7.1 Object类
7.1.1 equals方法
7.1.2 toString方法
7.1.3 clone方法
7.1.4 getClass方法
7.2 反射类
7.2.1 获取类的有关信息
7.2.2 使用Class实例化一个对象
7.3 封装类
7.3.1 Boolean类
7.3.2 Byte类
7.3.3 Double类
7.3.4 Float类
7.3.5 Integer类
7.3.6 BigInteger类
7.3.7 Long类
7.3.8 Short类
7.3.9 Character类
7.4 Math类
7.5 String类
7.5.1 创建String对象
7.5.2 字符串的常用方法
7.6 StringBuffer和StringBuilder类
7.7 System类
7.8 Date类
7.9 Calendar类
7.10 集合类
7.10.1 ArrayList（动态数组）
7.10.2 LinkedList（链表）
7.10.3 Vector（向量）
7.10.4 Stack（栈）
7.10.5 HashSet（散列集）
7.10.6 Hashtable（散列表）
7.10.7 HashMap（散列映射）
7.10.8 TreeSet（树集）
7.10.9 TreeMap（树映射）
第8章 异常处理
8.1 异常的概念
8.2 异常的分类
8.3 异常处理
8.3.1 trycatchfinally语句
8.3.2 throw与throws关键字
8.3.3 自定义异常
第9章 图形用户界面
9.1 AWT
9.2 AWT容器类
9.2.1 Frame（窗体）
9.2.2 Dialog（对话框）
9.2.3 Panel（面板）
9.2.4 ScrollPane（滚动面板）
9.3 AWT基本组件
9.3.1 Button（按钮）组件
9.3.2 Canvas（画布）组件
9.3.3 选择型组件
9.3.4 Label（标签）
9.3.5 Scrollbar（滚动条）
9.3.6 TextArea（文本区）
9.3.7 TextField（文本框）..
9.4 AWTMenus
9.4.1 MenuBar（菜单条）
9.4.2 Menu（菜单）
9.4.3 MenuItem（菜单项）
9.4.4 CheckBoxMenuItem（复选框菜单项）
9.4.5 嵌入子菜单
9.4.6 PopupMenu（弹出式菜单）
9.5 组件的外观
9.5.1 组件的颜色
9.5.2 组件的字体
9.5.3 组件的光标
第10章 布局管理
10.1 BorderLayout（边界.边框布局）
10.2 FlowLayout（流/顺序布局）
10.3 CardLayout（卡片布局）
10.4 GridLayout（网格布局）
10.5 BoxLayout（盒式布局）
10.5.1 BoxLayout类
10.5.2 Box类
10.6 null布局（空布局）
第11章 事件处理
11.1 事件处理模型
11.1.1 几个重要概念
11.1.2 简单事件处理举例
11.2 事件的种类
11.3 事件类型举例
11.3.1 ActionEvent
11.3.2 AdjustmentEvent
11.3.3 AncestorEvent
11.3.4 CaretEvent
11.3.5 ChangeEvent
11.3.6 ComponentEvent
11.3.7 ContainerEvent
11.3.8 DocumentEvent
11.3.9 FocusEvent
11.3.1 0ItemEvent
11.3.1 1KeyEvent
11.3.1 2ListSelectionEvent
11.3.1 3MouseEvent
11.3.1 4TableModelEvent
11.3.1 5TreeExpansionEvent（TreeExpansionListener）
11.3.1 6TreeModelEvent
11.3.1 7TreeSelectionEvent
11.3.1 8TreeExpansionEvent（TreeWillExpandListener）
11.3.1 9UndoableEditEvent
11.3.2 0WindowEvent
11.4 事件适配器
11.4.1 ComponentAdapter
11.4.2 ContainerAdapter
11.4.3 FocusAdapter
11.4.4 KeyAdapter
11.4.5 MouseInputAdapter
11.4.6 MouseAdapter
11.4.7 MouseMotionAdapter
11.4.8 WindowAdapter
11.5 处理多事件
第12章 Swing组件
12.1 SwingWindows
12.1.1 JFrame
12.1.2 对话框
12.2 SwingContainers
12.2.1 JPanel（面板）
12.2.2 JTabbedPane（选项卡面板）
12.2.3 JSplitPane（拆分窗口）
12.2.4 JScrollPane（滚动面板）
12.2.5 JToolBar（工具条）
12.2.6 JDesktopPane（桌面面板）
12.2.7 JInternalFrame（内部窗体）
12.2.8 JLayeredPane（分层面板）
12.3 SwingControls
12.3.1 按钮
12.3.2 JComboBox（下拉列表）
12.3.3 JLabel（标签）
12.3.4 JList（滚动列表）
12.3.5 文本组件
12.3.6 JProgressBar（进度条）
12.3.7 JScrollBar（滚动条）
12.3.8 JSlider（滑块）
12.3.9 JSpinner（微调控制器）
12.3.1 0JTable（表格）
12.3.1 1JTree（树）
12.4 SwingMenus
12.4.1 JMenuBar（菜单条）
12.4.2 JMenu（菜单）
12.4.3 JMenuItem（菜单项）
12.4.4 JCheckBoxMenuItem（复选菜单项）
12.4.5 JRadioButtonMenuItem（单选菜单项）
12.4.6 JSeparator（分隔线）
12.4.7 JPopupMenu（弹出式菜单）
第13章 多线程
13.1 程序.进程和线程
13.2 线程的状态与生命周期
13.3 创建线程
13.3.1 继承Thread类的方式创建线程
13.3.2 实现Runnable接口的方式创建线程
13.3.3 关于两种创建线程方法的讨论
13.4 线程的常用方法
13.4.1 设置和获取线程的名字
13.4.2 返回正在执行的线程
13.4.3 挂起线程
13.4.4 中断线程
13.4.5 终止线程
13.4.6 检查线程
13.4.7 线程联合
13.4.8 守护线程
13.5 线程调度与优先级
13.6 共享资源
13.6.1 线程同步（synchronized）
13.6.2 等待与通知（wait（）.notifay（）.notifayAll（））
13.6.3 死锁
13.7 计时器线程Timer
13.8 线程组
13.9 GUI线程
第14章 输入/输出流
14.1 输入/输出流的分类
14.2 File类
14.2.1 目录与文件的创建
14.2.2 目录与文件的删除
14.2.3 列出目录中指定类型的文件
14.2.4 运行可执行文件
14.3 基本字节数据流类
14.3.1 输入流（InputStream）
14.3.2 输出流（OutputStream）
14.3.3 字节数组输入流（ByteArrayInputStream.ByteArrayOutputStream）
14.3.4 文件流（FileInputStream.FileOutputStream）
14.3.5 过滤流（FilterInputStream.FilterOutputStream）
14.3.6 对象流（ObjectInputStream.ObjectOutputStream）
14.3.7 管道流（PipedInputStream.PipedOutputStream）
14.3.8 JavaI/O库的设计原则
14.4 字符集的编码
14.5 基本字符流
14.5.1 字符流（Reader.Writer）
14.5.2 字符输入/输出流（InputStreamReader.OutputStreamWriter）
14.5.3 缓冲字符流（BufferedReader.BufferedWriter）
14.5.4 字符数组流（CharArrayReader.CharArrayWriter）
14.5.5 文件字符流（FileReader.FileWriter）
14.6 随机访问文件（RandomAccessFile）
14.7 文件锁FileLock
14.8 Process类中的流
第15章 JavaApplet
15.1 Applet类的常用方法
15.2 Applet的生命周期
15.3 JApplet类
15.4 HTML与applet标记
15.4.1 applet标记的常用属性
15.4.2 applet获取参数
15.4.3 发送信息到其他applet
15.4.4 Applet与URL
15.5 在Applet中创建线程
15.6 JavaAppletVSJavaApplication
15.7 applet与多媒体
15.7.1 在JavaApplet中播放音频
15.7.2 在JavaApplication中播放音频
15.7.3 播放视频
第16章 Java2D图形与图像
16.1 Graphics类
16.1.1 绘制直线
16.1.2 绘制矩形
16.1.3 绘制椭圆
16.1.4 绘制圆弧
16.1.5 绘制多边形
16.2 Graphics2D类
16.2.1 绘制直线
16.2.2 绘制曲线
16.2.3 绘制矩形
16.2.4 绘制圆角矩形
16.2.5 绘制椭圆
16.2.6 绘制圆弧
16.2.7 绘制任意图形
16.2.8 图形变换
16.2.9 构建区域几何形状
16.3 绘制文本
16.4 绘制图像
16.4.1 Image类
16.4.2 BufferedImage类
16.4.3 ImageIO类
16.4.4 在JavaApplication中绘制图像
16.4.5 在JavaApplet中绘制图像
16.4.6 保存图像
16.5 打印
第17章 网络编程
17.1 计算机网络基础
17.1.1 TCP
17.1.2 UDP
17.1.3 C/S（客户端/服务器）
17.1.4 IP地址
17.1.5 端口
17.1.6 JDK中的网络类
17.2 URL
17.2.1 URL类
17.2.2 URLConnection类
17.3 InetAddress类
17.4 Socket套接字
17.4.1 Socket套接字
17.4.2 ServerSocket类
17.4.3 在Socket套接字中使用多线程
17.4.4 在Applet中使用套接字
17.4.5 数据压缩与传输
17.5 UDP数据报
17.5.1 将数据打包
17.5.2 发送与接收数据包
17.5.3 广播数据报
第18章 数据库编程
18.1 JDBC简介
18.2 SQLServer2000数据库管理系统
18.2.1 SQLServer2000的安装
18.2.2 建立数据库
18.2.3 创建表
18.2.4 创建表之间的关系
18.2.5 操作表数据
18.3 常用SQLServer语句介绍
18.3.1 创建表
18.3.2 修改表
18.3.3 删除表
18.3.4 Insert语句（插入数据）
18.3.5 Select语句（查询表中的数据）
18.3.6 Update语句（更新数据）
18.3.7 Delecte语句（删除数据）
18.4 连接数据库的方式
18.4.1 JDBCODBC桥
18.4.2 使用纯Java数据库驱动程序
18.5 通过DatabaseMetaData了解数据库信息
18.6 结果集ResultSet对象
18.6.1 ResultSet的基本处理方法
18.6.2 获取结果集的信息
18.6.3 可滚动结果集
18.7 PreparedStatement预编译语句
18.8 存储过程
18.8.1 在SQLServer2000中创建存储过程
18.8.2 调用存储过程
18.8.3 在程序中创建存储过程
18.9 事务处理
18.10 JDBC连接其他数据库
18.10.1 访问Access数据库
18.10.2 访问MySQL数据库
18.10.3 访问Oracle数据库序言Java从1995年正式发布至今，几乎是满载着赞誉一路走来，备受数以千万计程序员的推崇，逐渐发展成为最广泛使用的编程语言之一。
Java语言所带来的革命，每一位IT从业人员都有自己亲身的体会。很多软件开发工程师都投入很多时间和精力来学习Java语言及其构架，因此，掌握Java语言意味着学习更新的技术和发现更多的就业机会。
Java语言究竟有着什么样的魅力，能拥有这么多的追随者？在招聘Java高级开发人员时，面试官也常常提出这样的疑问。他们要求应聘者用一句话描述出Java的特点和魅力所在：“write orlce，run anywhere”（编写一次，处处运行）就是最好的答案。
的确如此，Java拥有良好的可移植性。用Java编写的程序可以轻松地在Windows、Unix、Linux，甚至在PDA和移动电话上运行。因此，软件开发商对Java的青睐，是基于Java构架的产品，以使这些产品能适应各种用户的系统环境，并为更多的用户提供服务。
本书是一本实例教程。和其他实例教程不同的是，书中不花大篇幅介绍原理，而是添加大量的实例说明应用。对于初学者而言，只要按照书中所描述的步骤，对那些实例进行调试、理解，就可以快速利用这些知识实现那些复杂的、令人兴奋的功能；而对于有过Java编程经验的读者来说，如对有些方法的应用理解不够，而帮助文档的翻译也令人失望时，可以依据书中对那些实例的原理介绍和代码解析做适当的修改，使它成为能满足用户所需的程序。
本书是作者多年教学经验积累的智慧结晶，并在实践中不断完善与创新，形成了自己特有的体系。该书内容由浅入深，层层推进。在体系结构上，力求安排合理，重点难点分明，易学易掌握，且书中涉及的每个知识点都用例子演示，从而说明这些知识点的具体使用方法。书中的所有例程均在JDKI.6环境中测试、运行并通过。
由于Java包含的东西太多，一本书不可能将其精髓全部展现出来，因此只能尽可能将最常用、最实用的各种应用编程方法介绍给读者。实际动手进行调试是掌握本书知识的一个重要环节，希望引起读者的高度重视。文摘第1章 Java简介  文摘1.3 Java的特点
Java是一门高级编程语言，它流行的原因是由它的特点决定的，它的特点包括：
1.简单
Java语言的主要特点之一是简单，它的基本概念容易掌握，Java程序员不须经过大量的训练就可以将其转化为生产力。同时，Java语言吸取了C和C++的优点，去除C和C++中复杂的部分，如：指针、运算符重载、多重继承等。
2.面向对象
Java语言从开始就被设计为一门面向对象的编程语言。在Java语言中，除了基本数据类型外，一切都是对象。Java程序员可以使用Java提供的丰富的类库，开发出复杂功能的程序。 Java语言保留着面向对象编程语言的特性，表面上看和C++非常相似，这意味着程序员可以很快的转到Java开发平台。
3.健壮和安全
Java语言具有很高的可靠性，它提供了编译时检查和运行时检查两种机制保障代码的安全性。这些特性引导程序员养成编写可靠代码的好习惯。
Java语言的内存管理模式也极其简单，即可使用flew运算符创建对象。Java语言去除C、C++中的指针数据类型，增加了自动回收垃圾机制，这使程序员可以放心开发各自的代码，因为Java系统会在编译或运行时发现这些问题。
Java语言也大量用于分布式环境中，因此对安全性有更高的要求。Java程序只能运行在Java环境中，这使得在网络和分布式环境下Java程序不会成为攻击本地资源的病毒或恶意代码的传播者，从而确保安全。