图书目录

目录

第1章Java概述1

1.1Java技术简介1

1.1.1Java发展历史1

1.1.2Java技术的构成2

1.1.3Java特性2

1.2JDK安装及配置3

1.2.1了解JDK3

1.2.2安装Java开发工具包5

1.2.3配置环境变量6

1.3创建一个Java应用程序10

1.3.1创建一个Java源文件10

1.3.2编译和运行12

1.3.3编写Java应用程序需要注意的几个规则13

1.3.4排除常见的错误13

1.4Java的工作原理14

1.4.1Java运行环境14

1.4.2Java应用程序执行过程15

1.4.3Java虚拟机17

1.4.4自动垃圾收集19

1.5程序注释19

1.6常用开发环境20

本章小结21

习题122第2章类型、变量和表达式23

2.1一个计算圆面积的程序23

2.2变量和常量24

2.2.1变量的种类24

2.2.2变量的命名25

2.2.3Java的基本数据类型26

2.2.4变量声明27

2.2.5转义字符30

2.2.6常量31

2.2.7枚举类型31

2.3运算符和表达式32

2.3.1运算符32

2.3.2算术表达式33

2.3.3关系和逻辑表达式35

2.3.4移位和位操作运算38

2.3.5赋值运算符40

2.3.6其他运算符41

2.3.7数学函数41

2.3.8字符运算42

2.3.9类型转换42

2.4字符串44

2.4.1字符串常量44

2.4.2字符串变量44

2.4.3字符串运算45

2.5基于文本的输入输出47

2.5.1控制台的输入47

2.5.2字符界面的输出49

本章小结51

习题253第3章流程控制54

3.1语句、语句块和空白54

3.1.1语句54

3.1.2语句块55

3.1.3空白56

3.2顺序结构56

3.3选择结构57

3.3.1if…else语句57

3.3.2switch语句61

3.4循环结构63

3.4.1for循环63

3.4.2while循环65

3.4.3do循环66

3.4.4跳转66

3.5嵌套的结构68

3.6变量的作用域69

3.7程序设计应用70

3.7.1求解素数70

3.7.2递归71

3.8程序调试和排错72

3.8.1利用assert语句调试程序72

3.8.2常见排错方法73

本章小结74

习题375第4章数组78

4.1数组的声明、初始化和访问78

4.1.1数组型变量的声明78

4.1.2为数组分配空间79

4.1.3初始化数组79

4.1.4数组元素的访问80

4.1.5使用增强型循环访问数组元素81

4.2命令行参数81

4.3多维数组82

4.4数组的操作84

4.5数组的应用85

4.5.1查找85

4.5.2排序88

本章小结89

习题490第5章类和对象92

5.1面向对象技术的基础92

5.2使用JDK的类93

5.3创建自己的类95

5.3.1类的结构95

5.3.2声明自定义类96

5.3.3为类添加成员变量98

5.3.4为类添加方法101

5.3.5方法重载106

5.3.6为类添加构造方法106

5.4对象108

5.4.1创建对象109

5.4.2访问对象110

5.4.3this111

5.4.4实例运算符的作用113

5.4.5对象特性及对象之间的关系113

5.5static116

5.5.1static代码块(类的初始化)116

5.5.2static成员变量(共享数据)117

5.5.3static方法(共享操作)118

5.5.4static加载119

5.5.5工厂方法119

5.6内部类120

5.6.1内部类的声明和应用120

5.6.2具有static修饰的内部类121

5.6.3局部内部类122

5.6.4匿名内部类122

5.7枚举123

5.8包125

5.9模块127

本章小结129

习题5130第6章继承和接口132

6.1类的层次结构132

6.2创建现有类的子类133

6.2.1继承133

6.2.2使用super访问超类的构造方法135

6.2.3覆盖和隐藏136

6.3Object类、抽象类、final类137

6.3.1Object类137

6.3.2抽象类140

6.3.3final类141

6.4接口142

6.4.1定义接口142

6.4.2实现接口143

6.4.3用接口定义变量144

6.5抽象类和接口145

6.6类型系统147

6.6.1动态和静态类型147

6.6.2多态性147

6.6.3类型转换148

本章小结149

习题6150第7章异常控制153

7.1异常153

7.1.1异常类型154

7.1.2Java程序中的常见异常155

7.2异常处理156

7.2.1异常处理的结构157

7.2.2捕获多种异常158

7.2.3异常与资源管理159

7.3自定义异常161

7.3.1定义一个受检异常161

7.3.2定义一个非受检异常161

7.4方法声明抛出异常162

7.4.1方法声明中的异常162

7.4.2运行时环境抛出异常163

7.4.3开发人员编码在程序中抛出异常163

7.4.4多异常抛出164

7.4.5覆盖继承自父类的方法时常见的异常问题165

7.5异常处理的基本规则165

7.5.1捕获及声明异常165

7.5.2finally和return的关系166

7.5.3需要注意的其他问题166

本章小结167

习题7168第8章泛型和集合170

8.1集合框架170

8.1.1集合类170

8.1.2集合的接口171

8.2List173

8.2.1List的主要方法173

8.2.2ListIterator174

8.2.3ArrayList175

8.2.4Vector177

8.3Queue178

8.3.1LinkedList179

8.3.2LinkedBlockingQueue181

8.4Set182

8.5Map184

8.6构建有序集合187

