Java从初学到精通

副标题:无

作   者:辛立伟,张帆等编著

分类号:

ISBN:9787121106484

微信扫一扫,移动浏览光盘

简介

   Java不但是最为流行的计算机语言,而且是优秀的纯面向对象语言。本   书针对初学者和自学者的特点,以通俗易懂的语言介绍Java语言,力求做到   深入浅出,将复杂的概念用简洁浅显的语言娓娓道来。    全书内容分为5篇,共计27章,涵盖了Java程序设计语言基础、Java面   向对象基础、Java图形化界面编程技术、Java网络应用程序开发技术、Java   数据库应用程序开发技术等方面的内容。为了便于读者学习和实际应用,本   书最后一篇通过对几个完整项目案例的分析,详细讲解了使用Java语言开发   游戏程序、网络程序和数据库应用程序的完整过程,有利于初学者锻炼使用   Java语言解决实际问题的能力。    本书提供有大量翔实的编程实例和丰富的项目案例,通过对项目的实现   和讲解,以提高读者解决实际问题的能力,使读者逐步具备利用Java语言来   开发应用程序的能力,特别适合于想学习Java语言的初学者和大中专院校学   生阅读,也可作为有一定Java基础的软件开发人员和其他有关人员的参考资   料。   

目录

第1篇 java语言基础篇

第1章 java语言概述 30

本章介绍了java语言的背景、特点、开发环境、开发过程及开发工具的使用。在学习本章内容时,要重点理解java技术的两个含义:java程序设计语言与java平台。重点掌握如何搭建java程序的开发环境,包括下载及安装java开发工具包jdk、配置环境变量及jdk环境测试等。

1.1 java语言简介 30

1.1.1 java语言的起源 30

1.1.2 使用java语言的优点 31

1.2 java语言与java平台 32

1.2.1 java程序设计语言 32

1.2.2 java平台 32

1.3 搭建java程序开发环境 33

1.3.1 系统要求 33

1.3.2 下载java程序开发工具包jdk 34

1.3.3 安装jdk 35

1.3.4 在windows系统下配置jdk 36

1.4 开发第一个java应用程序 37

1.4.1 创建第一个java应用程序源文件 37

1.4.2 将helloworldapp.java源文件编译为.class文件 38

1.4.3 运行helloworldapp应用程序 39

1.4.4 java应用程序的基本结构 40

1.5 小结 41

.第2章 java语言基本语法 42

本章深入学习了java语言的基本语法,重点对常量与变量及数据类型和运算符做了详细的讲述。在本章的学习过程中,可能对java数据类型的转换难以理解,因此读者一定要多做练习,通过上机练习体会和掌握java的基本语法。

2.1 标识符和关键字 42

2.1.1 标识符 42

2.1.2 关键字 42

2.1.3 标识符命名规则 43

2.2 常量与变量 43

2.2.1 常量的概念及常量声明 43

2.2.2 变量的概念及变量声明 44

2.3 基本数据类型 45

2.3.1 数据类型 45

2.3.2 整数类型 45

2.3.3 浮点类型 47

2.3.4 字符类型 47

2.3.5 逻辑类型 49

2.3.6 不同数据类型间的转换 49

2.4 运算符与表达式 51

2.4.1 算术运算符与算术表达式 51

2.4.2 赋值运算符与赋值表达式 52

2.4.3 自增和自减运算符 53

2.4.4 关系运算符和关系表达式 54

2.4.5 逻辑运算符和逻辑表达式 54

2.4.6 位运算符 57

2.4.7 三元运算符 59

2.4.8 运算符的优先级 60

2.5 小结 60

第3章 数组 61

本章深入学习了java语言的数组,了解了java语言中数组的概念,学习了如何声明、创建、访问和修改数组。本章重点是一维数组和二维数组。其中对于数组的创建及二维数组的创建和使用是本章学习的难点,建议读者多上机练习。

3.1 数组的概念与特点 61

3.1.1 什么是数组 61

3.1.2 java语言中数组的特点 62

3.2 一维数组 62

3.2.1 声明一维数组变量 62

3.2.2 创建一维数组对象 63

3.2.3 访问一维数组元素 63

3.2.4 修改一维数组元素 64

3.3 多维数组 65

3.3.1 声明二维数组变量 65

3.3.2 创建二维数组对象 66

3.3.3 访问二维数组元素 67

3.3.4 修改二维数组元素 67

3.4 小结 68

第4章 程序流程控制语句 69

本章深入介绍了有关程序流程控制的语句,主要包括选择语句、循环语句和跳转语句。其中的while循环语句因其灵活方便,读者应重点掌握。本章最后讲到的跳转语句主要用于提高循环语句的灵活性,特别是标签break语句,是本章掌握的难点。

