书籍详情
Java编程动手学
作者:汪建 汪立
出版社:人民邮电出版社
出版时间:2023-09-01
ISBN:9787115617392
定价:¥89.90
购买这本书可以去
内容简介
这是一本讲解Java基本语法的书,全书始终从初学者的角度,用通俗易懂的语言和形象生动的例子来讲解Java基础知识,让读者能轻松快速掌握。本书共分为12章,首先介绍Java语言的基本情况;然后介绍如何在Windows、Linux和macOS三种操作系统中安装Java和集成开发环境以及JShell交互式编程;接着讲解Java的一些常见概念和数据类型以及Java的八大类运算符、各种表达式和语句;之后介绍类和对象这两个核心概念,数组与集合的概念和使用,Java常用工具类,以及Java的异常处理、注解以及泛型机制;最后讲解Java的文件与I/O的相关操作以及Java多线程和网络编程。本书适合 Java 入门人员、初级开发人员以及想巩固 Java 基础的人阅读,也可作为自学 Java 或者正在参加 Java 培训的人员的参考书。
作者简介
汪建(笔名seaboat),拥有10年以上的软件开发经验,擅长Java、Python和C等编程语言,从事各类业务系统、中间件、基础架构、人工智能系统等研发工作。目前负责一个人工智能团队,致力于开发各种人工智能能力并赋能到业务系统中。精研工程算法、人工智能算法、自然语言处理、计算机视觉、架构、分布式、高并发、大数据、搜索引擎等方面的技术。平时喜欢看书、运动、写作、编程、绘画。崇尚技术自由,思想开放。著有《图解 Java 并发编程》《图解数据结构与算法》《Tomcat内核设计剖析》。 个人博客:blog.csdn.net/wangyangzhizhou 个人公众号:远洋号 汪立,拥有多年的大型系统开发经验,对Java语言及生态有浓厚的兴趣,对Spring、Spring Boot、Spring MVC、Spring Cloud、MyBatis、Dubbo、ZooKeeper等有较深入的研究,熟悉常用消息中间件(RocketMQ、Kafka、Elasticsearch、Redis)的使用及原理。此外,对JVM和分布式技术也有一定的研究,并持续关注Java开源技术的发展。
目录
第 1章 走进Java世界 1
1.1 Java介绍 1
1.2 Java发展史 2
1.3 如何选择Java版本 4
1.4 Java语言的特性 5
1.5 JVM、JRE与JDK 6
1.6 Java执行机制 8
1.7 Java的应用领域 11
第 2章 开发环境 14
2.1 安装Java环境 14
2.1.1 Windows系统下安装JDK 14
2.1.2 Linux系统下安装JDK 18
2.1.3 macOS系统下安装JDK 20
2.2 第 一个Java程序 21
2.2.1 Java编程的一般步骤 21
2.2.2 编写运行HelloJava 22
2.2.3 初步了解代码 22
2.3 安装IDEA 24
2.4 JShell交互式编程 28
2.4.1 为什么要使用JShell 28
2.4.2 JShell执行代码片段 29
2.4.3 JShell常用命令 31
第3章 基础知识 33
3.1 注释 33
3.1.1 单行注释 33
3.1.2 多行注释 34
3.1.3 文档注释 34
3.2 标识符和关键字 35
3.3 变量 38
3.3.1 变量的声明与赋值 39
3.3.2 三类变量 39
3.4 常量 41
3.5 Java的数据类型 43
3.6 整数类型 45
3.6.1 整数类型的选择 46
3.6.2 默认整型 46
3.6.3 为什么要加L 47
3.6.4 不同进制写法 48
3.7 浮点类型 48
3.8 字符类型 50
3.8.1 定义字符型 50
3.8.2 与整型互相转换 51
3.8.3 Unicode方式赋值 52
3.9 布尔类型 53
3.10 类型转换 54
3.10.1 隐式类型转换 54
3.10.2 显式类型转换 56
第4章 运算符 59
4.1 算术运算符 59
4.1.1 加法运算符 59
4.1.2 减法运算符 60
4.1.3 乘法运算符 61
4.1.4 除法运算符 61
4.1.5 取余运算符 62
4.2 关系运算符 63
4.3 自增和自减运算符 65
4.4 逻辑运算符 67
4.4.1 与运算符 67
4.4.2 或运算符 68
4.4.3 非运算符 69
4.5 位逻辑运算符 70
4.6 移位运算符 72
4.6.1 右移位运算 72
4.6.2 左移位运算 73
4.6.3 无符号右移位运算 74
4.7 赋值运算符 75
4.8 其他运算符 78
4.8.1 条件运算符 78
4.8.2 括号运算符 78
4.8.3 正/负运算符 79
4.8.4 instanceof运算符 79
4.9 运算符优先级 80
第5章 表达式与语句 83
5.1 表达式、语句、语句块 83
5.1.1 表达式 83
5.1.2 语句 84
5.1.3 语句块 85
5.2 程序执行顺序 86
5.2.1 默认执行顺序 86
5.2.2 分支执行顺序 86
5.2.3 循环执行顺序 87
5.3 if条件分支语句 89
5.3.1 if结构 89
5.3.2 if-else结构 90
5.3.3 if-else-if结构 91
5.3.4 嵌套if结构 92
5.4 switch条件分支语句 94
5.4.1 switch的使用 94
5.4.2 break的语义 96
5.5 for循环语句 97
5.5.1 for语句语法 97
5.5.2 for语句流程 98
5.5.3 嵌套for语句 100
5.5.4 break与continue 100
5.6 while循环语句 101
5.6.1 while语句语法 101
5.6.2 break与continue 102
5.7 do-while循环语句 103
5.7.1 do-while语句语法 104
5.7.2 break与continue 104
5.7.3 while与do-while有什么不同 105
5.8 return语句 105
第6章 类与对象(上) 108
6.1 面向对象编程 108
6.2 面向对象的基本概念 109
6.3 Java类与对象 111
6.3.1 定义Java类 111
6.3.2 创建对象 113
6.3.3 对象的初始化 114
6.3.4 类的主方法 115
6.4 类的成员方法 117
6.4.1 方法的构成 117
6.4.2 方法的定义 118
6.4.3 方法的调用 119
6.5 类的构造方法 120
6.6 类中的this关键字 123
6.6.1 访问当前对象的属性 123
6.6.2 调用当前对象的方法 124
6.6.3 调用构造方法 125
6.7 Java中的包 126
6.7.1 为什么需要包 126
6.7.2 如何声明包 127
6.7.3 包的导入 127
6.7.4 内置包与自定义包 129
6.8 Java中的4种访问修饰符 130
6.9 Java类的封装性 133
6.10 Java中的static关键字 136
6.10.1 实例方法与静态方法 136
6.10.2 实例变量与静态变量 137
6.10.3 静态块 138
6.11 Java中的null关键字 138
6.11.1 为什么需要null 138
6.11.2 判断是否为null 139
6.11.3 NullPointerException异常 140
6.12 无名称对象 141
6.13 对象的克隆 142
6.14 对象的序列化与反序列化 144
第7章 类与对象(下) 147
7.1 Java类的继承 147
7.1.1 如何实现继承 148
7.1.2 父子类的转换 150
7.2 类的super关键字 151
7.2.1 调用父类的构造方法 151
7.2.2 访问父类实例的变量 152
7.2.3 调用父类的方法 152
7.2.4 自动添加super() 153
7.3 final关键字 154
7.3.1 final声明变量 154
7.3.2 final声明方法 155
7.3.3 final声明类 155
7.4 Java中重写方法 156
7.5 Java中重载方法 159
7.6 Java的多态 160
7.7 instanceof关键字 162
7.8 Java的抽象类 164
7.9 Java的接口 165
7.9.1 定义一个完整的接口 166
7.9.2 接口的继承 167
7.9.3 实现多个接口 167
7.9.4 编译器的隐性作用 168
7.9.5 default关键字 168
7.10 枚举类型enum 170
7.11 Java内部类 171
7.11.1 成员内部类 172
7.11.2 静态内部类 172
7.11.3 匿名内部类 173
第8章 数组与集合 176
8.1 Java的数组结构 176
8.2 一维数组 176
8.2.1 声明与创建 177
8.2.2 初始化与访问 177
8.2.3 数组的长度 178
8.2.4 遍历数组 179
8.3 二维数组 180
8.3.1 声明与创建 180
8.3.2 初始化与访问 181
8.3.3 遍历数组 182
8.4 三维及更高维数组 183
8.5 数组类(Arrays) 183
8.5.1 打印数组内容 184
8.5.2 数组排序 184
8.5.3 判断两个数组是否相等 185
8.5.4 填充数组 185
8.6 复制数组 186
8.6.1 System.arraycopy()方法 186
8.6.2 Arrays.copyOf()方法 187
8.6.3 Arrays.copyOfRange()方法 187
8.7 Java的集合 188
8.8 列表类 189
8.8.1 添加元素 189
8.8.2 访问元素 190
8.8.3 修改元素 190
8.8.4 删除元素 191
8.8.5 获取列表元素个数 191
8.8.6 遍历数组列表 191
8.8.7 ArrayList与LinkedList 192
8.9 集合类 192
8.9.1 哈希集合 193
8.9.2 树集合 194
8.10 映射类 195
8.11 队列类 197
8.12 堆栈类 198
8.13 集合工具类 200
8.13.1 排序操作 200
8.13.2 最大和最小元素 201
8.13.3 对集合进行填充 202
8.13.4 计算某元素出现次数 203
8.13.5 替换所有元素 203
8.13.6 复制List对象 203
第9章 Java常用工具类 205
9.1 字符串类(String) 205
9.1.1 charAt()方法 207
9.1.2 length()方法 207
9.1.3 equals()方法 208
9.1.4 startsWith()方法 208
9.1.5 endsWith()方法 209
9.1.6 indexOf()方法 209
9.1.7 substring()方法 209
9.1.8 replace()方法 210
9.1.9 split()方法 210
9.1.10 toLowerCase()方法 210
9.1.11 toUpperCase()方法 211
9.1.12 通过 连接 211
9.2 运行环境类(Runtime) 211
9.3 系统类(System) 213
9.3.1 获取系统当前时间 213
9.3.2 获取系统属性 214
9.3.3 获取操作系统的环境变量 215
9.3.4 退出Java虚拟机 216
9.3.5 获取标准输出输入对象 216
9.4 基本数据类型包装类 217
9.5 数学类(Math) 220
9.5.1 自然常数与圆周率 220
9.5.2 三角函数运算 220
9.5.3 指数对数运算 222
9.5.4 取整运算 222
9.5.5 取绝对值 223
9.5.6 求最大值与最小值 224
9.6 随机数类(Random) 225
9.7 扫描类(Scanner) 226
9.8 日期类(Date) 226
9.9 正则表达式 230
9.9.1 匹配单个字符 232
9.9.2 预定义元字符 232
9.9.3 次数限定符 233
9.9.4 方括号表达式 234
9.9.5 开头符与结尾符 235
9.9.6 或逻辑符 235
9.9.7 Pattern类 235
9.9.8 Matcher类 236
第 10章 异常、注解与泛型 239
10.1 Java的异常处理机制 239
10.1.1 try-catch组合详解 241
10.1.2 try-multi-catch组合详解 244
10.1.3 try-catch-finally组合详解 246
10.1.4 throw关键字 249
10.1.5 throws关键字 250
10.2 Java的注解 252
10.2.1 @Override 252
10.2.2 @Deprecated 253
10.2.3 @SuppressWarnings 253
10.3 Java的泛型 254
10.3.1 泛型方法 255
10.3.2 泛型类型 256
10.3.3 泛型接口 257
第 11章 文件与I/O 259
11.1 Java文件类 259
11.1.1 创建和删除文件或目录 259
11.1.2 文件目录的路径 261
11.1.3 File类的常用方法 261
11.1.4 文件重命名 262
11.1.5 判断文件是否存在 263
11.1.6 获取文件属性 263
11.1.7 遍历文件和目录 264
11.2 Java的输入与输出 265
11.2.1 输入输出类 266
11.2.2 文件输入流 268
11.2.3 文件输出流 270
11.2.4 对象输出流 272
11.2.5 对象输入流 274
11.2.6 文件读取器 275
11.2.7 文件写入器 278
第 12章 多线程与网络编程 280
12.1 进程与线程 280
12.2 多线程机制 281
12.3 线程的生命周期 282
12.4 创建Java线程 283
12.5 线程的优先级 284
12.6 守护线程 286
12.7 线程的休眠 287
12.8 线程同步synchronized 289
12.9 计算机网络 291
12.10 套接字 292
12.11 网络地址 293
12.12 TCP通信编程 294
12.13 UDP通信编程 297
12.14 广播通信 298
1.1 Java介绍 1
1.2 Java发展史 2
1.3 如何选择Java版本 4
1.4 Java语言的特性 5
1.5 JVM、JRE与JDK 6
1.6 Java执行机制 8
1.7 Java的应用领域 11
第 2章 开发环境 14
2.1 安装Java环境 14
2.1.1 Windows系统下安装JDK 14
2.1.2 Linux系统下安装JDK 18
2.1.3 macOS系统下安装JDK 20
2.2 第 一个Java程序 21
2.2.1 Java编程的一般步骤 21
2.2.2 编写运行HelloJava 22
2.2.3 初步了解代码 22
2.3 安装IDEA 24
2.4 JShell交互式编程 28
2.4.1 为什么要使用JShell 28
2.4.2 JShell执行代码片段 29
2.4.3 JShell常用命令 31
第3章 基础知识 33
3.1 注释 33
3.1.1 单行注释 33
3.1.2 多行注释 34
3.1.3 文档注释 34
3.2 标识符和关键字 35
3.3 变量 38
3.3.1 变量的声明与赋值 39
3.3.2 三类变量 39
3.4 常量 41
3.5 Java的数据类型 43
3.6 整数类型 45
3.6.1 整数类型的选择 46
3.6.2 默认整型 46
3.6.3 为什么要加L 47
3.6.4 不同进制写法 48
3.7 浮点类型 48
3.8 字符类型 50
3.8.1 定义字符型 50
3.8.2 与整型互相转换 51
3.8.3 Unicode方式赋值 52
3.9 布尔类型 53
3.10 类型转换 54
3.10.1 隐式类型转换 54
3.10.2 显式类型转换 56
第4章 运算符 59
4.1 算术运算符 59
4.1.1 加法运算符 59
4.1.2 减法运算符 60
4.1.3 乘法运算符 61
4.1.4 除法运算符 61
4.1.5 取余运算符 62
4.2 关系运算符 63
4.3 自增和自减运算符 65
4.4 逻辑运算符 67
4.4.1 与运算符 67
4.4.2 或运算符 68
4.4.3 非运算符 69
4.5 位逻辑运算符 70
4.6 移位运算符 72
4.6.1 右移位运算 72
4.6.2 左移位运算 73
4.6.3 无符号右移位运算 74
4.7 赋值运算符 75
4.8 其他运算符 78
4.8.1 条件运算符 78
4.8.2 括号运算符 78
4.8.3 正/负运算符 79
4.8.4 instanceof运算符 79
4.9 运算符优先级 80
第5章 表达式与语句 83
5.1 表达式、语句、语句块 83
5.1.1 表达式 83
5.1.2 语句 84
5.1.3 语句块 85
5.2 程序执行顺序 86
5.2.1 默认执行顺序 86
5.2.2 分支执行顺序 86
5.2.3 循环执行顺序 87
5.3 if条件分支语句 89
5.3.1 if结构 89
5.3.2 if-else结构 90
5.3.3 if-else-if结构 91
5.3.4 嵌套if结构 92
5.4 switch条件分支语句 94
5.4.1 switch的使用 94
5.4.2 break的语义 96
5.5 for循环语句 97
5.5.1 for语句语法 97
5.5.2 for语句流程 98
5.5.3 嵌套for语句 100
5.5.4 break与continue 100
5.6 while循环语句 101
5.6.1 while语句语法 101
5.6.2 break与continue 102
5.7 do-while循环语句 103
5.7.1 do-while语句语法 104
5.7.2 break与continue 104
5.7.3 while与do-while有什么不同 105
5.8 return语句 105
第6章 类与对象(上) 108
6.1 面向对象编程 108
6.2 面向对象的基本概念 109
6.3 Java类与对象 111
6.3.1 定义Java类 111
6.3.2 创建对象 113
6.3.3 对象的初始化 114
6.3.4 类的主方法 115
6.4 类的成员方法 117
6.4.1 方法的构成 117
6.4.2 方法的定义 118
6.4.3 方法的调用 119
6.5 类的构造方法 120
6.6 类中的this关键字 123
6.6.1 访问当前对象的属性 123
6.6.2 调用当前对象的方法 124
6.6.3 调用构造方法 125
6.7 Java中的包 126
6.7.1 为什么需要包 126
6.7.2 如何声明包 127
6.7.3 包的导入 127
6.7.4 内置包与自定义包 129
6.8 Java中的4种访问修饰符 130
6.9 Java类的封装性 133
6.10 Java中的static关键字 136
6.10.1 实例方法与静态方法 136
6.10.2 实例变量与静态变量 137
6.10.3 静态块 138
6.11 Java中的null关键字 138
6.11.1 为什么需要null 138
6.11.2 判断是否为null 139
6.11.3 NullPointerException异常 140
6.12 无名称对象 141
6.13 对象的克隆 142
6.14 对象的序列化与反序列化 144
第7章 类与对象(下) 147
7.1 Java类的继承 147
7.1.1 如何实现继承 148
7.1.2 父子类的转换 150
7.2 类的super关键字 151
7.2.1 调用父类的构造方法 151
7.2.2 访问父类实例的变量 152
7.2.3 调用父类的方法 152
7.2.4 自动添加super() 153
7.3 final关键字 154
7.3.1 final声明变量 154
7.3.2 final声明方法 155
7.3.3 final声明类 155
7.4 Java中重写方法 156
7.5 Java中重载方法 159
7.6 Java的多态 160
7.7 instanceof关键字 162
7.8 Java的抽象类 164
7.9 Java的接口 165
7.9.1 定义一个完整的接口 166
7.9.2 接口的继承 167
7.9.3 实现多个接口 167
7.9.4 编译器的隐性作用 168
7.9.5 default关键字 168
7.10 枚举类型enum 170
7.11 Java内部类 171
7.11.1 成员内部类 172
7.11.2 静态内部类 172
7.11.3 匿名内部类 173
第8章 数组与集合 176
8.1 Java的数组结构 176
8.2 一维数组 176
8.2.1 声明与创建 177
8.2.2 初始化与访问 177
8.2.3 数组的长度 178
8.2.4 遍历数组 179
8.3 二维数组 180
8.3.1 声明与创建 180
8.3.2 初始化与访问 181
8.3.3 遍历数组 182
8.4 三维及更高维数组 183
8.5 数组类(Arrays) 183
8.5.1 打印数组内容 184
8.5.2 数组排序 184
8.5.3 判断两个数组是否相等 185
8.5.4 填充数组 185
8.6 复制数组 186
8.6.1 System.arraycopy()方法 186
8.6.2 Arrays.copyOf()方法 187
8.6.3 Arrays.copyOfRange()方法 187
8.7 Java的集合 188
8.8 列表类 189
8.8.1 添加元素 189
8.8.2 访问元素 190
8.8.3 修改元素 190
8.8.4 删除元素 191
8.8.5 获取列表元素个数 191
8.8.6 遍历数组列表 191
8.8.7 ArrayList与LinkedList 192
8.9 集合类 192
8.9.1 哈希集合 193
8.9.2 树集合 194
8.10 映射类 195
8.11 队列类 197
8.12 堆栈类 198
8.13 集合工具类 200
8.13.1 排序操作 200
8.13.2 最大和最小元素 201
8.13.3 对集合进行填充 202
8.13.4 计算某元素出现次数 203
8.13.5 替换所有元素 203
8.13.6 复制List对象 203
第9章 Java常用工具类 205
9.1 字符串类(String) 205
9.1.1 charAt()方法 207
9.1.2 length()方法 207
9.1.3 equals()方法 208
9.1.4 startsWith()方法 208
9.1.5 endsWith()方法 209
9.1.6 indexOf()方法 209
9.1.7 substring()方法 209
9.1.8 replace()方法 210
9.1.9 split()方法 210
9.1.10 toLowerCase()方法 210
9.1.11 toUpperCase()方法 211
9.1.12 通过 连接 211
9.2 运行环境类(Runtime) 211
9.3 系统类(System) 213
9.3.1 获取系统当前时间 213
9.3.2 获取系统属性 214
9.3.3 获取操作系统的环境变量 215
9.3.4 退出Java虚拟机 216
9.3.5 获取标准输出输入对象 216
9.4 基本数据类型包装类 217
9.5 数学类(Math) 220
9.5.1 自然常数与圆周率 220
9.5.2 三角函数运算 220
9.5.3 指数对数运算 222
9.5.4 取整运算 222
9.5.5 取绝对值 223
9.5.6 求最大值与最小值 224
9.6 随机数类(Random) 225
9.7 扫描类(Scanner) 226
9.8 日期类(Date) 226
9.9 正则表达式 230
9.9.1 匹配单个字符 232
9.9.2 预定义元字符 232
9.9.3 次数限定符 233
9.9.4 方括号表达式 234
9.9.5 开头符与结尾符 235
9.9.6 或逻辑符 235
9.9.7 Pattern类 235
9.9.8 Matcher类 236
第 10章 异常、注解与泛型 239
10.1 Java的异常处理机制 239
10.1.1 try-catch组合详解 241
10.1.2 try-multi-catch组合详解 244
10.1.3 try-catch-finally组合详解 246
10.1.4 throw关键字 249
10.1.5 throws关键字 250
10.2 Java的注解 252
10.2.1 @Override 252
10.2.2 @Deprecated 253
10.2.3 @SuppressWarnings 253
10.3 Java的泛型 254
10.3.1 泛型方法 255
10.3.2 泛型类型 256
10.3.3 泛型接口 257
第 11章 文件与I/O 259
11.1 Java文件类 259
11.1.1 创建和删除文件或目录 259
11.1.2 文件目录的路径 261
11.1.3 File类的常用方法 261
11.1.4 文件重命名 262
11.1.5 判断文件是否存在 263
11.1.6 获取文件属性 263
11.1.7 遍历文件和目录 264
11.2 Java的输入与输出 265
11.2.1 输入输出类 266
11.2.2 文件输入流 268
11.2.3 文件输出流 270
11.2.4 对象输出流 272
11.2.5 对象输入流 274
11.2.6 文件读取器 275
11.2.7 文件写入器 278
第 12章 多线程与网络编程 280
12.1 进程与线程 280
12.2 多线程机制 281
12.3 线程的生命周期 282
12.4 创建Java线程 283
12.5 线程的优先级 284
12.6 守护线程 286
12.7 线程的休眠 287
12.8 线程同步synchronized 289
12.9 计算机网络 291
12.10 套接字 292
12.11 网络地址 293
12.12 TCP通信编程 294
12.13 UDP通信编程 297
12.14 广播通信 298
猜您喜欢