8.6.1利用Comparable接口实现有序列表187

8.6.2利用Comparator接口实现有序集合188

8.6.3其他排序集合189

8.7泛型190

8.7.1泛型在集合中的主要应用190

8.7.2声明泛型类191

8.7.3声明泛型接口192

8.7.4声明泛型方法193

8.7.5泛型参数的限定193

8.8Lambda表达式和Stream操作194

8.8.1Lambda表达式194

8.8.2Stream的操作195

本章小结200

习题8201第9章常用类的编程202

9.1Objects类202

9.2System类204

9.3String类与StringBuffer对象205

9.3.1String类205

9.3.2StringBuffer对象208

9.4日期处理209

9.4.1获得Date对象209

9.4.2创建一个Calendar对象210

9.4.3Date和Calendar的转换211

9.4.4修改日历属性211

9.4.5格式化输出及日期型字符串解析212

9.5正则表达式214

9.5.1一个例子214

9.5.2字符集214

9.5.3查找和替换218

9.5.4捕获分组219

9.6Optional类220

9.7数值的包装类223

9.8生成随机数224

9.9反射与代理225

9.9.1Class和反射225

9.9.2对象代理229

本章小结232

习题9233第10章基本I/O处理236

10.1流236

10.1.1什么是流236

10.1.2流的分类237

10.1.3输入流的基本方法238

10.1.4输出流的基本方法239

10.2字符流和字节流240

10.3结点流241

10.4流的处理链242

10.4.1过滤器流242

10.4.2转换流243

10.4.3数据输入和输出流244

10.4.4缓冲流245

10.4.5打印输出流246

10.4.6如何利用流编写程序246

10.5文件处理247

10.5.1File247

10.5.2Path与Files251

10.5.3顺序读写文件254

10.5.4随机读写文件256

10.6对象串行化259

10.6.1什么是串行化259

10.6.2可串行化的对象260

10.6.3对象的串行化存取260

10.6.4串行化的问题261

10.7I/O的异常处理263

本章小结264

习题10264第11章多线程开发266

11.1理解线程266

11.2创建线程267

11.2.1从Thread派生线程类267

11.2.2实现Runnable接口创建线程目标类268

11.2.3定义线程执行的任务268

11.2.4创建线程实例,执行任务269

11.2.5利用Callable接口实现线程269

11.3失控的线程271

11.4线程间的同步和互斥277

11.4.1互斥对象的访问277

11.4.2互斥方法的访问278

11.4.3线程间的同步279

11.4.4线程的死锁问题281

11.5线程的状态与转换281

11.6线程的管理285

11.6.1线程的优先级285

11.6.2线程的中断286

11.6.3守护线程和用户线程286

11.6.4线程组287

本章小结289

习题11291第12章网络编程293

12.1网络基础293

12.1.1网络基本概念293

12.1.2TCP和UDP294

12.2网络编程常用类295

12.3基于TCP的网络编程297

12.3.1基于Socket的客户服务器模型297

12.3.2创建服务器端Socket298

12.3.3创建客户端的Socket299

12.3.4创建一个多线程通信服务器301

12.3.5客户服务器通信的过程302

12.3.6Socket连接的关闭306

12.3.7Socket异常306

12.4对象的网络传输307

12.5基于UDP的网络编程310

12.5.1数据报310

12.5.2基于UDP的客户服务器通信过程312

12.5.3UDP组播通信313

12.6基于URL的网络编程315

12.6.1URL基础315

12.6.2资源访问技术315

本章小结317

习题12318第13章数据库访问319

13.1数据库编程基础319

13.1.1什么是JDBC319

13.1.2JDBC驱动程序类型320

13.1.3安装JDBC驱动程序321

13.2连接数据库321

13.3使用Statement访问数据库324

13.3.1获得Statement324

13.3.2使用Statement对象执行SQL语句326

13.3.3语句完成327

13.4ResultSet328

13.4.1行和光标329

13.4.2获取列的值329

13.4.3插入新行331

13.4.4更新列值332

13.4.5删除记录行332

13.4.6特殊字段类型的处理332

13.5PreparedStatement335

13.6CallableStatement336

13.7事务338

13.7.1事务处理338

13.7.2保存点340

13.8使用RowSet341

13.8.1RowSet的种类341

13.8.2使用JdbcRowSet访问数据库342

13.8.3使用CachedRowSet访问数据库343

13.9数据源和连接池347

本章小结348

习题13349第14章用户界面开发350

14.1简介350

14.1.1从AWT到Swing350

14.1.2创建第一个Swing窗口351

14.2容器和基本组件352

14.2.1Swing API352

14.2.2设计主窗口354

14.2.3添加组件到窗口355

14.2.4按钮JButton356

14.2.5标签JLabel356

14.2.6文本组件356

14.2.7选择性输入组件357

14.2.8列表JList359

14.2.9表格JTable361

14.2.10添加菜单到窗口366

14.3布局管理器367

14.3.1BorderLayout367

14.3.2FlowLayout368

14.3.3BoxLayout369

14.3.4GridLayout369

14.4用中间容器组织界面元素370

14.5事件机制372

14.5.1事件处理过程372

14.5.2主要事件类型373

14.5.3一个事件处理的实例375

14.6对话框377

14.6.1选项对话框377

14.6.2文件对话框378

14.6.3自定义对话框378

14.7图形编程基础380

本章小结382

习题14383