4.1 选择语句 69

4.1.1 if选择语句 69

4.1.2 if-else双分支选择语句 70

4.1.3 if-else-if多分支选择语句 71

4.1.4 选择语句的嵌套 74

4.1.5 switch多分支开关语句 76

4.1.6 if选择语句与switch开关语句的区别 78

4.2 循环语句 78

4.2.1 while循环语句 78

4.2.2 do-while循环语句 80

4.2.3 for循环语句 83

4.2.4 循环语句的嵌套 85

4.2.5 使用增强型for语句遍历一维数组中的元素 87

4.2.6 对一维数组进行排序 88

4.2.7 使用增强型for语句遍历二维数组中的元素 89

4.3 跳转语句 90

4.3.1 break跳转语句 90

4.3.2 continue跳转语句 93

4.4 实例 94

4.4.1 实例1:译密码 95

4.4.2 实例2:打印九九乘法表 96

4.5 小结 97

第5章 数字、字符和字符串处理 98

本章深入介绍了java语言中有关数字、字符和字符串的处理的相关知识,重点讲解了java.lang包中用来处理数字的number及其子类、专门用来处理数学运算的math类、专门用来处理字符的character类,以及专门用来创建和操作字符串的类string。

5.1 数字 98

5.1.1 numbers数字包装器类 98

5.1.2 数字的格式化输出 100

5.1.3 math数学运算处理类 104

5.2 字符 107

5.2.1 character字符包装器类 107

5.2.2 转义字符序列 108

5.3 使用string类 109

5.3.1 创建字符串对象 109

5.3.2 获取字符串的长度 110

5.3.3 连接字符串 110

5.3.4 字符串与字符数组 112

5.3.5 在一个字符串中操纵字符 113

5.3.6 字符串比较和字符串部分内容比较 117

5.4 使用stringbuilder类 120

5.4.1 认识stringbuilder类 120

5.4.2 stringbuilder对象的长度和容量 121

5.4.3 stringbuilder类提供的操作方法 121

5.5 实例 123

5.5.1 实例1:用户登录验证程序 123

5.5.2 实例2:敏感词过滤程序 125

5.6 小结 126

第2篇 java面向对象篇

第6章 类和对象 128

本章主要学习了类和对象的相关概念,包括类的声明、类的实例(即对象)。本章所讲的知识是java面向对象语言中最基本的概念,所涉及的类和声明、对象的构造、访问控制修饰符都是读者学习的重点。其中的构造器的工作过程、访问控制和this关键字的使用是本章学习的难点。

6.1 面向对象简介 128

6.1.1 什么是对象 128

6.1.2 什么是类 130

6.1.3 什么是继承 131

6.1.4 什么是接口 131

6.1.5 什么是包 132

6.2 定义类 132

6.2.1 类的基本结构 132

6.2.2 声明类的成员变量 134

6.2.3 声明类的成员方法 135

6.2.4 成员方法命名 136

6.2.5 方法重载 137

6.2.6 调用成员方法 137

6.2.7 为类提供构造器 139

6.3 向方法或构造器内传递信息 140

6.3.1 使用参数 140

6.3.2 实参与形参的关系 141

6.3.3 参数类型 143

6.3.4 传递任意数量的参数 143

6.3.5 参数名称 144

6.3.6 传递原始数据类型参数 144

6.3.7 传递引用数据类型参数 145

6.4 对象 145

6.4.1 对象实例 145

6.4.2 创建对象 147

6.4.3 使用对象 150

6.5 方法的返回值 152

6.5.1 返回值 152

6.5.2 返回类或接口 153

6.6 使用this关键字 153

6.6.1 对字段使用this 154

6.6.2 对构造器使用this 154

6.7 控制对类的成员的访问 155

6.8 理解实例成员和类成员 156

6.8.1 类变量 156

6.8.2 类方法 158

6.8.3 常量 158

6.8.4 实例:autocar类 158

6.9 初始化字段 159

6.9.1 静态初始化块 159

6.9.2 初始化实例成员 160

6.10 枚举类型 161

6.11 标注 164

6.11.1 标注的用法 164

6.11.2 文档标注 164

6.11.3 预定义标注 165

6.11.4 标注处理 168

6.12 小结 168

第7章 继承 169

本章主要学习了类的继承。这是面向对象语言的三大特征之一。本章学习的重点是继承中方法的覆盖和方法的重写、super关键字的使用及构造器链。读者在学习本章内容时对super关键字的使用及构造器链的调用要细心体会,这是本意学习的难点。

7.1 继承概述 169

7.1.1 继承的概念 169

7.1.2 java平台中的类层次 169

7.1.3 一个继承的示例 170

7.1.4 在子类中可以做的事情 171

7.2 从子类中访问父类的私有成员 172

