Java从入门到精通(第7版)

Java从入门到精通(第7版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2023-06
版次: 7
ISBN: 9787302632627
定价: 89.80
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 512页
字数: 898.000千字
4人买过
  • 《Java从入门到精通(第7版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细讲解了使用Java语言进行程序开发需要掌握的知识。全书分为4篇共24章,内容包括初识Java,开发工具(IDEA、Eclipse),Java语言基础,流程控制,数组,类和对象,继承、多态、抽象类与接口,包和内部类,异常处理,字符串,常用类库,集合类,枚举类型与泛型,lambda表达式与流处理,I/O(输入/输出),反射与注解,数据库操作,Swing程序设计,Java绘图,多线程,并发,网络通信,飞机大战游戏,MR人脸识别打卡系统。书中所有知识都结合具体实例进行讲解,涉及的程序代码都给出了详细的注释,这可以帮助读者轻松领会Java程序开发的精髓,并快速提高开发技能。 明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获“全行业优秀畅销品种”“全国高校出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。 第1篇 基础知识

    第1章 初识Java 2

    1.1 Java简介 2

    1.1.1 什么是Java语言 2

    1.1.2 Java的应用领域 3

    1.1.3 Java的版本 3

    1.1.4 怎样学好Java 5

    1.1.5 Java API文档 6

    1.2 Java语言的特性 6

    1.3 搭建Java环境 8

    1.3.1 下载JDK 8

    1.3.2 在Windows 10系统下搭建JDK环境 9

    第2章 开发工具 12

    2.1 熟悉IDEA 12

    2.1.1 下载IDEA 12

    2.1.2 安装IDEA 14

    2.1.3 配置IDEA 16

    2.1.4 使用IDEA 17

    2.2 熟悉Eclipse 22

    2.2.1 下载Eclipse 22

    2.2.2 Eclipse的配置与启动 24

    2.2.3 Eclipse工作台 25

    2.2.4 透视图与视图 26

    2.2.5 菜单栏 26

    2.2.6 工具栏 26

    2.2.7 “包资源管理器”视图 29

    2.2.8 “控制台”视图 29

    2.3 使用Eclipse 29

    2.3.1 创建Java项目 29

    2.3.2 创建Java类文件 33

    2.3.3 编写Java程序 34

    2.3.4 运行Java程序 36

    2.4 程序调试 38

    第3章 Java语言基础 42

    3.1 Java主类结构 42

    3.2 基本数据类型 44

    3.2.1 整数类型 44

    3.2.2 浮点类型 45

    3.2.3 字符类型 46

    3.2.4 布尔类型 48

    3.3 变量与常量 48

    3.3.1 标识符和关键字 48

    3.3.2 声明变量 50

    3.3.3 声明常量 51

    3.3.4 变量的有效范围 52

    3.4 运算符 53

    3.4.1 赋值运算符 53

    3.4.2 算术运算符 54

    3.4.3 自增和自减运算符 55

    3.4.4 比较运算符 55

    3.4.5 逻辑运算符 56

    3.4.6 位运算符 57

    3.4.7 复合赋值运算符 58

    3.4.8 三元运算符 59

    3.4.9 运算符的优先级 60

    3.5 数据类型转换 61

    3.5.1 隐式类型转换 61

    3.5.2 显式类型转换 62

    3.6 代码注释与编码规范 63

    3.6.1 代码注释 63

    3.6.2 编码规范 64

    3.7 实践与练习 65

    第4章 流程控制 66

    4.1 复合语句 67

    4.2 if条件语句 67

    4.2.1 简单的if条件语句 68

    4.2.2 if…else语句 69

    4.2.3 if…else if多分支语句 69

    4.2.4 if语句的嵌套 71

    4.3 switch多分支语句 72

    4.3.1 switch语句通用语法 72

    4.3.2 switch表达式 74

    4.4 while循环语句 74

    4.5 do…while循环语句 75

    4.6 for循环语句 76

    4.6.1 传统的for语句 76

    4.6.2 foreach语句 77

    4.7 循环嵌套 78

    4.8 循环控制 79

    4.8.1 break语句 79

    4.8.2 continue语句 81

    4.9 实践与练习 82

    第5章 数组 84

    5.1 数组概述 84

    5.2 一维数组 84

    5.2.1 创建一维数组 84

    5.2.2 初始化一维数组 86

    5.2.3 使用一维数组 86

    5.3 二维数组 87

    5.3.1 创建二维数组 87

    5.3.2 初始化二维数组 88

    5.3.3 使用二维数组 88

    5.4 数组的基本操作 89

    5.4.1 遍历数组 89

    5.4.2 填充替换数组元素 90

    5.4.3 对数组进行排序 91

    5.4.4 复制数组 92

    5.4.5 查询数组 93

    5.5 数组排序算法 95

    5.5.1 冒泡排序 95

    5.5.2 直接选择排序 97

    5.5.3 反转排序 98

    5.6 实践与练习 99

    第2篇 面向对象编程

    第6章 类和对象 102

    6.1 面向对象概述 102

    6.1.1 对象 102

    6.1.2 类 104

    6.1.3 封装 104

    6.1.4 继承 104

    6.1.5 多态 105

    6.2 类 106

    6.2.1 成员变量 106

    6.2.2 成员方法 107

    6.2.3 权限修饰符 107

    6.2.4 局部变量 108

    6.2.5 局部变量的有效范围 109

    6.2.6 this关键字 109

    6.3 类的构造方法 110

    6.4 静态变量和静态方法 112

    6.5 类的主方法 114

    6.6 对象 115

    6.6.1 对象的创建 115

    6.6.2 访问对象的属性和行为 116

    6.6.3 对象的引用 117

    6.6.4 对象的销毁 118

    6.7 实践与练习 119

    第7章 继承、多态、抽象类与接口 120

    7.1 类的继承 120

    7.2 Object类 122

    7.3 对象类型的转换 125

    7.3.1 向上转型 125

    7.3.2 向下转型 126

    7.4 instanceof关键字及其新特性 127

    7.5 方法的重载 129

    7.6 final关键字 132

    7.6.1 final变量 132

    7.6.2 final方法 133

    7.6.3 final类 133

    7.7 record类 134

    7.8 多态 135

    7.9 抽象类 136

    7.10 接口 137

    7.10.1 定义接口 137

    7.10.2 实现接口 138

    7.10.3 接口继承接口 140

    7.10.4 接口的多重继承 141

    7.10.5 接口的默认方法 142

    7.10.6 抽象类与接口的区别 142

    7.11 实践与练习 143

    第8章 包和内部类 145

    8.1 Java类包 145

    8.1.1 类名冲突 145

    8.1.2 完整的类路径 146

    8.1.3 创建包 146

    8.1.4 导入包 147

    8.2 内部类 148

    8.2.1 成员内部类 149

    8.2.2 匿名内部类 151

    8.3 实践与练习 152

    第3篇 核心技术

    第9章 异常处理 154

    9.1 异常概述 154

    9.2 异常的抛出与捕捉 155

    9.2.1 抛出异常 155

    9.2.2 使用try…catch…finally语句捕捉异常 156

    9.3 Java常见的异常类 158

    9.4 自定义异常 158

    9.5 在方法中抛出异常 159

    9.5.1 使用throws关键字抛出异常 160

    9.5.2 使用throw关键字抛出异常 160

    9.6 运行时异常 162

    9.7 try…with…resources语句 162

    9.8 异常的使用原则 164

    9.9 实践与练习 164

    第10章 字符串 166

    10.1 String类 166

    10.1.1 声明字符串 166

    10.1.2 创建字符串 167

    10.2 连接字符串 168

    10.2.1 连接多个字符串 168

    10.2.2 连接其他数据类型 168

    10.3 获取字符串信息 170

    10.3.1 获取字符串长度 170

    10.3.2 查找字符串 170

    10.3.3 获取指定索引位置的字符 171

    10.4 字符串操作 172

    10.4.1 获取子字符串 172

    10.4.2 去除空格 173

    10.4.3 替换字符串 173

    10.4.4 判断字符串的开始与结尾 174

    10.4.5 判断字符串是否相等 175

    10.4.6 按字典顺序比较两个字符串 176

    10.4.7 字母大小写的转换 177

    10.4.8 分割字符串 178

    10.5 格式化字符串 179

    10.5.1 日期和时间字符串格式化 179

    10.5.2 常规类型格式化 182

    10.6 使用正则表达式 183

    10.7 字符串生成器 185

    10.8 实践与练习 187

    第11章 常用类库 188

    11.1 包装类 188

    11.1.1 Integer类 189

    11.1.2 Double类 190

    11.1.3 Boolean类 191

    11.1.4 Character类 192

    11.1.5 Number类 194

    11.2 数字处理 194

    11.2.1 数字格式化 194

    11.2.2 Math类 197

    11.2.3 Random类 200

    11.2.4 BigInteger类 202

    11.2.5 BigDecimal类 203

    11.3 System类 205

    11.3.1 在控制台中输出字符 205

    11.3.2 计时 206

    11.4 Scanner类 207

    11.5 日期时间类 208

    11.5.1 Date类 209

    11.5.2 日期时间格式化类 210

    11.5.3 Calendar类 213

    11.6 实践与练习 215

    第12章 集合类 216

    12.1 集合类概述 216

    12.2 Collection接口 217

    12.3 List接口 218

    12.3.1 List接口概述 218

    12.3.2 ArrayList类 218

    12.3.3 LinkedList类 219

    12.4 遍历集合中的元素 220

    12.4.1 Iterator遍历集合中的元素 220

    12.4.2 使用foreach循环遍历集合中的元素 221

    12.4.3 使用forEach()方法遍历集合中的元素 222

    12.5 使用Predicate操作集合 222

    12.6 Set接口 224

    12.6.1 Set接口概述 224

    12.6.2 HashSet类 224

    12.6.3 TreeSet类 225

    12.7 Map接口 226

    12.7.1 Map接口概述 227

    12.7.2 HashMap类 227

    12.7.3 遍历Map集合 228

    12.7.4 TreeMap类 229

    12.7.5 Properties类 230

    12.8 Collections类 232

    12.9 实践与练习 233

    第13章 枚举类型与泛型 234

    13.1 枚举类型 234

    13.1.1 使用枚举类型设置常量 234

    13.1.2 深入了解枚举类型 236

    13.1.3 使用枚举类型的优势 239

    13.2 泛型 239

    13.2.1 回顾向上转型与向下转型 239

    13.2.2 定义泛型类 240

    13.2.3 泛型的常规用法 241

    13.2.4 泛型的高级用法 243

    13.2.5 泛型总结 245

    13.3 实践与练习 246

    第14章 lambda表达式与流处理 247

    14.1 lambda表达式 247

    14.1.1 lambda表达式简介 247

    14.1.2 lambda表达式实现函数式接口 248

    14.1.3 lambda表达式调用外部变量 250

    14.1.4 lambda表达式与异常处理 252

    14.2 方法的引用 253

    14.2.1 引用静态方法 253

    14.2.2 引用成员方法 254

    14.2.3 引用带泛型的方法 255

    14.2.4 引用构造方法 256

    14.2.5 Function接口 258

    14.3 流处理 259

    14.3.1 Stream接口 260

    14.3.2 Optional类 262

    14.3.3 Collectors类 263

    14.3.4 数据过滤 264

    14.3.5 数据映射 267

    14.3.6 数据查找 268

    14.3.7 数据收集 271

    14.4 实践与练习 275

    第15章 I/O(输入/输出) 276

    15.1 输入/输出流 276

    15.1.1 InputStream字节/Reader字符输入流 277

    15.1.2 OutputStream字节/Writer字符输出流 278

    15.2 File类 279

    15.2.1 文件的创建与删除 279

    15.2.2 获取文件信息 280

    15.3 文件输入/输出流 281

    15.3.1 FileInputStream类和FileOutputStream类 281

    15.3.2 FileReader类和FileWriter类 282

    15.4 带缓存的输入/输出流 283

    15.4.1 BufferedInputStream类和BufferedOutputStream类 283

    15.4.2 BufferedReader类和BufferedWriter类 284

    15.5 数据输入/输出流 285

    15.6 对象序列化输入/输出流 287

    15.6.1 序列化对象 288

    15.6.2 反序列化对象 289

    15.7 实践与练习 289

    第16章 反射与注解 290

    16.1 反射 290

    16.1.1 访问构造方法 291

    16.1.2 访问成员变量 294

    16.1.3 访问成员方法 297

    16.2 Annotation注解功能 300

    16.2.1 定义Annotation类型 300

    16.2.2 访问Annotation信息 302

    16.3 实践与练习 305

    第17章 数据库操作 306

    17.1 数据库基础 306

    17.1.1 什么是数据库 307

    17.1.2 数据库的种类和功能 307

    17.1.3 SQL语言 308

    17.2 JDBC概述 309

    17.2.1 JDBC技术 309

    17.2.2 JDBC驱动程序的类型 310

    17.3 JDBC中常用的类和接口 310

    17.3.1 DriverManager类 310

    17.3.2 Connection接口 311

    17.3.3 Statement接口 312

    17.3.4 PreparedStatement接口 312

    17.3.5 ResultSet接口 313

    17.4 数据库操作 314

    17.4.1 连接数据库 314

    17.4.2 向数据库中发送SQL语句 315

    17.4.3 处理查询结果集 315

    17.4.4 顺序查询 315

    17.4.5 模糊查询 316

    17.4.6 预处理语句 317

    17.4.7 添加、修改、删除记录 318

    17.5 实践与练习 321

    第18章 Swing程序设计 322

    18.1 Swing概述 323

    18.2 常用窗体 324

    18.2.1 JFrame窗体 324

    18.2.2 JDialog对话框 326

    18.2.3 JOptionPane小型对话框 327

    18.3 常用布局管理器 331

    18.3.1 null绝对布局管理器 331

    18.3.2 FlowLayout流布局管理器 332

    18.3.3 BorderLayout边界布局管理器 333

    18.3.4 GridLayout网格布局管理器 334

    18.4 常用面板 335

    18.4.1 JPanel面板 335

    18.4.2 JScrollPane滚动面板 337

    18.5 文字标签组件与图标 338

    18.5.1 JLabel标签 338

    18.5.2 图标的使用 339

    18.6 按钮组件 340

    18.6.1 JButton按钮 340

    18.6.2 JRadioButton单选按钮 341

    18.6.3 JCheckBox复选框 343

    18.7 列表组件 344

    18.7.1 JComboBox下拉列表框 344

    18.7.2 JList列表框 346

    18.8 文本组件 347

    18.8.1 JTextField文本框 347

    18.8.2 JPasswordField密码框 348

    18.8.3 JTextArea文本域 349

    18.9 表格组件 350

    18.9.1 创建表格 350

    18.9.2 DefaultTableModel表格数据模型 351

    18.9.3 维护表格模型 352

    18.10 事件监听器 354

    18.10.1 ActionEvent动作事件 354

    18.10.2 KeyEvent键盘事件 356

    18.10.3 MouseEvent鼠标事件 357

    18.11 实践与练习 359

    第19章 Java绘图 360

    19.1 Java绘图类 360

    19.1.1 Graphics类 360

    19.1.2 Graphics2D类 361

    19.2 绘制图形 361

    19.3 绘图颜色与画笔属性 365

    19.3.1 设置颜色 365

    19.3.2 设置画笔 366

    19.4 绘制文本 367

    19.4.1 设置字体 367

    19.4.2 显示文字 367

    19.5 显示图片 369

    19.6 图像处理 370

    19.6.1 放大与缩小 370

    19.6.2 图像翻转 372

    19.6.3 图像旋转 374

    19.6.4 图像倾斜 375

    19.7 实践与练习 376

    第20章 多线程 377

    20.1 线程简介 377

    20.2 创建线程 378

    20.2.1 继承Thread类 378

    20.2.2 实现Runnable接口 379

    20.2.3 实现Callable接口 381

    20.3 线程的生命周期 382

    20.4 操作线程的方法 383

    20.4.1 线程的休眠 383

    20.4.2 线程的加入 384

    20.4.3 线程的中断 386

    20.4.4 线程的礼让 387

    20.5 线程的优先级 387

    20.6 线程同步 389

    20.6.1 线程安全 389

    20.6.2 线程同步机制 390

    20.7 实践与练习 392

    第21章 并发 393

    21.1 并发编程 393

    21.2 yield()方法 394

    21.3 线程上下文切换与死锁 395

    21.3.1 线程的上下文切换 396

    21.3.2 线程死锁 396

    21.3.3 避免死锁 398

    21.4 守护线程与用户线程 399

    21.4.1 守护线程与用户线程的区别 399

    21.4.2 守护线程 399

    21.5 ThreadLocal 401

    21.6 生产者与消费者模式 402

    21.6.1 wait()方法和notify()方法 403

    21.6.2 await()方法和signal()方法 405

    21.7 线程池 408

    21.8 实践与练习 412

    第22章 网络通信 413

    22.1 网络程序设计基础 413

    22.1.1 局域网与互联网 413

    22.1.2 网络协议 414

    22.1.3 端口与套接字 415

    22.2 TCP程序 415

    22.2.1 InetAddress类 416

    22.2.2 ServerSocket类 417

    22.2.3 TCP网络程序设计 418

    22.3 UDP程序 421

    22.3.1 DatagramPacket类 421

    22.3.2 DatagramSocket类 421

    22.3.3 UDP网络程序设计 422

    22.4 NIO同步非阻塞网络编程 425

    22.5 AIO异步非阻塞网络编程 428

    22.6 实践与练习 429

    第4篇 项目实战

    第23章 飞机大战游戏 432

    23.1 需求分析 432

    23.2 系统设计 433

    23.2.1 系统目标 433

    23.2.2 系统功能结构 433

    23.2.3 业务流程图 433

    23.2.4 系统预览 433

    23.3 技术准备 434

    23.3.1 Timer类的概念 434

    23.3.2 Timer类注意事项 435

    23.4 公共模块设计 435

    23.5 玩家飞机模型设计 437

    23.6 敌机模型设计 439

    23.7 导弹模型设计 440

    23.8 空投物资模型设计 441

    23.9 游戏面板模型设计 442

    第24章 MR人脸识别打卡系统 449

    24.1 需求分析 449

    24.2 系统设计 450

    24.2.1 开发环境 450

    24.2.2 系统功能结构 450

    24.2.3 系统业务流程 450

    24.3 数据库与数据表设计 451

    24.3.1 数据库分析 451

    24.3.2 数据表设计 452

    24.4 系统文件夹组织结构 453

    24.5 工具类的设计 454

    24.5.1 日期时间工具类 455

    24.5.2 数据库连接工具类 457

    24.6 实体类的设计 458

    24.7 数据库接口及实现类设计 459

    24.7.1 数据库接口 460

    24.7.2 基于MySQL数据库的接口实现类 461

    24.7.3 数据库接口工厂类 464

    24.8 全局会话类的设计 464

    24.9 服务类的设计 466

    24.9.1 摄像头服务 466

    24.9.2 人脸识别服务 467

    24.9.3 人事服务 470

    24.9.4 图像文件服务 476

    24.10 窗体类的设计 478

    24.10.1 主窗体 478

    24.10.2 主面板 479

    24.10.3 登录对话框 483

    24.10.4 考勤报表面板 484

    24.10.5 员工管理面板 488

    24.10.6 录入新员工面板 490

    24.11 常见问题与解决 492

    24.11.1 如何运行项目 492

    24.11.2 无法激活人脸识别引擎 492

    24.11.3 无法连接MySQL数据库 493

    24.11.4 如何切换成SQLite数据库 493
  • 内容简介:
    《Java从入门到精通(第7版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细讲解了使用Java语言进行程序开发需要掌握的知识。全书分为4篇共24章,内容包括初识Java,开发工具(IDEA、Eclipse),Java语言基础,流程控制,数组,类和对象,继承、多态、抽象类与接口,包和内部类,异常处理,字符串,常用类库,集合类,枚举类型与泛型,lambda表达式与流处理,I/O(输入/输出),反射与注解,数据库操作,Swing程序设计,Java绘图,多线程,并发,网络通信,飞机大战游戏,MR人脸识别打卡系统。书中所有知识都结合具体实例进行讲解,涉及的程序代码都给出了详细的注释,这可以帮助读者轻松领会Java程序开发的精髓,并快速提高开发技能。
  • 作者简介:
    明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获“全行业优秀畅销品种”“全国高校出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。
  • 目录:
    第1篇 基础知识

    第1章 初识Java 2

    1.1 Java简介 2

    1.1.1 什么是Java语言 2

    1.1.2 Java的应用领域 3

    1.1.3 Java的版本 3

    1.1.4 怎样学好Java 5

    1.1.5 Java API文档 6

    1.2 Java语言的特性 6

    1.3 搭建Java环境 8

    1.3.1 下载JDK 8

    1.3.2 在Windows 10系统下搭建JDK环境 9

    第2章 开发工具 12

    2.1 熟悉IDEA 12

    2.1.1 下载IDEA 12

    2.1.2 安装IDEA 14

    2.1.3 配置IDEA 16

    2.1.4 使用IDEA 17

    2.2 熟悉Eclipse 22

    2.2.1 下载Eclipse 22

    2.2.2 Eclipse的配置与启动 24

    2.2.3 Eclipse工作台 25

    2.2.4 透视图与视图 26

    2.2.5 菜单栏 26

    2.2.6 工具栏 26

    2.2.7 “包资源管理器”视图 29

    2.2.8 “控制台”视图 29

    2.3 使用Eclipse 29

    2.3.1 创建Java项目 29

    2.3.2 创建Java类文件 33

    2.3.3 编写Java程序 34

    2.3.4 运行Java程序 36

    2.4 程序调试 38

    第3章 Java语言基础 42

    3.1 Java主类结构 42

    3.2 基本数据类型 44

    3.2.1 整数类型 44

    3.2.2 浮点类型 45

    3.2.3 字符类型 46

    3.2.4 布尔类型 48

    3.3 变量与常量 48

    3.3.1 标识符和关键字 48

    3.3.2 声明变量 50

    3.3.3 声明常量 51

    3.3.4 变量的有效范围 52

    3.4 运算符 53

    3.4.1 赋值运算符 53

    3.4.2 算术运算符 54

    3.4.3 自增和自减运算符 55

    3.4.4 比较运算符 55

    3.4.5 逻辑运算符 56

    3.4.6 位运算符 57

    3.4.7 复合赋值运算符 58

    3.4.8 三元运算符 59

    3.4.9 运算符的优先级 60

    3.5 数据类型转换 61

    3.5.1 隐式类型转换 61

    3.5.2 显式类型转换 62

    3.6 代码注释与编码规范 63

    3.6.1 代码注释 63

    3.6.2 编码规范 64

    3.7 实践与练习 65

    第4章 流程控制 66

    4.1 复合语句 67

    4.2 if条件语句 67

    4.2.1 简单的if条件语句 68

    4.2.2 if…else语句 69

    4.2.3 if…else if多分支语句 69

    4.2.4 if语句的嵌套 71

    4.3 switch多分支语句 72

    4.3.1 switch语句通用语法 72

    4.3.2 switch表达式 74

    4.4 while循环语句 74

    4.5 do…while循环语句 75

    4.6 for循环语句 76

    4.6.1 传统的for语句 76

    4.6.2 foreach语句 77

    4.7 循环嵌套 78

    4.8 循环控制 79

    4.8.1 break语句 79

    4.8.2 continue语句 81

    4.9 实践与练习 82

    第5章 数组 84

    5.1 数组概述 84

    5.2 一维数组 84

    5.2.1 创建一维数组 84

    5.2.2 初始化一维数组 86

    5.2.3 使用一维数组 86

    5.3 二维数组 87

    5.3.1 创建二维数组 87

    5.3.2 初始化二维数组 88

    5.3.3 使用二维数组 88

    5.4 数组的基本操作 89

    5.4.1 遍历数组 89

    5.4.2 填充替换数组元素 90

    5.4.3 对数组进行排序 91

    5.4.4 复制数组 92

    5.4.5 查询数组 93

    5.5 数组排序算法 95

    5.5.1 冒泡排序 95

    5.5.2 直接选择排序 97

    5.5.3 反转排序 98

    5.6 实践与练习 99

    第2篇 面向对象编程

    第6章 类和对象 102

    6.1 面向对象概述 102

    6.1.1 对象 102

    6.1.2 类 104

    6.1.3 封装 104

    6.1.4 继承 104

    6.1.5 多态 105

    6.2 类 106

    6.2.1 成员变量 106

    6.2.2 成员方法 107

    6.2.3 权限修饰符 107

    6.2.4 局部变量 108

    6.2.5 局部变量的有效范围 109

    6.2.6 this关键字 109

    6.3 类的构造方法 110

    6.4 静态变量和静态方法 112

    6.5 类的主方法 114

    6.6 对象 115

    6.6.1 对象的创建 115

    6.6.2 访问对象的属性和行为 116

    6.6.3 对象的引用 117

    6.6.4 对象的销毁 118

    6.7 实践与练习 119

    第7章 继承、多态、抽象类与接口 120

    7.1 类的继承 120

    7.2 Object类 122

    7.3 对象类型的转换 125

    7.3.1 向上转型 125

    7.3.2 向下转型 126

    7.4 instanceof关键字及其新特性 127

    7.5 方法的重载 129

    7.6 final关键字 132

    7.6.1 final变量 132

    7.6.2 final方法 133

    7.6.3 final类 133

    7.7 record类 134

    7.8 多态 135

    7.9 抽象类 136

    7.10 接口 137

    7.10.1 定义接口 137

    7.10.2 实现接口 138

    7.10.3 接口继承接口 140

    7.10.4 接口的多重继承 141

    7.10.5 接口的默认方法 142

    7.10.6 抽象类与接口的区别 142

    7.11 实践与练习 143

    第8章 包和内部类 145

    8.1 Java类包 145

    8.1.1 类名冲突 145

    8.1.2 完整的类路径 146

    8.1.3 创建包 146

    8.1.4 导入包 147

    8.2 内部类 148

    8.2.1 成员内部类 149

    8.2.2 匿名内部类 151

    8.3 实践与练习 152

    第3篇 核心技术

    第9章 异常处理 154

    9.1 异常概述 154

    9.2 异常的抛出与捕捉 155

    9.2.1 抛出异常 155

    9.2.2 使用try…catch…finally语句捕捉异常 156

    9.3 Java常见的异常类 158

    9.4 自定义异常 158

    9.5 在方法中抛出异常 159

    9.5.1 使用throws关键字抛出异常 160

    9.5.2 使用throw关键字抛出异常 160

    9.6 运行时异常 162

    9.7 try…with…resources语句 162

    9.8 异常的使用原则 164

    9.9 实践与练习 164

    第10章 字符串 166

    10.1 String类 166

    10.1.1 声明字符串 166

    10.1.2 创建字符串 167

    10.2 连接字符串 168

    10.2.1 连接多个字符串 168

    10.2.2 连接其他数据类型 168

    10.3 获取字符串信息 170

    10.3.1 获取字符串长度 170

    10.3.2 查找字符串 170

    10.3.3 获取指定索引位置的字符 171

    10.4 字符串操作 172

    10.4.1 获取子字符串 172

    10.4.2 去除空格 173

    10.4.3 替换字符串 173

    10.4.4 判断字符串的开始与结尾 174

    10.4.5 判断字符串是否相等 175

    10.4.6 按字典顺序比较两个字符串 176

    10.4.7 字母大小写的转换 177

    10.4.8 分割字符串 178

    10.5 格式化字符串 179

    10.5.1 日期和时间字符串格式化 179

    10.5.2 常规类型格式化 182

    10.6 使用正则表达式 183

    10.7 字符串生成器 185

    10.8 实践与练习 187

    第11章 常用类库 188

    11.1 包装类 188

    11.1.1 Integer类 189

    11.1.2 Double类 190

    11.1.3 Boolean类 191

    11.1.4 Character类 192

    11.1.5 Number类 194

    11.2 数字处理 194

    11.2.1 数字格式化 194

    11.2.2 Math类 197

    11.2.3 Random类 200

    11.2.4 BigInteger类 202

    11.2.5 BigDecimal类 203

    11.3 System类 205

    11.3.1 在控制台中输出字符 205

    11.3.2 计时 206

    11.4 Scanner类 207

    11.5 日期时间类 208

    11.5.1 Date类 209

    11.5.2 日期时间格式化类 210

    11.5.3 Calendar类 213

    11.6 实践与练习 215

    第12章 集合类 216

    12.1 集合类概述 216

    12.2 Collection接口 217

    12.3 List接口 218

    12.3.1 List接口概述 218

    12.3.2 ArrayList类 218

    12.3.3 LinkedList类 219

    12.4 遍历集合中的元素 220

    12.4.1 Iterator遍历集合中的元素 220

    12.4.2 使用foreach循环遍历集合中的元素 221

    12.4.3 使用forEach()方法遍历集合中的元素 222

    12.5 使用Predicate操作集合 222

    12.6 Set接口 224

    12.6.1 Set接口概述 224

    12.6.2 HashSet类 224

    12.6.3 TreeSet类 225

    12.7 Map接口 226

    12.7.1 Map接口概述 227

    12.7.2 HashMap类 227

    12.7.3 遍历Map集合 228

    12.7.4 TreeMap类 229

    12.7.5 Properties类 230

    12.8 Collections类 232

    12.9 实践与练习 233

    第13章 枚举类型与泛型 234

    13.1 枚举类型 234

    13.1.1 使用枚举类型设置常量 234

    13.1.2 深入了解枚举类型 236

    13.1.3 使用枚举类型的优势 239

    13.2 泛型 239

    13.2.1 回顾向上转型与向下转型 239

    13.2.2 定义泛型类 240

    13.2.3 泛型的常规用法 241

    13.2.4 泛型的高级用法 243

    13.2.5 泛型总结 245

    13.3 实践与练习 246

    第14章 lambda表达式与流处理 247

    14.1 lambda表达式 247

    14.1.1 lambda表达式简介 247

    14.1.2 lambda表达式实现函数式接口 248

    14.1.3 lambda表达式调用外部变量 250

    14.1.4 lambda表达式与异常处理 252

    14.2 方法的引用 253

    14.2.1 引用静态方法 253

    14.2.2 引用成员方法 254

    14.2.3 引用带泛型的方法 255

    14.2.4 引用构造方法 256

    14.2.5 Function接口 258

    14.3 流处理 259

    14.3.1 Stream接口 260

    14.3.2 Optional类 262

    14.3.3 Collectors类 263

    14.3.4 数据过滤 264

    14.3.5 数据映射 267

    14.3.6 数据查找 268

    14.3.7 数据收集 271

    14.4 实践与练习 275

    第15章 I/O(输入/输出) 276

    15.1 输入/输出流 276

    15.1.1 InputStream字节/Reader字符输入流 277

    15.1.2 OutputStream字节/Writer字符输出流 278

    15.2 File类 279

    15.2.1 文件的创建与删除 279

    15.2.2 获取文件信息 280

    15.3 文件输入/输出流 281

    15.3.1 FileInputStream类和FileOutputStream类 281

    15.3.2 FileReader类和FileWriter类 282

    15.4 带缓存的输入/输出流 283

    15.4.1 BufferedInputStream类和BufferedOutputStream类 283

    15.4.2 BufferedReader类和BufferedWriter类 284

    15.5 数据输入/输出流 285

    15.6 对象序列化输入/输出流 287

    15.6.1 序列化对象 288

    15.6.2 反序列化对象 289

    15.7 实践与练习 289

    第16章 反射与注解 290

    16.1 反射 290

    16.1.1 访问构造方法 291

    16.1.2 访问成员变量 294

    16.1.3 访问成员方法 297

    16.2 Annotation注解功能 300

    16.2.1 定义Annotation类型 300

    16.2.2 访问Annotation信息 302

    16.3 实践与练习 305

    第17章 数据库操作 306

    17.1 数据库基础 306

    17.1.1 什么是数据库 307

    17.1.2 数据库的种类和功能 307

    17.1.3 SQL语言 308

    17.2 JDBC概述 309

    17.2.1 JDBC技术 309

    17.2.2 JDBC驱动程序的类型 310

    17.3 JDBC中常用的类和接口 310

    17.3.1 DriverManager类 310

    17.3.2 Connection接口 311

    17.3.3 Statement接口 312

    17.3.4 PreparedStatement接口 312

    17.3.5 ResultSet接口 313

    17.4 数据库操作 314

    17.4.1 连接数据库 314

    17.4.2 向数据库中发送SQL语句 315

    17.4.3 处理查询结果集 315

    17.4.4 顺序查询 315

    17.4.5 模糊查询 316

    17.4.6 预处理语句 317

    17.4.7 添加、修改、删除记录 318

    17.5 实践与练习 321

    第18章 Swing程序设计 322

    18.1 Swing概述 323

    18.2 常用窗体 324

    18.2.1 JFrame窗体 324

    18.2.2 JDialog对话框 326

    18.2.3 JOptionPane小型对话框 327

    18.3 常用布局管理器 331

    18.3.1 null绝对布局管理器 331

    18.3.2 FlowLayout流布局管理器 332

    18.3.3 BorderLayout边界布局管理器 333

    18.3.4 GridLayout网格布局管理器 334

    18.4 常用面板 335

    18.4.1 JPanel面板 335

    18.4.2 JScrollPane滚动面板 337

    18.5 文字标签组件与图标 338

    18.5.1 JLabel标签 338

    18.5.2 图标的使用 339

    18.6 按钮组件 340

    18.6.1 JButton按钮 340

    18.6.2 JRadioButton单选按钮 341

    18.6.3 JCheckBox复选框 343

    18.7 列表组件 344

    18.7.1 JComboBox下拉列表框 344

    18.7.2 JList列表框 346

    18.8 文本组件 347

    18.8.1 JTextField文本框 347

    18.8.2 JPasswordField密码框 348

    18.8.3 JTextArea文本域 349

    18.9 表格组件 350

    18.9.1 创建表格 350

    18.9.2 DefaultTableModel表格数据模型 351

    18.9.3 维护表格模型 352

    18.10 事件监听器 354

    18.10.1 ActionEvent动作事件 354

    18.10.2 KeyEvent键盘事件 356

    18.10.3 MouseEvent鼠标事件 357

    18.11 实践与练习 359

    第19章 Java绘图 360

    19.1 Java绘图类 360

    19.1.1 Graphics类 360

    19.1.2 Graphics2D类 361

    19.2 绘制图形 361

    19.3 绘图颜色与画笔属性 365

    19.3.1 设置颜色 365

    19.3.2 设置画笔 366

    19.4 绘制文本 367

    19.4.1 设置字体 367

    19.4.2 显示文字 367

    19.5 显示图片 369

    19.6 图像处理 370

    19.6.1 放大与缩小 370

    19.6.2 图像翻转 372

    19.6.3 图像旋转 374

    19.6.4 图像倾斜 375

    19.7 实践与练习 376

    第20章 多线程 377

    20.1 线程简介 377

    20.2 创建线程 378

    20.2.1 继承Thread类 378

    20.2.2 实现Runnable接口 379

    20.2.3 实现Callable接口 381

    20.3 线程的生命周期 382

    20.4 操作线程的方法 383

    20.4.1 线程的休眠 383

    20.4.2 线程的加入 384

    20.4.3 线程的中断 386

    20.4.4 线程的礼让 387

    20.5 线程的优先级 387

    20.6 线程同步 389

    20.6.1 线程安全 389

    20.6.2 线程同步机制 390

    20.7 实践与练习 392

    第21章 并发 393

    21.1 并发编程 393

    21.2 yield()方法 394

    21.3 线程上下文切换与死锁 395

    21.3.1 线程的上下文切换 396

    21.3.2 线程死锁 396

    21.3.3 避免死锁 398

    21.4 守护线程与用户线程 399

    21.4.1 守护线程与用户线程的区别 399

    21.4.2 守护线程 399

    21.5 ThreadLocal 401

    21.6 生产者与消费者模式 402

    21.6.1 wait()方法和notify()方法 403

    21.6.2 await()方法和signal()方法 405

    21.7 线程池 408

    21.8 实践与练习 412

    第22章 网络通信 413

    22.1 网络程序设计基础 413

    22.1.1 局域网与互联网 413

    22.1.2 网络协议 414

    22.1.3 端口与套接字 415

    22.2 TCP程序 415

    22.2.1 InetAddress类 416

    22.2.2 ServerSocket类 417

    22.2.3 TCP网络程序设计 418

    22.3 UDP程序 421

    22.3.1 DatagramPacket类 421

    22.3.2 DatagramSocket类 421

    22.3.3 UDP网络程序设计 422

    22.4 NIO同步非阻塞网络编程 425

    22.5 AIO异步非阻塞网络编程 428

    22.6 实践与练习 429

    第4篇 项目实战

    第23章 飞机大战游戏 432

    23.1 需求分析 432

    23.2 系统设计 433

    23.2.1 系统目标 433

    23.2.2 系统功能结构 433

    23.2.3 业务流程图 433

    23.2.4 系统预览 433

    23.3 技术准备 434

    23.3.1 Timer类的概念 434

    23.3.2 Timer类注意事项 435

    23.4 公共模块设计 435

    23.5 玩家飞机模型设计 437

    23.6 敌机模型设计 439

    23.7 导弹模型设计 440

    23.8 空投物资模型设计 441

    23.9 游戏面板模型设计 442

    第24章 MR人脸识别打卡系统 449

    24.1 需求分析 449

    24.2 系统设计 450

    24.2.1 开发环境 450

    24.2.2 系统功能结构 450

    24.2.3 系统业务流程 450

    24.3 数据库与数据表设计 451

    24.3.1 数据库分析 451

    24.3.2 数据表设计 452

    24.4 系统文件夹组织结构 453

    24.5 工具类的设计 454

    24.5.1 日期时间工具类 455

    24.5.2 数据库连接工具类 457

    24.6 实体类的设计 458

    24.7 数据库接口及实现类设计 459

    24.7.1 数据库接口 460

    24.7.2 基于MySQL数据库的接口实现类 461

    24.7.3 数据库接口工厂类 464

    24.8 全局会话类的设计 464

    24.9 服务类的设计 466

    24.9.1 摄像头服务 466

    24.9.2 人脸识别服务 467

    24.9.3 人事服务 470

    24.9.4 图像文件服务 476

    24.10 窗体类的设计 478

    24.10.1 主窗体 478

    24.10.2 主面板 479

    24.10.3 登录对话框 483

    24.10.4 考勤报表面板 484

    24.10.5 员工管理面板 488

    24.10.6 录入新员工面板 490

    24.11 常见问题与解决 492

    24.11.1 如何运行项目 492

    24.11.2 无法激活人脸识别引擎 492

    24.11.3 无法连接MySQL数据库 493

    24.11.4 如何切换成SQLite数据库 493
查看详情
相关图书 / 更多
您可能感兴趣 / 更多
Java从入门到精通(第7版)
Linux运维从入门到精通
明日科技
Java从入门到精通(第7版)
HTML5+CSS3+JavaScript从入门到精通
明日科技
Java从入门到精通(第7版)
Python完全自学教程
明日科技
Java从入门到精通(第7版)
Node.js从入门到精通
明日科技
Java从入门到精通(第7版)
C语言完全自学教程
明日科技
Java从入门到精通(第7版)
C语言从入门到精通(第6版)
明日科技
Java从入门到精通(第7版)
C#从入门到精通(第7版)
明日科技
Java从入门到精通(第7版)
JavaScript从入门到精通(第5版)
明日科技
Java从入门到精通(第7版)
Vue.js从入门到精通
明日科技
Java从入门到精通(第7版)
SQL语言从入门到精通
明日科技
Java从入门到精通(第7版)
MySQL从入门到精通(第3版)
明日科技
Java从入门到精通(第7版)
Python从入门到精通(第3版)
明日科技