内容简介
Java是当今世界最重要、使用最广泛的计算机语言之一。全球有超过百万的开发者在用Java进行各种程序的开发。用Java编写的程序因为其硬件环境无关性而越来越受到人们的青睐。
本书共分19章,主要内容包括Java语言的发展、特点、运行环境、数据类型、流程控制、变量常量、运算符与表达式、注释、选择语句、循环语句、跳转语句、数组和排序、类和对象、静态类、继承、枚举、接口、集合类、泛型、字符串、日期和时间处理、数学类、随机类和异常类。在应用方面介绍了文件和目录操作、多线程、反射机制、网络编程、数据库编程以及图形界面设计。最后介绍了常用的几种设计模式在Java中的实现,如单例模式、工厂模式、适配器模式和状态模式等。
本书既可以作为高等院校计算机相关专业Java语言程序设计课程的教材,也可以作为Java程序设计的培训教材,还可以作为自学者的参考书。
前言
Java是当今非常流行的一种面向对象编程语言。该语言由Sun公司推出,具有跨平台、可移植、分布式、简单、可扩展等诸多特性。现在的Java不仅仅表示一种程序语言,更是一个软件开发平台,目前已经演化出J2SE、J2EE和J2ME三个版本。凭借其易学易用、功能强大等特点,Java可以进行桌面应用、Web应用、分布式系统及嵌入式系统等应用程序开发,并且在信息技术、科学研究等领域都得到了广泛的应用。
随着Java 8发布,Java平台又增加了很多新的特性,越来越多的开发人员尝试使用Java 8中的新特性,在Java程序中使用这些新特性,以提高代码质量,提升工作效率。为了使广大学生和工作者能真正掌握Java 8程序设计技术,领悟Java 8程序设计的快乐,享受到动态语言带来的在提高生产效率方面的好处,作者根据多年的程序开发和Java授课经验,精心编写了本书。本书不单纯从知识角度来讲解Java 8程序设计,而是从实践和解决开发问题的角度来介绍Java语言。在编写的过程中,注重把Java语言中的重点、难点、要点和编程中常见的问题融合在一起进行讲解。
本书编写思路清晰、内容翔实、案例实用,详细介绍使用Java程序设计的方方面面。本书既可作为计算机软件以及其他计算机相关专业的教材,也可以作为Java编程人员的参考书。
本书内容
全书共分19章,主要内容如下。
第1章 认识Java。本章主要介绍Java语言的基础知识,包括Java的概念、开发环境的搭建、程序的编译和执行、Java程序的重要组成要素,以及Eclipse工具的使用等内容。
第2章 Java程序设计基础。本章主要介绍Java的基础语法,包括Java程序中的基本数据类型、变量、常量、运算符和类型转换等相关知识。
第3章 流程控制语句。本章首先简单介绍算法的描述方式,重点介绍Java条件语句和循环语句的使用,包括if、switch、for、while、do…while和foreach等。
第4章 字符串处理。本章主要介绍Java中的字符串处理,包括String类字符串、StringBuffer类字符串和正则表达式等内容。
第5章 数字和日期处理。本章主要介绍Math类、Random类、Date类、BigInteger类以及DateFormat类等。
第6章 Java内置包装类。本章主要介绍Java提供的各种包装类,包括Object类、Integer类、Number类、Character类以及System类的使用等内容。
第7章 数组处理。本章详细介绍Java中数组的创建、初始化和各种处理,如获取数组长度、查找数组元素和数组排序等。
第8章 类和对象。本章主要介绍Java中类的应用,包括定义类、创建类的对象、作用域修饰符、构造方法、析构方法以及包的使用等内容。
第9章 继承和多态。本章主要介绍Java中继承的语法和实现,以及多态机制的应用。同时讲解抽象类和接口的实现及区别,最后简单介绍内部类和匿名类的使用。
第10章 Java异常处理。本章主要介绍Java中异常处理语句的使用、异常的声明和抛出,以及自定义异常类。
第11章 集合、泛型和枚举。本章主要介绍Java中的集合处理,包括集合相关接口、集合基类Collection、List集合、Set集合、Map集合和泛型的使用。最后简单介绍枚举的使用。
第12章 Java反射机制。本章主要介绍Java中Class类与Java反射的基本用法。
第13章 Java输入/输出流。本章主要介绍Java中流的使用,包括流的概念和分类、系统流的使用、输入流和输出流的类结构、字节流和字符流的应用。
第14章 Java多线程编程。本章主要介绍线程类的实现、线程的生命周期、停止线程、暂停线程和线程的优先级等内容。
第15章 JDBC数据库编程。本章主要介绍使用JDBC访问数据库的内容,包括JDBC简介、驱动类型、连接数据库的步骤、数据操作对象以及如何遍历查询结果等。
第16章 Java网络编程。本章主要介绍使用Java如何进行TCP通信、UDP通信和URL通信。
第17章 Swing界面编程基础。本章主要介绍使用Swing设计图形界面的基础组件,包括创建窗口和面板、布局管理器的使用、按钮、单行和多行文本框、单选按钮和复选框,最后介绍了事件的监听。
第18章 Swing高级组件。本章主要介绍Swing中的滑块、进度条、菜单栏、工具栏、文件和颜色选择器、对话框组件、表格、树和选项卡等组件。
第19章 Java设计模式。本章首先介绍设计模式的概念和分类,然后介绍常用的设计模式,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、适配器模式、外观模式、观察者模式和状态模式。
本书特色
书中大量内容来自真实的程序范例,使读者更容易掌握Java程序设计的开发。本书难度适中,内容由浅入深,实用性强,覆盖面广,条理清晰。
知识点全
本书紧紧围绕Java语言展开讲解,具有很强的逻辑性和系统性。
实例丰富
书中各实例均经过作者精心设计和挑选,它们都是作者根据实际开发中的经验总结而来的,涵盖了在实际开发中所遇到的各种问题。
应用广泛
对于精选案例,给出了详细步骤,结构清晰简明,分析深入浅出,而且有些程序能够直接在项目中使用,避免读者进行二次开发。
基于理论,注重实践
在讲述过程中,不仅仅只介绍理论知识,而且在合适位置安排了综合应用实例,或者小型应用程序,将理论应用到实践当中,加强读者实际应用能力,巩固开发基础知识。
贴心的提示
为了便于读者阅读,全书还穿插着一些提示、注意、技巧等小贴士,体例约定如下。
提示:通常是一些贴心的提醒,让读者加深印象或提供建议,或者解决问题的方法。
注意:提出学习过程中需要特别注意的一些知识点和内容,或者相关信息。
技巧:通过简短的文字,指出知识点在应用时的一些小窍门。
读者对象
本书既适合作为软件开发入门者的自学用书,也适合作为高等院校相关专业的教学参考书,还可供开发人员查阅、参考。
■ Java语言开发入门者。
■ Java语言的初学者以及在校学生。
■ 各大中专院校在校学生和相关授课老师。
■ 准备从事与Java语言或J2EE 技术相关工作的人员。
本书由孟丽丝、张雪编著,参与本书编写及设计工作的还有郑志荣、侯艳书、刘利利、侯政洪、肖进、李海燕、侯政云、祝红涛、崔再喜、贺春雷等,在此表示感谢。在本书的编写过程中,我们力求精益求精,但难免存在一些不足之处,敬请广大读者批评指正。
编 者
目录
第1 章 认识Java1.1 Java 简介 ………………………………21.1.1 什么是Java 语言 ………………… 21.1.2 Java 语言的特点 ………………… 31.1.3 学习Java 的最佳途径 …………… 41.2 高手带你做——搭建Java 开发环境 …51.3 高手带你做——配置环境变量 …………71.4 高手带你做——输出“你好Java” ……91.4.1 编写Java 源程序 ………………… 91.4.2 编译和运行 …………………… 101.4.3 编译常见错误解决方法 ……… 111.4.4 Java 程序运行流程 …………… 111.5 Java 程序的基本要素 ……………… 121.5.1 标识符 ………………………… 131.5.2 关键字 ………………………… 131.5.3 注释 …………………………… 141.5.4 修饰符 ………………………… 151.5.5 语句和块 ……………………… 151.5.6 类 ……………………………… 151.5.7 方法 …………………………… 151.5.8 main() 方法 …………………… 151.6 Java 推荐编程规范 ………………… 161.7 高手带你做——安装Eclipse ……… 161.8 高手带你做——创建第一个Java项目 ………………………………… 191.9 高手带你做——修改Eclipse 编辑器字体大小 …………………………… 231.10 高手带你做——Eclipse 调试代码 … 241.11 成长任务 …………………………… 26第2 章 Java 程序设计基础2.1 常量 ………………………………… 282.1.1 常量值 ………………………… 282.1.2 定义常量 ……………………… 292.2 变量 ………………………………… 292.2.1 声明变量 ……………………… 302.2.2 变量赋值 ……………………… 302.2.3 变量的作用域 ………………… 302.3 数据类型 …………………………… 322.3.1 数据类型的分类 ……………… 332.3.2 整数类型 ……………………… 332.3.3 浮点类型 ……………………… 342.3.4 布尔类型 ……………………… 362.3.5 字符类型 ……………………… 362.4 基本运算符 ………………………… 372.4.1 算术运算符 …………………… 372.4.2 赋值运算符 …………………… 392.4.3 逻辑运算符 …………………… 412.4.4 关系运算符 …………………… 412.4.5 自增和自减运算符 …………… 432.5 位运算符 …………………………… 452.5.1 位逻辑运算符 ………………… 452.5.2 位移运算符 …………………… 472.5.3 复合位赋值运算符 …………… 482.6 高手带你做——认识条件运算符 …… 482.7 运算符优先级 ……………………… 492.8 类型转换 …………………………… 502.8.1 隐式转换 ……………………… 512.8.2 显式转换 ……………………… 512.9 成长任务 …………………………… 52第3 章 流程控制语句3.1 了解算法 …………………………… 543.1.1 算法的定义 …………………… 543.1.2 高手带你做——使用算法求1~4 的和 ……………………… 543.1.3 算法描述方式 ………………… 553.2 顺序结构 …………………………… 583.2.1 语句编写方式 ………………… 583.2.2 空语句 ………………………… 593.2.3 表达式语句 …………………… 593.2.4 复合语句 ……………………… 593.3 if 条件语句 …………………………… 603.3.1 if 语句语法 …………………… 603.3.2 双条件if 语句 ………………… 623.3.3 多条件if 语句 ………………… 633.3.4 高手带你做——嵌套if 的使用 653.4 switch 条件语句 ……………………… 673.4.1 switch 语句格式 ……………… 673.4.2 if 语句和switch 语句的区别 … 693.4.3 高手带你做——根据出生日期判断星座 …………………… 703.5 循环语句 …………………………… 713.5.1 while 语句 ……………………… 723.5.2 do…while 语句 ………………… 723.5.3 for 语句 ………………………… 743.5.4 高手带你做——九九乘法口诀表 … 773.5.5 foreach 语句 …………………… 783.6 跳转语句 …………………………… 793.6.1 return 语句 ……………………… 793.6.2 break 语句 ……………………… 803.6.3 continue 语句 …………………… 843.7 高手带你做——判断闰年和输出某月的天数 …………………… 863.8 高手带你做——输出杨辉三角形 …… 873.9 成长任务 …………………………… 89第4 章 字符串处理4.1 定义字符串 ………………………… 924.1.1 直接定义字符串 ……………… 924.1.2 使用String 类定义 …………… 924.2 连接字符串 ………………………… 934.2.1 使用连接运算符 ……………… 934.2.2 使用concat() 方法 …………… 944.2.3 高手带你做——连接其他类型数据 ……………………… 954.3 基本处理 …………………………… 964.3.1 获取字符串长度 ……………… 964.3.2 转换大小写 …………………… 974.3.3 去除空格 ……………………… 984.3.4 提取子字符串 ………………… 984.3.5 分割字符串 …………………… 1004.3.6 高手带你做——截取新闻标题 … 1004.4 替换字符串 …………………………1024.4.1 replace() 方法 ………………… 1024.4.2 replaceFirst() 方法 ……………… 1024.4.3 replaceAll() 方法 ……………… 1034.4.4 高手带你做——批量替换字符串 …………………………… 1034.5 比较字符串 …………………………1044.5.1 equals() 方法 …………………… 1044.5.2 equalsIgnoreCase() 方法 ……… 1054.5.3 compareTo() 方法 ……………… 1064.6 查找字符串 …………………………1074.6.1 根据字符查找 ………………… 1074.6.2 根据索引查找 ………………… 1084.6.3 高手带你做——校验文件名和邮箱地址 …………………… 1094.7 高手带你做——加密和解密 …………1104.8 StringBuffer 类 ………………………1114.8.1 创建StringBuffer 类 …………… 1124.8.2 追加字符串 …………………… 1124.8.3 替换字符 ……………………… 1144.8.4 反转字符串 …………………… 1144.8.5 删除字符串 …………………… 1144.8.6 高手带你做——替换特殊符号 1154.9 正则表达式 …………………………1164.9.1 元字符 ………………………… 1164.9.2 限定符 ………………………… 1174.9.3 高手带你做——使用正则表达式验证电话号码 ………… 1174.9.4 高手带你做——验证IP 地址是否合法 ……………………… 1184.10 成长任务 ……………………………120第5 章 数字和日期处理5.1 数学处理类 …………………………1225.1.1 静态常量 ……………………… 1225.1.2 求最大值、最小值和绝对值 … 1225.1.3 求整运算 ……………………… 1235.1.4 三角函数运算 ………………… 1245.1.5 指数运算 ……………………… 1255.2 高手带你做——生成随机数 …………1255.3 高手带你做——数字格式化 …………1285.4 大数字运算 …………………………1295.4.1 BigInteger 类 …………………… 1295.4.2 BigDecimal 类 ………………… 1315.5 日期处理类 …………………………1335.5.1 Date 类 ………………………… 1335.5.2 Calendar 类 …………………… 1355.6 日期格式化 …………………………1385.6.1 DateFormat 类 ………………… 1395.6.2 SimpleDateFormat 类 ………… 1405.7 高手带你做——计算课程结束日期 … 1425.8 高手带你做——实现日期查询功能 … 1445.9 成长任务 ……………………………149第6 章 Java 内置包装类6.1 Object 类 ………………………………1526.2 Integer 类 ……………………………1546.3 Float 类 ………………………………1566.4 Double 类 ……………………………1586.5 Number 类 ……………………………1596.6 Character 类 …………………………1606.7 Boolean 类 ……………………………1636.8 Byte 类 ………………………………1646.9 System 类 ……………………………1656.9.1 System 类的成员变量 ………… 1666.9.2 System 类的成员方法 ………… 1676.10 成长任务 ……………………………169第7 章 数组处理7.1 数组简介 ……………………………1717.2 一维数组 ……………………………1717.2.1 创建一维数组 ………………… 1717.2.2 分配空间 ……………………… 1727.2.3 初始化一维数组 ……………… 1737.2.4 获取单个元素 ………………… 1747.2.5 获取全部元素 ………………… 1757.2.6 高手带你做——统计商品信息 1757.3 二维数组 ……………………………1767.3.1 创建二维数组 ………………… 1777.3.2 初始化二维数组 ……………… 1777.3.3 获取单个元素 ………………… 1777.3.4 获取全部元素 ………………… 1787.3.5 获取整行元素 ………………… 1797.3.6 获取整列元素 ………………… 1807.4 多维数组 ……………………………1817.5 数组的常用处理 ……………………1817.5.1 比较数组 ……………………… 1827.5.2 填充数组 ……………………… 1827.5.3 查找数组 ……………………… 1837.6 复制数组 ……………………………1857.6.1 使用copyOf() 方法和copyOfRange() 方法 …………… 1857.6.2 使用arraycopy() 方法 ………… 1877.6.3 使用clone() 方法 ……………… 1897.7 数组排序 ……………………………1907.7.1 内置排序法 …………………… 1907.7.2 冒泡排序法 …………………… 1917.7.3 快速排序法 …………………… 1927.7.4 选择排序法 …………………… 1947.7.5 直接插入法 …………………… 1957.8 高手带你做——实现商品信息查询功能 ……………………………1967.9 成长任务 ……………………………197第8 章 类和对象8.1 面向对象概述 ………………………2008.1.1 对象的概念 …………………… 2008.1.2 面向对象的三大核心特性 …… 2008.2 高手带你做——认识类和对象 ………2028.3 使用类 ………………………………2038.3.1 定义类 ………………………… 2038.3.2 属性 …………………………… 2048.3.3 高手带你做——创建学生类 … 2058.3.4 方法 …………………………… 2068.3.5 this 关键字 ……………………… 2088.4 对象 …………………………………2098.4.1 对象的创建 …………………… 2098.4.2 访问对象的属性和行为 ……… 2128.4.3 对象的销毁 …………………… 2128.4.4 高手带你做——用户修改密码 2138.5 作用域修饰符 ………………………2158.5.1 访问控制修饰符 ……………… 2158.5.2 static 静态修饰符 ……………… 2178.5.3 final 修饰符 …………………… 2218.6 特殊方法 ……………………………2228.6.1 main() 方法 …………………… 2228.6.2 方法的可变参数 ……………… 2248.6.3 构造方法 ……………………… 2258.6.4 高手带你做——查看个人信息 2278.6.5 析构方法 ……………………… 2288.7 包 ……………………………………2308.7.1 系统包 ………………………… 2308.7.2 自定义包 ……………………… 2318.8 高手带你做——使用自定义包 ………2318.9 成长任务 ……………………………232第9 章 继承和多态9.1 类的封装 ……………………………2349.2 高手带你做——封装图书信息类 ……2359.3 类的继承 ……………………………2369.3.1 简单继承 ……………………… 2379.3.2 单继承 ………………………… 2399.3.3 super 关键字 …………………… 2409.3.4 对象类型转换 ………………… 2419.3.5 强制对象类型转换 …………… 2439.4 方法重载 ……………………………2449.5 方法重写 ……………………………2459.6 多态 …………………………………2479.7 抽象类 ………………………………2499.8 接口 …………………………………2519.8.1 定义接口 ……………………… 2519.8.2 实现接口 ……………………… 2529.9 高手带你做——接口和抽象类的区别 ………………………………2549.9.1 基本语法区别 ………………… 2549.9.2 设计思想区别 ………………… 2559.10 内部类 ………………………………2579.10.1 内部类简介 …………………… 2579.10.2 高手带你做——使用实例内部类 ……………… 2589.10.3 高手带你做——使用静态内部类……………… 2619.10.4 高手带你做——使用局部内部类 ………………………… 2629.11 匿名类 ………………………………2639.12 高手带你做——利用内部类实现多重继承 ……………………………2659.13 成长任务 ……………………………266第10 章 Java 异常处理10.1 了解Java 中的异常 …………………26810.1.1 异常简介 ……………………… 26810.1.2 高手带你做——异常产生的原因及使用原则 …………… 26810.1.3 异常类型 ……………………… 26910.2 异常处理语句 ………………………27010.2.1 异常语句结构 ………………… 27010.2.2 try catch 语句 ………………… 27010.2.3 高手带你做——计算平均成绩 ……………………… 27210.2.4 try catch finally 语句 ………… 27310.3 异常的声明和抛出 …………………27510.3.1 throws 声明异常 ……………… 27610.3.2 throw 抛出异常 ……………… 27710.4 自定义异常 …………………………27810.5 高手带你做——验证用户登录信息 ……………………………28010.6 高手带你做——完善除法运算的错误提示 …………………………28210.7 成长任务 ……………………………285第11 章 集合、泛型和枚举11.1 Java 集合类概述 ……………………28811.1.1 集合中的接口 ………………… 28811.1.2 接口实现类 …………………… 28811.2 Collection 接口 ………………………28911.3 List 集合 ……………………………29111.3.1 ArrayList 类 …………………… 29111.3.2 LinkedList 类 ………………… 29411.4 Set 集合 ……………………………29611.4.1 HashSet 类 …………………… 29611.4.2 TreeSet 类 …………………… 29711.5 Map 集合 ……………………………30011.6 Collections 类 ………………………30111.6.1 正向排序 ……………………… 30111.6.2 逆向排序 ……………………… 30211.6.3 复制 …………………………… 30311.6.4 填充 …………………………… 30511.7 泛型 …………………………………30611.7.1 泛型集合 ……………………… 30611.7.2 泛型类 ………………………… 30811.7.3 泛型方法 ……………………… 30911.7.4 泛型的高级用法 ……………… 31011.8 高手带你做——图书查询功能 ……31111.9 枚举 …………………………………31411.9.1 声明枚举 ……………………… 31411.9.2 枚举类 ………………………… 31511.9.3 为枚举添加方法 ……………… 31611.9.4 EnumMap 与EnumSet ……… 31911.10 成长任务……………………………320第12 章 Java 反射机制12.1 Java 反射简介 ………………………32212.2 反射在类中的应用 …………………32312.2.1 访问构造方法 ………………… 32312.2.2 访问方法 ……………………… 32612.2.3 访问成员变量 ………………… 33012.3 高手带你做——在远程方法中使用反射机制 ………………………33312.4 成长任务 ……………………………338第13 章 Java 输入/输出流13.1 流概述 ………………………………34013.1.1 什么是输入/ 输出流 ………… 34013.1.2 输入流 ………………………… 34013.1.3 输出流 ………………………… 34113.2 系统流 ………………………………34213.3 操作文件 ……………………………34413.3.1 File 类简介 …………………… 34413.3.2 获取文件属性 ………………… 34513.3.3 创建和删除文件 ……………… 34613.3.4 创建和删除目录 ……………… 34613.3.5 遍历目录 ……………………… 34713.4 高手带你做——动态读取文件内容 … 34913.5 使用字节流 …………………………35113.5.1 字节输入流 …………………… 35113.5.2 字节输出流 …………………… 35213.5.3 字节数组输入流 ……………… 35311.5.4 字节数组输出流 ……………… 35413.5.5 文件输入流 …………………… 35513.5.6 文件输出流 …………………… 35613.6 使用字符流 …………………………35813.6.1 字符输入流 …………………… 35913.6.2 字符输出流 …………………… 35913.6.3 字符文件输入流 ……………… 36013.6.4 字符文件输出流 ……………… 36113.6.5 字符缓冲区输入流 …………… 36313.6.6 字符缓冲区输出流 …………… 36413.7 高手带你做——保存图书信息 ……36513.8 成长任务 ……………………………367第14 章 Java 多线程编程14.1 线程简介 ……………………………37014.2 实现线程 ……………………………37114.2.1 继承Thread 类 ……………… 37114.2.2 实现Runnable 接口 ………… 37514.2.3 两种方法比较 ………………… 37614.3 线程的生命周期 ……………………37614.4 高手带你做——多线程之间访问实例变量 …………………37714.5 高手带你做——解决非线程安全问题 ……………………38014.6 线程同步 ……………………………38214.7 线程操作方法 ………………………38414.7.1 currentThread() 方法 ………… 38414.7.2 isAlive() 方法 ………………… 38614.7.3 sleep() 方法 …………………… 38914.7.4 getId() 方法 …………………… 39014.7.5 yield() 方法 …………………… 39114.8 高手带你做——停止线程 …………39214.8.1 停止不了的线程 ……………… 39214.8.2 判断线程是不是停止状态 …… 39314.8.3 异常法停止线程 ……………… 39614.8.4 在休眠中停止 ………………… 39814.8.5 强制停止线程 ………………… 40014.8.6 释放锁的不良后果 …………… 40114.8.7 使用return 停止线程 ………… 40314.9 高手带你做——暂停线程 …………40414.9.1 suspend() 与resume() 方法 …… 40414.9.2 独占问题 ……………………… 40614.9.3 不同步问题 …………………… 40814.10 线程的优先级和执行顺序 ………40914.10.1 优先级概述 ………………… 40914.10.2 使用优先级 ………………… 41014.11 成长任务……………………………412第15 章 JDBC 数据库编程15.1 JDBC 技术 …………………………41415.1.1 JDBC 简介 …………………… 41415.1.2 JDBC API 简介 ……………… 41415.1.3 JDBC 驱动类型 ……………… 41515.2 连接数据库 …………………………41715.3 使用JDBC 驱动程序 ………………41715.3.1 提供JDBC 连接的URL ……… 41815.3.2 加载JDBC 驱动程序 ………… 41815.3.3 数据库驱动类 ………………… 42015.3.4 关闭数据库连接 ……………… 42215.4 高手带你做——使用ODBC 桥连接数据库 …………………………42315.5 执行SQL 语句 ………………………42415.5.1 Statement 对象………………… 42415.5.2 PreparedStatement 对象 ……… 42615.5.3 CallableStatement 对象 ……… 42815.6 处理查询结果 ………………………43015.6.1 使用ResultSet ………………… 43015.6.2 ResultSet 接口的方法 ………… 43115.6.3 ResultSetMetaData 对象 ……… 43315.7 高级结果集 …………………………43415.7.1 可滚动结果集 ………………… 43415.7.2 可更新结果集 ………………… 43715.8 高手带你做——获取列的信息 ……44015.9 高手带你做——商品管理系统 ……44115.10 成长任务 …………………………446第16 章 Java 网络编程16.1 网络基础 ……………………………44816.1.1 网络分类 ……………………… 44816.1.2 网络编程模型 ………………… 44816.1.3 网络协议 ……………………… 44916.1.4 套接字和端口 ………………… 45016.2 InetAddress 地址类 …………………45016.3 TCP 通信 ……………………………45216.3.1 ServerSocket 类 ……………… 45216.3.2 Socket 类 ……………………… 45416.3.3 高手带你做——客户端与服务器端的简单通信 ……… 45616.3.4 高手带你做——传输对象数据 … 45816.4 UDP 通信 ……………………………46216.4.1 DatagramPacket 类 …………… 46216.4.2 DatagramSocket 类 …………… 46316.5 URL 通信 ……………………………46516.5.1 URL 概念……………………… 46516.5.2 URL 类………………………… 46616.5.3 URLConnection 类 …………… 46616.5.4 高手带你做——提取URL 协议名称 …………………………… 46716.6 成长任务 ……………………………468第17 章 Swing 界面编程基础17.1 Swing 简介 …………………………47017.1.1 Swing 类库结构 ……………… 47017.1.2 Swing 包 ……………………… 47017.1.3 Swing 容器 …………………… 47117.2 窗口和面板 …………………………47217.2.1 JFrame 窗口 …………………… 47217.2.2 JPanel 面板 …………………… 47317.3 布局管理器 …………………………47417.3.1 边框布局管理器 ……………… 47517.3.2 流式布局管理器 ……………… 47617.3.3 卡片布局管理器 ……………… 47817.3.4 网格布局管理器 ……………… 47917.3.5 网格包布局管理器 …………… 48017.3.6 盒布局管理器 ………………… 48317.4 基本组件 ……………………………48417.4.1 标签组件 ……………………… 48417.4.2 按钮组件 ……………………… 48617.4.3 单行文本框组件 ……………… 48717.4.4 文本域组件 …………………… 48917.4.5 复选框组件 …………………… 49017.4.6 单选按钮 ……………………… 49117.4.7 下拉列表组件 ………………… 49217.4.8 列表框组件 …………………… 49417.5 高手带你做——实现计算器界面 …49517.6 事件处理 ……………………………49717.6.1 事件处理模型 ………………… 49717.6.2 动作事件监听器 ……………… 49817.6.3 焦点事件监听器 ……………… 49917.6.4 高手带你做——监听列表项选择事件 ……………… 50017.7 高手带你做——星座选择器 ………50117.8 成长任务 ……………………………504第18 章 Swing 高级组件18.1 高级布局组件 ………………………50618.1.1 滑块 …………………………… 50618.1.2 进度条 ………………………… 50818.1.3 计时器 ………………………… 51118.1.4 菜单栏 ………………………… 51318.1.5 工具栏 ………………………… 51818.2 选择器组件 …………………………52118.2.1 文件选择器 …………………… 52118.2.2 颜色选择器 …………………… 52318.3 对话框 ………………………………52418.3.1 确认对话框 …………………… 52418.3.2 消息对话框 …………………… 52518.3.3 输入对话框 …………………… 52618.3.4 选项对话框 …………………… 52718.4 表格 …………………………………52718.5 树 ……………………………………53118.6 选项卡 ………………………………53318.7 高手带你做——制作文本编辑器 …53518.8 成长任务 ……………………………538第19 章 Java 设计模式19.1 认识设计模式 ………………………54019.1.1 设计模式简介 ………………… 54019.1.2 设计模式的理解 ……………… 54019.1.3 设计模式的分类 ……………… 54119.1.4 为什么要学习设计模式 ……… 54219.1.5 如何学习设计模式 …………… 54319.1.6 学习设计模式的层次 ………… 54319.1.7 面向对象的设计原则 ………… 54419.2 单例模式 ……………………………54519.3 工厂模式 ……………………………54619.3.1 简单工厂模式 ………………… 54619.3.2 工厂方法模式 ………………… 54819.3.3 抽象工厂模式 ………………… 55119.4 适配器模式 …………………………55319.5 外观模式 ……………………………55519.6 观察者模式 …………………………55819.7 状态模式 ……………………………56019.8 不要过度使用设计模式 ……………563