7.3 对象类型转换 173

7.3.1 隐式对象类型转换 173

7.3.2 强制对象类型转换 174

7.3.3 使用instanceof运算符 174

7.4 覆盖和隐藏超类中的方法 174

7.4.1 覆盖超类中的实例方法 175

7.4.2 协变覆盖 175

7.4.3 隐藏超类中的类方法 176

7.4.4 方法覆盖和方法隐藏后的修饰符 178

7.4.5 方法覆盖和方法隐藏总结 178

7.5 隐藏超类中的字段 179

7.6 使用super关键字访问超类中的成员 180

7.6.1 调用超类中被覆盖的方法 180

7.6.2 访问超类中被隐藏的字段 180

7.7 使用super关键字调用超类的构造器 181

7.7.1 调用超类的无参构造器 181

7.7.2 调用超类的带参构造器 183

7.7.3 构造器链 184

7.8 object类 185

7.8.1 作为超类的object类 185

7.8.2 object类的对象克隆方法clone() 186

7.8.3 object类的对象比较方法equals() 186

7.8.4 object类的对象清除方法finalize() 187

7.8.5 object类的获取对象类信息的方法getclass() 187

7.8.6 object类的获得对象内存地址的方法hashcode() 188

7.8.7 object类的对象字符串表示方法tostring() 188

7.9 编写final类和final方法 188

7.9.1 使用final关键字声明final方法 188

7.9.2 使用final关键字声明final类 189

7.10 小结 189

第8章 接口 190

本章主要介绍了接口的概念、接口的声明及接口的实现。在学习本章内容时,读者重点理解接口的概念和学习如何实现接口。在将接口作为类型使用上,读者可能会感到难以理解,需用心体会。

8.1 理解接口 190

8.1.1 一般接口的概念 190

8.1.2 java中的接口 191

8.1.3 在java中定义接口 191

8.1.4 在java中使用接口 191

8.1.5 作为api的接口 192

8.1.6 接口和多继承 192

8.2 定义接口 193

8.2.1 接口声明 193

8.2.2 接口体 193

8.3 实现接口 194

8.3.1 实现接口的语法 194

8.3.2 接口实例:relatable 195

8.3.3 实现接口relatable 195

8.3.4 编译并运行带有接口的实例 196

8.3.5 实现多个接口时的常量和方法冲突问题 197

8.4 将接口作为类型使用 198

8.5 改写接口 199

8.6 小结 200

第9章 抽象类与嵌套类 201

本章介绍了两种特殊的类型:抽象类和嵌套类。抽象类是实现多态的一种途径,嵌套类主要应用在事件监听器的构建上。其中抽象类和接口的异同是读者学习的一个重点和难点。嵌套类的定义也是学习中容易迷惑的地方。建议读者在学习到这部分内容时,如果暂时不能理解的话,不妨先放一放。等学过后面的事件监听机制以后,再回来学习这部分内容,相信就容易理解了。

9.1 抽象类和抽象方法 201

9.1.1 抽象方法 201

9.1.2 抽象类 201

9.1.3 抽象类与接口对比 202

9.1.4 抽象类实例 202

9.1.5 抽象类实现接口 203

9.1.6 抽象类的类成员 204

9.2 嵌套类 204

9.2.1 为什么要使用嵌套类 205

9.2.2 静态嵌套类 205

9.2.3 内部类 205

9.2.4 内部类实例 206

9.2.5 局部内部类和匿名内部类 207

9.2.6 内部类的修饰符 207

9.3 小结 207

第10章 泛型 208

本章主要描述了什么是泛型、为什么要使用泛型及如何使用泛型。读者在学习本章时,重点理解什么是泛型及为什么要使用泛型。读者可能在学习本章的过程中对如何使用泛型还存在迷惑,没有关系,完全可以先不去理会它。在具体使用泛型最多的地方一般是在java的集合框架部分,所以读者可以在学习java集合框架部分内容时,再回来结合本章的内容来掌握泛型的使用。

10.1 泛型简介 208

10.1.1 为什么要使用泛型 208

10.1.2 一个简单的box类 208

10.2 泛型类型 210

10.2.1 box类的泛型版本 210

10.2.2 类型参数命名惯例 212

10.3 泛型方法和泛型构造器 212

10.4 限定的类型参数 213

10.5 泛型子类型 214

10.6 使用通配符 215

10.7 类型擦除 216

10.8 小结 217

第11章 包 218

本章主要介绍了java语言中包的概念及如何创建和使用包。包是java组织资源的一种方式,读者学习起来应该不会感到吃力。只是如何将包对应到具体的物理路径上,读者应该细心体会。因为java平台的许多实现依赖于分组的文件系统来管理源文件和class文件的,包名往往对应着系统中实际的目录名,这一点读者一定要注意。

