本书从零基础开始,对Java SE相关知识进行了深入细致的讲解。
全书共分为13章,主要内容包括Java语言概述、Java基础语法、面向对象编程、异常处理、API常用类的使用、多线程机制、泛型、集合框架、I/O编程、网络编程、Swing编程、标注和反射等。
本书通俗易懂、术语表述严谨规范、配有典型实用的示例代码和深入透彻的问题剖析。
本书既可以作为普通高等院校的教材,也可以作为职业培训机构的教程及Java编程爱好者的自学用书。
Java作为当前最热门的编程语言之一,吸引着全世界编程爱好者。本书以Java SE 7.0为基础,全面、系统地介绍Java SE的核心技术。本书通过条理清晰的知识归纳、通俗易懂的示例讲解,让初学者快速掌握Java SE的核心技术。
本书融合Java SE核心技术和具体实践于一体,是作者对多年软件开发经验和多年教学实践经验的总结。对于书中的每一个知识点归纳、每一段示例代码,读者如果细研读并加以理解和实践,必定会从中受益。
1. 本书内容
本书共分为13章,涵盖Java SE的技术要点。各章的主要内容说明如下。
第1章:全面、系统地介绍Java语言的发展简史,Java语言的特性,Java开发环境的搭建,Java程序的编写、编译和运行过程。
第2章:详细讲解Java语言的基本语法,从标识符、变量、数据类型到程序结构。
第3章和第4章:全面、透彻地讲解面向对象编程的思想和应用。通过大量示例来讲解面向对象编程的三大特征:封装、继承和多态。
第5章:详细讲解异常的处理,对异常产生的原理及处理机制进行深入分析,并提供实用的异常处理建议。
第6章:介绍Java SE API中常见类的使用,通过大量的示例,来演示这些常用类的典型使用场景。
第7章:针对多线程技术进行全面介绍,详细讲解进程和线程的区别,同时对线程不安全的问题也进行详细阐述并提供相应的解决方案。
第8章和第9章:介绍泛型技术和集合框架的使用。
第10章:对Java语言中的I/O编程进行详解的讲解,通过大量示例应用,展示在实际开发中如何应用I/O类解决文件内容读取问题。
第11章:对网络编程进行概述性讲解,首先介绍网络通信协议,然后用Java语言中的TCP编程、UDP编程编写几个网络通信的示例。
第12章:通过Swing进行GUI编程介绍,主要包括常用Swing组件、布局管理器、事件处理等知识的讲解。
第13章:介绍Java SE中的高级内容:标注和反射,这是目前较为流行的技术,通过大量的示例讲解来介绍相应的知识点。
2. 本书特色
(1)本书在每章后面,均配有上机实训,以便课后加强读者的动手能力。
(2)每章后面的习题用于帮助读者温习所学知识。
(3)对于一些细节,本书在需特别注意的地方,均设置“注意”段落,以便读者更好地掌握这些细节。
3. 适用读者
本书专门为在校学生和零基础的读者量身定制,是普通高等院校Java程序设计课程的首选教材,同时也可作为职业培训机构的教程以及Java编程爱好者的自学用书。
4. 本书作者
本书由CSDN旗下天津Java实训基地教学总监邱加永主编,天津市大学软件学院教学与实训部张仁杰、张静担任副主编。孙连伟、武迪等老师参与了编辑。编者力求表述规范严谨,通俗易懂。但限于自身水平,疏漏之处在所难免,如果在阅读的过程中遇到什么问题或者有好的建议或意见,欢迎随时与我们联系。相关问题的讨论,读者朋友可以加入QQ群:45390709,或发送邮件到qjyong@gmail.com与作者交流。
第1章 Java概述1
1.1 Java语言简介2
1.1.1 Java语言发展简史2
1.1.2 Java语言的特性3
1.2 Java技术的核心5
1.2.1 Java虚拟机5
1.2.2 垃圾回收机制5
1.3 Java平台体系结构5
1.4 搭建Java程序的开发环境7
1.4.1 JDK的安装和配置7
1.4.2 Eclipse的安装和使用11
1.5 Java程序开发步骤15
1.5.1 编辑Java源代码15
1.5.2 编译Java程序16
1.5.3 运行Java程序17
1.6 Java程序的装载和执行过程18
1.6.1 装载程序19
1.6.2 检验程序19
1.6.3 执行程序19
1.7 上机实训19
本章习题19
第2章 Java语言的基础语法21
2.1 Java程序的基本结构22
2.1.1 代码框架22
2.1.2 注释23
2.1.3 标识符24
2.1.4 关键字24
2.2 数 据 类 型24
2.2.1 整数型25
2.2.2 浮点型25
2.2.3 字符型26
2.2.4 布尔型27
2.3 变量27
2.3.1 变量的声明、初始化和使用27
2.3.2 变量的作用域28
2.4 数据类型间的转换29
2.4.1 自动转换29
2.4.2 强制转换29
2.5 运算符30
2.5.1 算术运算符30
2.5.2 赋值运算符31
2.5.3 关系运算符32
2.5.4 逻辑运算符32
2.5.5 三目运算符33
2.5.6 位运算符33
2.5.7 表达式35
2.5.8 表达式类型的自动提升35
2.5.9 运算符优先级36
2.6 流程控制36
2.6.1 顺序语句37
2.6.2 条件语句37
2.6.3 循环语句43
2.6.4 使用break和continue控制循环语句46
2.6.5 流程控制综合应用48
2.7 数组50
2.7.1 一维数组50
2.7.2 多维数组53
2.8 上机实训56
本章习题57
第3章 面向对象编程(上)59
3.1 面向对象编程概述60
3.1.1 面向过程的设计思想60
3.1.2 面向对象的设计思想61
3.1.3 类和对象61
3.2 封装类62
3.2.1 定义属性63
3.2.2 定义方法64
3.2.3 定义构造器65
3.3 对象的创建和使用68
3.3.1 对象的创建68
3.3.2 属性的初始化69
3.3.3 对象的使用69
3.3.4 对象的回收70
3.4 深入理解方法70
3.4.1 方法的参数传递70
3.4.2 方法重载72
3.4.3 方法的可变参数73
3.4.4 递归方法74
3.5 this关键字75
3.6 属性、参数和局部变量的关系77
3.7 JavaBean77
3.8 包78
3.8.1 声明包78
3.8.2 编译带包的类79
3.8.3 使用带包的类79
3.8.4 JDK中的常用包80
3.9 文档注释81
3.9.1 在源代码中插入文档注释81
3.9.2 常规标记81
3.9.3 类或接口注释82
3.9.4 方法注释83
3.9.5 属性注释84
3.9.6 包和概述注释85
3.9.7 提取注释生成帮助文档85
3.10 上机实训86
本章习题87
第4章 面向对象编程(下)89
4.1 类的继承90
4.1.1 继承说明91
4.1.2 继承的优点92
4.1.3 继承设计92
4.2 super关键字93
4.3 访问控制符93
4.4 常用修饰符96
4.4.1 static96
4.4.2 final100
4.5 方法覆盖102
4.6 多态104
4.6.1 对象变量多态104
4.6.2 多态方法107
4.6.3 多态参数108
4.7 抽象类110
4.8 接口112
4.8.1 接口的定义和实现113
4.8.2 接口中的变量115
4.8.3 多重接口115
4.9 嵌套类116
4.9.1 嵌套类的定义语法117
4.9.2 内部类117
4.9.3 静态嵌套类120
4.10 JAR文件121
4.10.1 jar命令121
4.10.2 清单文件122
4.10.3 创建可执行的JAR文件122
4.11 上机实训123
本章习题124
第5章 异常129
5.1 异常概述130
5.2 异常类的层次结构131
5.2.1 Error类132
5.2.2 Exception类132
5.3 异常的处理133
5.3.1 try、catch和finally语句块133
5.3.2 输出异常信息135
5.3.3 异常栈跟踪137
5.4 声明异常138
5.5 手动抛出异常139
5.6 自定义异常140
5.6.1 定义异常类140
5.6.2 使用自定义异常类141
5.7 JDK 7新增的异常处理语法141
5.7.1 try-with-resources语句141
5.7.2 catch多个Exception142
5.8 处理异常时的建议143
5.9 上机实训143
本章习题143
第6章 Java SE API常用类147
6.1 Java SE API文档概述148
6.1.1 下载Java SE API文档148
6.1.2 Java SE API文档的结构149
6.1.3 使用Java SE API文档150
6.2 java.lang包151
6.2.1 Object类151
6.2.2 基本数据类型的包装类156
6.2.3 枚举类型和枚举类157
6.2.4 Math类160
6.2.5 System类161
6.2.6 Runtime类165
6.2.7 String类168
6.2.8 StringBuilder和StringBuffer类173
6.3 java.util包174
6.3.1 Random类175
6.3.2 Arrays类176
6.3.3 日期和时间相关类178
6.4 国际化相关类182
6.4.1 java.util.Locale类182
6.4.2 java.text.MessageFormat类的格式化字符串183
6.4.3 Java程序国际化183
6.4.4 java.text.NumberFormat类的格式化数字方法186
6.4.5 java.text.DateFormat类的格式化日期时间方法187
6.5 正则表达式相关类190
6.5.1 正则表达式语法190
6.5.2 Java SE中的正则表达式API193
6.5.3 字符串类中与正则表达式相关的方法195
6.5.4 正则表达式使用示例195
6.6 大数字操作197
6.6.1 BigInteger197
6.6.2 BigDecimal198
6.7 上机实训199
本章习题200
第7章 多线程201
7.1 线程概述202
7.1.1 进程202
7.1.2 线程202
7.1.3 多进程和多线程的区别203
7.2 线程的创建和启动203
7.2.1 单线程程序203
7.2.2 创建新线程204
7.2.3 启动线程205
7.2.4 Thread类的常用方法207
7.2.5 为什么需要多线程程序208
7.2.6 线程分类208
7.3 线程的状态及转换208
7.3.1 新线程209
7.3.2 可运行的线程209
7.3.3 被阻塞和处于等待状态下的线程209
7.3.4 被终止的线程210
7.4 多线程的调度和优先级210
7.4.1 线程调度原理210
7.4.2 线程优先级211
7.5 线程的基本控制212
7.5.1 线程睡眠212
7.5.2 线程让步213
7.5.3 线程加入214
7.6 多线程的同步215
7.6.1 线程安全问题215
7.6.2 synchronized关键字217
7.6.3 对象锁219
7.6.4 死锁220
7.7 线程交互221
7.7.1 Object提供的wait和notify方法221
7.7.2 生产者-消费者问题222
7.8 用Timer类调度任务224
7.9 上机实训225
本章习题226
第8章 使用泛型229
8.1 泛型概述230
8.2 泛型类和接口的定义及使用232
8.2.1 定义泛型类和接口232
8.2.2 从泛型类派生子类233
8.2.3 实现泛型接口234
8.3 有界类型参数234
8.4 泛型方法236
8.5 类型参数的通配符237
8.6 擦除237
8.7 泛型的局限239
8.8 上机实训240
第9章 Java集合框架241
9.1 Java集合框架概述242
9.2 Collection接口及Iterator接口242
9.2.1 Collection接口242
9.2.2 Iterator接口243
9.3 Set接口及实现类244
9.3.1 Set接口244
9.3.2 HashSet实现类245
9.3.3 LinkedHashSet实现类248
9.4 List接口及实现类249
9.4.1 List接口249
9.4.2 ArrayList类250
9.4.3 LinkedList实现类251
9.5 Map接口及实现类253
9.5.1 Map接口253
9.5.2 HashMap类254
9.5.3 LinkedHashMap类255
9.6 遗留的集合类256
9.6.1 Vector类256
9.6.2 Stack类257
9.6.3 Hashtable类258
9.6.4 Properties类258
9.7 排序集合259
9.7.1 Comparable接口260
9.7.2 TreeSet类261
9.7.3 Comparator接口262
9.7.4 TreeMap类264
9.8 集合工具类265
9.8.1 算法操作265
9.8.2 同步控制267
9.9 如何选择合适的集合类267
9.10 上机实训268
本章习题268
第10章 I/O流271
10.1 File类272
10.1.1 文件和目录272
10.1.2 Java对文件的抽象272
10.2 I/O原理276
10.3 流类概述277
10.3.1 I/O流分类277
10.3.2 抽象流类277
10.4 文件流280
10.4.1 FileInputStream和FileOutputStream280
10.4.2 FileReader和FileWriter284
10.5 缓冲流285
10.6 转换流286
10.6.1 InputStreamReader286
10.6.2 OutputStreamWriter288
10.7 数据流288
10.8 打印流289
10.9 对象流291
10.9.1 序列化和反序列化操作292
10.9.2 序列化的版本标识294
10.10 随机存取文件流295
10.11 上机实训297
本章习题298
第11章 网络编程301
11.1 网络编程基础知识302
11.1.1 网络基本概念302
11.1.2 网络传输协议304
11.2 Java与网络306
11.2.1 InetAddress类306
11.2.2 URL类308
11.2.3 URLConnection类310
11.2.4 URLEncoder和URLDecoder类314
11.3 Java网络编程316
11.3.1 套接字316
11.3.2 基于TCP协议的网络编程316
11.3.3 基于UDP协议的网络编程324
11.4 上机实训329
本章习题330
第12章 GUI编程331
12.1 Swing概述332
12.1.1 Swing是什么332
12.1.2 Swing架构332
12.2 Swing容器333
12.2.1 顶层容器333
12.2.2 通用容器337
12.2.3 专用容器344
12.3 绘图345
12.3.1 2D图形346
12.3.2 颜色348
12.3.3 文本和字体348
12.3.4 图像349
12.4 Swing组件350
12.4.1 Swing组件的层次结构351
12.4.2 按钮352
12.4.3 文本组件354
12.4.4 不可编辑信息显示组件357
12.4.5 菜单相关360
12.4.6 其他组件363
12.5 布局管理器364
12.5.1 FlowLayout365
12.5.2 BorderLayout367
12.5.3 GridLayout368
12.6 处理GUI事件369
12.6.1 Java SE事件模型370
12.6.2 GUI事件分类373
12.6.3 事件适配器374
12.7 切换Swing观感376
12.8 上机实训378
本章习题379
第13章 标注和反射381
13.1 标注382
13.1.1 标注概述382
13.1.2 使用JDK内置的标注382
13.1.3 自定义标注386
13.1.4 标注的标注387
13.2 反射390
13.2.1 Java反射API391
13.2.2 Class类391
13.2.3 获取类信息393
13.2.4 生成对象396
13.2.5 调用方法398
13.2.6 访问成员变量的值400
13.2.7 操作数组401
13.2.8 获取泛型信息403
13.2.9 使用反射获取标注信息404
13.2.10 反射与代理406
13.3 上机实训410
本章习题410
参考答案413