11.1 使用包 218

11.2 创建包 219

11.2.1 创建包的语句 219

11.2.2 命名包 220

11.2.3 包命名惯例 220

11.3 使用包中的成员 221

11.3.1 通过全限定名引用包成员 221

11.3.2 导入包中的成员 221

11.3.3 导入整个包 222

11.3.4 包的层级 222

11.3.5 包成员名称冲突 223

11.3.6 静态导入语句 223

11.4 管理源文件和class类文件 224

11.4.1 管理实现策略 224

11.4.2 设置classpath系统变量 225

11.5 小结 225

第12章 集合 226

本章主要学习了java集合框架,包括接口、实现和算法。其中核心集合接口是java集合框架的基础。实现是用于存储集合的数据对象,是实现了集合接口的类。

12.1 java集合框架概述 226

12.1.1 java集合框架 226

12.1.2 使用java集合框架的益处 227

12.2 核心集合接口 227

12.3 collection接口 229

12.3.1 转换构造器 229

12.3.2 collection接口的定义 229

12.3.3 collection接口的基本操作 230

12.3.4 遍历collection接口 230

12.3.5 collection接口的批量操作 231

12.3.6 collection接口的数组操作 231

12.4 set接口 232

12.4.1 set接口的定义 232

12.4.2 set接口的基本操作 233

12.4.3 set接口的批量操作 234

12.4.4 set接口的数组操作 235

12.5 list接口 235

12.5.1 list接口的定义 235

12.5.2 list接口与vector的比较 236

12.5.3 从collection继承的操作 236

12.5.4 按位置访问和查找操作 237

12.5.5 list迭代器 238

12.5.6 子集合操作 240

12.6 queue接口 242

12.6.1 queue接口的定义 242

12.6.2 queue接口的操作 242

12.6.3 queue接口应用 243

12.7 map接口 243

12.7.1 map接口的定义 243

12.7.2 map接口的基本操作 244

12.7.3 map接口的批量操作 245

12.7.4 集合视图 245

12.8 sortedset接口 246

12.8.1 sortedset接口的定义 246

12.8.2 sortedset接口的操作 247

12.8.3 sortedset接口的标准构造器 247

12.8.4 子集合操作 247

12.8.5 端点操作 248

12.9 sortedmap接口 248

12.9.1 sortedmap接口的定义 249

12.9.2 sortedmap接口的操作 249

12.9.3 sortedmap接口的标准构造器 249

12.9.4 与sortedset接口的比较 249

12.10 实现 250

12.10.1 实现的类型 250

12.10.2 set接口的实现 251

12.10.3 list接口的实现 252

12.10.4 map接口的实现 252

12.10.5 queue接口的实现 253

12.11 算法 253

12.11.1 collections类 254

12.11.2 排序 254

12.11.3 乱序 254

12.11.4 常规数据处理 255

12.11.5 查找 255

12.11.6 组成 255

12.11.7 查找极值 255

12.12 小结 256

第3篇 java图形图像篇

第13章 创建一个图形界面应用程序 258

本章学习如何使用swing工具包创建带图形界面的java应用程序。在学习本章时,重点理解顶层窗口的概念,特别是内容面板。因为java应用程序中要求其他组件都要位于内容面板之上。在学习窗体及窗体事件响应时可能会有些理解上的困难,不用担心,只要了解其工作原理即可,在实际开发中,集成开发工具会给程序员完成很多基础性的工作的。

13.1 java swing简介 258

13.1.1 什么是swing 258

13.1.2 swing特性 259

13.2 创建一个简单的图形界面程序 260

13.2.1 helloworldswing.java界面程序示例 260

13.2.2 编译并运行helloworldswing程序 261

13.3 使用swing顶层容器 262

13.3.1 swing中的顶层容器类 262

13.3.2 顶层容器和容器层级 264

13.3.3 向内容面板中添加组件 264

13.3.4 给窗体添加一个菜单栏 265

13.3.5 根面板 265

13.4 使用jframe类创建图形界面程序窗体 265

13.4.1 创建并显示一个窗体 265

13.4.2 创建窗体的一般步骤 266

13.4.3 指定窗口装饰 267

13.4.4 响应窗口关闭事件 269

13.4.5 窗体api 270

13.5 小结 271

第14章 使用swing基本组件 272

本章主要介绍jcomponent类和swing的基本组件。jcomponent类是所有swing中非顶层组件的直接或间接超类,它定义了公共的api,所以了解jcomponent类有助于掌握其他swing组件的使用。

14.1 认识jcomponent类 272

14.1.1 jcomponent特性 272

14.1.2 jcomponent api 273

14.2 基本控件 276

14.2.1 按钮组件jbutton 276

14.2.2 复选框组件jcheckbox 280

14.2.3 单选按钮组件jradiobutton 281

14.2.4 文本框组件jtextfield 282

14.2.5 密码框组件jpasswordfield 284

14.2.6 组合框组件jcombobox 286

14.2.7 滑块组件jslider 288

14.2.8 微调控制组件jspinner 290

14.2.9 菜单组件jmenu 292

14.2.10 列表框组件jlist 297

14.3 不可编辑的信息显示控件 300

14.3.1 标签组件jlabel 300

14.3.2 进度条组件jprogressbar 302

14.3.3 分隔线组件jseparator 303

14.3.4 工具提示组件jtooltip 305

14.4 小结 305

第15章 使用swing高级组件 306

本章主要讲解swing的高级组件,包括交互式显示高度格式化信息控件,如颜色选择器jcolorchooser、文件选择器jfilechooser、表组件jtable和树组件jtree等。另外,还介绍了非顶层容器控件及特殊用途窗口控件。最后两节介绍了如何在swing组件中使用html以格式化文本,以及swing提供的各种简单而实用的对话框。

15.1 交互式显示高度格式化信息控件 306

15.1.1 颜色选择器jcolorchooser 306

15.1.2 文件选择器jfilechooser 307

15.1.3 文本编辑组件jeditorpane和jtextpane 309

15.1.4 文本区组件jtextarea 311

15.1.5 表组件jtable 312

15.1.6 树组件jtree 315

15.2 非顶层容器控件 318

15.2.1 面板组件jpanel 318

15.2.2 滚动面板jscrollpane 320

15.2.3 拆分面板jsplitpane 321

15.2.4 选项卡面板jtabbedpane 323

15.2.5 工具栏jtoolbar 326

15.3 特殊用途窗口控件 328

15.3.1 内部窗体组件jinternalframe 328

15.3.2 层面板jlayeredpane 330

15.3.3 根面板jrootpane 332

15.4 在swing组件中使用html 334

15.5 顶层容器对话框jdialog 336

15.5.1 对话框简介 336

15.5.2 使用joptionpane类创建简单对话框 336

15.6 小结 339

第16章 程序界面布局 340

本章主要介绍了swing中的程序界面布局方式,包括borderlayout、boxlayout、cardlayout、flowlayout、gridbaglayout、gridlayout、grouplayout和springlayout。

16.1 标准布局管理器简介 340

16.1.1 borderlayout边框布局 340

16.1.2 boxlayout布局 341

16.1.3 cardlayout卡片布局 341

16.1.4 flowlayout流动布局 341

16.1.5 gridbaglayout网格包布局 341

16.1.6 gridlayout网格布局 341

16.1.7 grouplayout布局 342

16.1.8 springlayout布局 342

16.2 在程序中使用布局管理器 342

16.2.1 设置布局管理器 342

16.2.2 向容器中添加组件 342

16.2.3 提供组件大小和排列策略 343

16.2.4 设置组件之间的间隙 343

16.2.5 设置容器的语言方向 343

16.2.6 选择布局管理器 344

16.3 使用各种布局管理器 344

16.3.1 使用borderlayout 345

16.3.2 使用boxlayout 347

16.3.3 使用cardlayout 348

16.3.4 使用flowlayout 349

16.3.5 使用gridlayout 350

16.3.6 使用gridbaglayout 352

16.4 实例:设计用户登录界面 358

16.4.1 设计界面布局 358

16.4.2 代码实现 358

16.5 小结 362

第17章 事件处理 363

本章介绍了程序事件处理原理和java中的事件处理机制,并且概括了java中的各种事件类型。在学习本章内容时,重点掌握各种事件类型的处理方法。在了解java的事件处理机制时,可能会有一定的难度。

17.1 事件处理原理 363

17.2 java事件处理模型 363

17.3 java事件与监听器的类型 364

17.3.1 java事件类型 365

17.3.2 java监听器类型 366

17.3.3 java适配器类 366

17.4 处理动作事件 367

17.4.1 编写动作事件处理程序的步骤 367

17.4.2 处理动作事件的过程 367

17.4.3 处理按钮触发的动作事件 368

17.4.4 处理选择菜单时触发的事件 370

17.4.5 处理文本框触发的事件 373

17.5 处理选项事件 375

17.5.1 编写选项事件处理程序的步骤 375

17.5.2 处理选项事件的过程 375

17.5.3 处理选择项状态改变所触发的事件 376

17.6 处理列表选择事件 378

17.6.1 编写列表事件处理程序的步骤 378

17.6.2 处理列表选择事件的过程 379

17.6.3 处理选择列表项时所触发的事件 379

17.7 处理焦点事件 381

17.7.1 编写焦点事件处理程序的步骤 381

17.7.2 处理焦点事件的过程 382

17.7.3 处理组件获得或失去焦点时所触发的事件 382

17.8 处理键盘事件 384

17.8.1 编写键盘事件处理程序的步骤 384

17.8.2 处理键盘事件的过程 384

17.8.3 处理键盘击键时所触发的事件 385

17.9 处理鼠标事件 387

17.9.1 编写鼠标事件处理程序的步骤 387

17.9.2 处理鼠标事件的过程 387

17.9.3 处理鼠标操作所触发的事件 388

17.10 处理鼠标移动事件 390

17.10.1 编写鼠标移动事件处理程序的步骤 390

17.10.2 处理鼠标移动事件的过程 390

17.10.3 处理鼠标移动时所触发的事件 391

17.11 实例:一个简单的用户登录验证程序 393

17.11.1 程序功能 393

17.11.2 为程序实现动作事件监听器 394

17.11.3 为按钮注册监听器 394

17.11.4 实现actionlistener接口中的actionperformed方法 395

17.11.5 编译并运行程序 396

17.12 小结 396

第18章 图形、文本和图像处理 397

本章介绍了java中对图形、文本和图像的处理,主要是使用java 2d api。在本章中,对图像的处理就是读者学习的重点,因为在实际开发中,相对图形和文本的处理,可能使用java的机会并不是很多。其中文本的处理较为复杂,是读者学习的难点。建议读者能理解本章的内容即可。

18.1 java2d概述 397

18.1.1 java2d坐标空间 397

18.1.2 java2d渲染模型 398

18.2 java2d绘图入门 398

18.2.1 创建一个绘图面板 398

18.2.2 获取graphics2d对象 399

18.2.3 简单实例:绘制字符串 399

18.3 绘制几何图形 400

18.3.1 基本几何对象 400

18.3.2 使用point2d 401

18.3.3 画直线 401

18.3.4 画直角矩形 402

18.3.5 画圆角矩形 402

18.3.6 画椭圆形 403

18.3.7 画弧形 404

18.3.8 画二次曲线 405

18.3.9 画三次曲线 405

18.3.10 画任意图形 406

18.3.11 设置画笔样式 407

18.3.12 设置填充模式 409

18.3.13 实例:绘制和填充几何图形 410

18.4 绘制文本 413

18.4.1 选择字体 413

18.4.2 获得本地系统已安装的字体 414

18.4.3 创建一个新的字体 415

18.4.4 获取某个字体的信息 416

18.5 绘制图像 416

18.5.1 读取/加载图像 416

18.5.2 绘制图像 417

18.5.3 创建并绘制图像 418

18.5.4 写入/保存图像 418

18.5.5 获取可读写的图像类型 419

18.5.6 实例:读写jpg图像 419

18.6 小结 421

第4篇 java开发技术篇

第19章 异常处理 424

本章主要向读者介绍了java中的异常处理机制。异常处理机制是保证java程序正常运行、具有较高安全性的重要手段。对于开发良好的编程习惯是非常重要的。读者在学习本章内容时,把重点放在对java程序中的异常处理上。而在学习到自定义异常时,读者可能会感觉到有些困难。建议将自定义异常作为了解内容即可。

19.1 java异常 424

19.1.1 java程序的编译错误 424

19.1.2 java程序的运行错误 425

19.1.3 java程序中的逻辑错误 426

19.1.4 java程序的异常处理机制 427

19.1.5 java语言中的异常处理类 427

19.2 处理java程序中的异常 428

19.2.1 使用try-catch语句保护代码和捕获异常 428

19.2.2 使用多个catch子句 428

19.2.3 使用finally子句 429

19.2.4 可嵌入的try块 430

19.3 抛出异常 431

19.3.1 使用throws声明可能会抛出异常的方法 431

19.3.2 使用throw抛出异常 432

19.3.3 异常类常用方法 433

19.4 自定义异常 433

19.4.1 创建自定义异常类 433

19.4.2 使用throw和try-catch语句处理自定义异常 434

19.5 小结 435

第20章 输入与输出 436

本章主要介绍了java中的数据流,包括输入流和输出流。流的处理是java中很重要的一项技术。读者在学习本章内容时,重点掌握对字节流的处理和对字符流的处理。java中流的体系比较复杂,可能会对读者的理解带来困难。建议读者在学习时重点放在字节流、字符流和缓冲流的处理上,其他的部分作为了解内容即可。

20.1 文件类(file类)的使用 436

20.2 流的概念 438

20.2.1 流的定义 438

20.2.2 输入流与输出流 438

20.2.3 字节流与字符流 439

20.3 字节流 439

20.3.1 inputstream类与outputstream类 439

20.3.2 文件输入流fileinputstream类与文件输出流fileoutputstream类 440

20.3.3 缓存输入流bufferedinputstream类与缓存输出流buffered outputstream类 442

20.4 字符流 443

20.4.1 reader类和writer类 443

20.4.2 字符文件读写器filereader类和filewriter类 444

20.4.3 带缓存的字符文件读写器bufferedreader类和bufferedwriter类 445

20.4.4 打印流printstream类和printwriter类 447

20.5 实现用户输入 448

20.5.1 使用system.in获取用户输入 448

20.5.2 使用scanner类获取用户输入 449

20.5.3 使用命令行参数 449

20.6 小结 450

第21章 并发程序设计 451

本章介绍了java线程的一些基本知识和简单应用,并进一步讲解了并发程序中几个重要的概念:同步、死锁及高级并发对象。本章的内容对于初学者来说有一定的难度,特别是同步、死锁、不可改变对象及高级并发对象等。建议读者把学习的重点放在线程的理解及两种线程的实现方法上。

21.1 进程和线程 451

21.1.1 进程 451

21.1.2 线程 452

21.2 线程对象 452

21.2.1 定义并启动一个线程 452

21.2.2 使用sleep暂停线程执行 453

21.2.3 中断线程 454

21.2.4 join方法 455

21.2.5 实例:simplethreadsdemo.java 456

21.3 同步 459

21.3.1 线程冲突 459

21.3.2 内存一致性错误 460

21.3.3 同步方法 460

21.3.4 固定锁和同步 461

21.3.5 原子访问 462

21.4 活跃性 463

21.4.1 死锁 463

21.4.2 饥饿和活锁 464

21.5 守护块 464

21.6 不可变对象 467

21.6.1 同步类实例 468

21.6.2 定义不可变对象的策略 469

21.7 高级并发对象 470

21.7.1 锁对象 471

21.7.2 执行器 473

21.7.3 并发集合 474

21.7.4 原子变量 476

21.8 实例:模拟银行系统进行存取款处理 477

21.9 小结 479

第22章 网络编程 480

在本章中,学习了如何使用java的java.net包所提供的类来进行socket网络编程。重点讲了基于tcp协议的可靠的和面向连接的网络通信,以及基于udp协议的不可靠的和无连接的网络通信。这是本章学习的重点。其中应用多线程处理多客户端的访问是本章学习的难点,读者应结合上一章线程部分的内容来理解这部分内容。

22.1 网络编程基础 480

22.1.1 tcp协议 480

22.1.2 ip协议 480

22.1.3 udp协议 480

22.1.4 端口 481

22.1.5 套接字 481

22.1.6 java.net包 481

22.2 使用inetaddress类封装ip地址 481

22.2.1 inetaddress类 482

22.2.2 实例:获取本地主机和internet公共域名的名称和ip地址 482

22.3 基于url的网络编程 483

22.3.1 url类 484

22.3.2 直接读取url内容 486

22.3.3 urlconnection类 487

22.4 基于tcp的网络编程 488

22.4.1 socket通信模型 488

22.4.2 服务器端程序设计 489

22.4.3 客户端程序设计 491

22.4.4 多客户端同时访问服务器端程序 493

22.5 基于udp的网络编程 494

22.5.1 udp通信模型 494

22.5.2 接收数据报程序设计 495

22.5.3 发送数据报程序设计 496

22.5.4 运行udp网络程序 498

22.6 小结 498

第23章 java数据库应用程序开发基础 499

在本章中,介绍了java的jdbc技术,以及如何使用java.sql包中的相关类编写数据库应用程序,最后还介绍了事务管理。其中应用java.sql包中的类编写数据库应用程序应是读者本章学习的重点。而在数据库程序中处理事务是本章学习的难点,读者应结合本书所提供的示例上机调试运行,以帮助理解相关的概念。

23.1 jdbc技术概述 499

23.1.1 jdbc技术介绍 499

23.1.2 jdbc的4种驱动程序 500

23.1.3 如何获得jdbc驱动程序 501

23.1.4 设置环境变量使得驱动程序可被访问 501

23.2 java.sql包 501

23.3 访问数据库 504

23.3.1 创建access odbc数据源 504

23.3.2 创建数据库连接 506

23.3.3 对数据库进行查询 507

23.3.4 增加、修改、删除数据库中数据 508

23.3.5 使用preparedstatement访问数据库 509

23.4 事务 509

23.5 小结 511

第24章 使用swing组件创建数据库应用程序 512

在本章中,通过若干实例学习了如何使用swing组件jcombobox、jlist和jtable创建数据库应用程序。读者在学习本章内容时,重点掌握jcombobox组件、jlist组件和jtable组件显示数据的方式。而这些组件所采用的mvc模式可能是读者学习的一个难点。建议读者将本章的示例上机调试和运行,细心体会mvc开发的模式。

24.1 使用jcombobox组件创建数据库应用程序 512

24.1.1 创建一个jcombobox 512

24.1.2 利用defaultcomboboxmodel创建jcombobox 515

24.2 使用jlist组件创建数据库应用程序 516

24.2.1 利用defaultlistmodel创建jlist 516

24.2.2 利用listmodel与abstractlistmodel创建jlist 518

24.3 使用jtable组件创建数据库应用程序 519

24.3.1 与jtable相关的类 520

24.3.2 利用defaulttablemodel创建jtable 521

24.4 小结 522

第5篇 java实战篇

第25章 案例1:拼图游戏 524

在本章中,通过一个完整的拼图游戏的开发过程,介绍了创建java应用程序的步骤和方法。重点对游戏的算法设计和代码实现做了详细的说明。在本例中,综合运用到了java的swing编程、继承类、集合和泛型的使用、事件处理等知识点,让读者真正达到独立开发的能力和综合运用多种知识的能力。

25.1 软件简介 524

25.1.1 应用背景 524

25.1.2 功能介绍 524

25.2 素材准备 525

25.3 算法设计 525

25.3.1 加载和拆分图片 525

25.3.2 实现图片的随机排列 526

25.3.3 实现图片的移动 526

25.3.4 参考图像的缩放 527

25.4 开发步骤 528

25.4.1 自定义按钮类设计:imagebutton类 528

25.4.2 游戏界面布局:构造窗体类puzzlegame 528

25.4.3 加载和拆分图像 529

25.4.4 创建拼接图面板 530

25.4.5 创建显示参考图像的面板 531

25.4.6 创建菜单栏 533

25.4.7 实现按钮事件监听器类 534

25.4.8 设置窗体在屏幕中出现的位置 535

25.4.9 编写main方法 535

25.4.10 运行测试 536

25.5 打包部署 536

25.6 小结 536

第26章 案例2:心心网络聊天室 537

在本章中,通过一个完整的网络聊天室的开发过程,介绍了创建java网络应用程序的步骤和方法。重点对程序的设计和功能模块划分及代码实现做了详细的说明。在本例中,综合运用到了java的socket编程技术、多线程处理等知识点,其中的多线程实现双向通信是本章学习的难点,读者可参考书中提供的示例源代码,实际上机调试并运行,以帮助理解。

26.1 软件简介 537

26.1.1 应用背景 537

26.1.2 需求分析 537

26.2 设计思路与原理 539

26.2.1 服务端 539

26.2.2 客户端 540

26.2.3 建立用户界面 540

26.3 业务流程图 541

26.4 应用程序实现 541

26.4.1 建立服务器:chatserver类 542

26.4.2 通信处理:chathandler类 543

26.4.3 建立客户端:chatclient类 545

26.4.4 消息封装:message类 548

26.5 软件部署 549

26.5.1 服务器端程序打包与部署 550

26.5.2 客户端程序打包与部署 550

26.5.3 运行测试 551

26.6 小结 551

第27章 案例3:惠文教育教务管理系统 552

数据库应用程序的开发,是java程序员最经常接触到的项目类型之一。数据库开发技术,同样也是java语言中最重要的技术之一。本案例通过一个真实的惠文教育教务管理系统,着重向读者介绍了从项目背景、需求分析、总体设计和概要设计、数据库设计与实现、功能代码实现到应用程序部署和运行测试的完整的开发过程,比较详细地向读者展示了java数据库应用程序的开发技术。

27.1 背景与主要技术介绍 552

27.1.1 应用背景 552

27.1.2 安装和配置mysql数据库 552

27.1.3 配置mysql数据库的jdbc驱动程序 557

27.2 总体设计与概要说明 558

27.2.1 功能模块划分 558

27.2.2 功能模块说明 559

27.3 业务流程图 559

27.3.1 登录模块流程 559

27.3.2 班主任管理模块流程 560

27.3.3 教务专员管理模块 560

27.3.4 人事专员管理模块 560

27.4 数据库设计 560

27.4.1 数据库需求分析 561

27.4.2 数据库概念结构设计 561

27.4.3 数据库逻辑结构设计 563

27.4.4 数据库结构的实现 565

27.5 应用程序实现 567

27.5.1 创建应用程序对象 567

27.5.2 实现登录模块 569

27.5.3 实现菜单栏 578

27.5.4 实现修改密码模块 580

27.5.5 实现“关于”对话框 587

27.5.6 实现人事管理模块 589

27.5.7 实现departmentinfobean、teacherinfobean信息封装类 605

27.5.8 实现departmentaction、teacheraction业务处理类 607

27.6 软件部署 613

27.7 项目总结 616


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Java从初学到精通
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon