×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
暂无评论
图文详情
  • ISBN:9787519869731
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:700
  • 出版时间:2023-03-01
  • 条形码:9787519869731 ; 978-7-5198-6973-1

本书特色

本书介绍了数百个Java实战技巧,内容涵盖诸多Java主题。 随着Java继续发展和演进,这本书也在不断修订和改版。利用这本指南,你会快速掌握数百个实战技巧,内容涵盖诸多Java主题。你将学习从字符串处理、函数式编程到网络通信等一切有用的技术。 每个技巧都包含完整的代码解决方案,你可以免费使用这些代码,另外每个技巧还讨论了如何做以及为什么这样做。如果你已经熟悉Java基础知识,这本经典实例将增进你的Java知识,让你了解Java的*新变化,包括如何在日常开发中运用这些知识。更新的这一版涵盖了Java 12之前的全部内容以及Java 13和Java14的部分内容。 “Java快节奏的开发和发布周期可能让人无所适从。这本非凡的书经过精心设计,提供了常见任务的解决方案,会帮助你跟进Java语言的发展。这确实是一个不可或缺的绝好资源。”——Daniel Hinojosa开发人员、培训师和宣讲师 本书从入门学习者的角度出发,通过通俗易懂的语言、丰富多彩的实例、贴近开发实战的项目,循序渐进地让读者在实践中学习Java编程知识,并提升自己的实际开发能力。 书中所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Java程序开发的精髓,快速提高开发技能。

内容简介

本书的主要内容包括:编译、运行和调试方法。打包Java类和构建应用。处理、比较和重新组织文本。完成字符串和模式匹配的正则表达式。处理数字、日期和时间。利用集合、数组和其他类型建立数据结构。面向对象和函数式编程技术。输入/输出、目录和文件系统操作。客户端和服务器端网络编程。处理JSON实现数据交换。多线程和并发。大数据应用中使用Java。Java与其他语言的交互。

目录

目录

前言 .1

第1 章 入门:编译和运行Java .19

1.0 引言 19

1.1 编译和运行Java:标准JDK . 20

1.2 编译和运行Java:GraalVM 提高性能 . 22

1.3 用IDE 编译、运行和测试 24

1.4 用JShell 探索Java . 29

1.5 有效地使用CLASSPATH 32

1.6 下载和使用代码示例 . 34

1.7 用Apache Maven 自动管理依赖、编译、测试和部署 . 42

1.8 用Gradle 自动管理依赖、编译、测试和部署 48

1.9 处理废弃警告 50

1.10 利用单元测试维护代码正确性:JUnit 52

1.11 利用持续集成维护代码 56

1.12 获取可读的栈轨迹 61

1.13 查找更多Java 源代码 . 61

1.14 查找可运行的Java 库 . 62

第2 章 环境交互 66

2.0 引言 66

2.1 获得环境变量 66

2.2 从系统属性获得信息 . 68

2.3 处理依赖于Java 版本或操作系统的代码 70

2.4 使用扩展或其他打包API 75

2.5 使用Java 模块系统 . 76

第3 章 字符串相关问题 82

3.0 引言 82

3.1 利用子串或词法分析分解字符串 86

3.2 用Stringuilder 合并字符串 . 91

3.3 逐字符处理字符串 94

3.4 字符串对齐、缩进和取消缩进 . 96

3.5 Unicode 字符与字符串之间的转换 100

3.6 按单词或字符逆转字符串 . 103

3.7 展开和压缩制表符 104

3.8 控制大小写 109

3.9 输入非打印字符 111

3.10 删除字符串末尾的空白符 112

3.11 使用国际化资源创建消息 115

3.12 使用特定的本地化环境 118

3.13 创建资源包 120

3.14 程序:一个简单的文本格式化工具 121

3.15 程序:Soundex 名字比较 123

第4 章 使用正则表达式实现模式匹配 127

4.0 引言 . 127

4.1 正则表达式语法 . 130

4.2 在Java 中使用正则表达式:测试模式 137

4.3 查找匹配文本 . 141

4.4 替换匹配文本 . 144

4.5 打印一个模式的所有匹配 . 148

4.6 打印包含一个模式的行 . 151

4.7 用正则表达式控制大小写 . 152

4.8 匹配重音或组合字符 154

4.9 匹配文本中的换行符 155

4.10 程序: Apache 日志文件解析 157

4.11 程序: 完整的Grep . 159

第5 章 数字 166

5.0 引言 . 166

5.1 检查字符串是否是一个合法的数 . 169

5.2 数字与对象的转换 170

5.3 直接使用分数而不使用浮点数 172

5.4 处理浮点数 173

5.5 格式化数字 179

5.6 二进制、八进制、十进制和十六进制间的转换 183

5.7 处理整数序列 . 184

5.8 格式化为正确的复数形式 . 186

5.9 生成随机数 189

5.10 矩阵乘法 . 192

5.11 使用复数 . 194

5.12 处理非常大的数 197

5.13 程序:TempConverter 200

5.14 程序:数字回文 202

第6 章 日期和时间 207

6.0 引言 . 207

6.1 获得当天日期 . 210

6.2 格式化日期和时间 212

6.3 日期/ 时间、YMDHMS 和纪元秒之间的转换 214

6.4 将字符串解析为日期 216

6.5 两个日期之差 . 217

6.6 日期加上或减去一个时间段 219

6.7 处理重复事件 . 220

6.8 计算涉及时区的日期 223

6.9 与遗留Date 和Calendar 类交互 225

第7 章 Java 数据结构. 227

7.0 引言 . 227

7.1 用数组建立数据结构 228

7.2 调整数组大小 . 230

7.3 集合框架 231

7.4 与数组类似,但更动态 . 233

7.5 自己的类中使用泛型类型 . 237

7.6 所有迭代方法 . 241

7.7 用Set 避免重复 . 245

7.8 用链表建立数据结构 246

7.9 用Hashtale 和HashMap 建立映射. 252

7.10 在Properties 和Preferences 中存储字符串 255

7.11 集合排序 . 260

7.12 避免显式排序 265

7.13 在集合中查找对象 . 267

7.14 将一个Collection 转换为数组 . 270

7.15 使数据可迭代 271

7.16 使用对象栈 274

7.17 多维结构 . 278

7.18 用Lomok 或Record 简化数据对象 280

7.19 程序: 计时比较 283

第8 章 面向对象技术 286

8.0 引言 . 286

8.1 对象方法:用toString() 格式化对象,用equals 比较对象 . 289

8.2 使用内部类 298

8.3 通过接口提供回调 300

8.4 多态/ 抽象方法 . 305

8.5 使用类型安全的枚举 307

8.6 用Optional 避免NPE 311

8.7 保证单例模式 . 314

8.8 创建自己的异常 316

8.9 使用依赖注入 . 318

8.10 程序:绘图仪 322

第9 章 函数式编程技术:函数接口、流和并行集合 326

9.0 引言 . 326

9.1 使用Lamda/Closures 而不是内部类 . 330

9.2 使用lamda 预定义接口而不是自定义接口 334

9.3 用Stream 简化处理 . 337

9.4 用Collector 简化流 339

9.5 用并行流和集合提高吞吐量 342

9.6 利用方法引用将已有代码用作为函数式接口 344

9.7 Java Mixin:方法混入 349

第10 章 输入和输出:读、写和目录技巧 351

10.0 引言 351

10.1 关于InputStream/OutputStream 和Reader/Writer . 353

10.2 读文本文件 355

10.3 从标准输入或控制台/ 控制终端读取 358

10.4 用Formatter 和printf 打印 362

10.5 用StreamTokenizer 扫描输入 366

10.6 用Scanner 类扫描输入 371

10.7 扫描有语法结构的输入 375

10.8 复制文件 . 380

10.9 重新分配标准流 382

10.10 写时复制流,重新分配标准流 . 383

10.11 读/ 写不同的字符集 386

10.12 讨厌的行尾字符 388

10.13 当心依赖平台的文件代码 389

10.14 读/ 写二进制数据 390

10.15 读写JAR 或ZIP 归档 391

10.16 使用getResource() 和getResourceAsStream()

采用文件系统中立方式查找文件 395

10.17 获取文件信息:Files 和Path . 397

10.18 创建新文件或目录 406

10.19 改变文件名或其他属性 408

10.20 删除文件 410

10.21 创建瞬时/ 临时文件 413

10.22 列出目录内容 416

10.23 获得目录的根 417

10.24 使用FileWatcher 服务得到文件变更通知 418

10.25 程序:将用户数据保存到磁盘 . 421

10.26 程序:查找—遍历文件树 425

第11 章 数据科学与R 431

11.1 使用Java 完成机器学习 . 432

11.2 在Apache Spark 中使用数据 433

11.3 交互式使用R 436

11.4 比较/ 选择R 实现 . 439

11.5 在Java 应用中使用R:Renjin 441

11.6 从R 会话使用Java 443

11.7 使用FastR(R 的GraalVM 实现) 445

11.8 在We 应用中使用R 446

第12 章 网络客户端 449

12.0 引言 449

12.1 HTTP/REST We 客户端 452

12.2 连接socket 服务器 454

12.3 查找和报告网络地址 456

12.4 处理网络错误 458

12.5 读写文本数据 459

12.6 读写二进制或串行化数据 462

12.7 UDP 数据报 466

12.8 URI, URL 还是URN? 469

12.9 程序: TFTP UDP 客户端 470

12.10 程序: 基于Socket 的聊天客户端 475

12.11 程序: 简单的HTTP 链接检查工具 . 480

第13 章 服务器端Java 482

13.0 引言 482

13.1 打开服务器Socket 483

13.2 查找网络接口 486

13.3 返回响应(字符串或二进制数据) 487

13.4 通过网络连接返回对象信息 . 491

13.5 处理多个客户端 493

13.6 提供HTTP 协议 498

13.7 用SSL 和JSSE 保护We 服务器 501

13.8 用JAX-RS 创建REST 服务 504

13.9 网络日志 . 507

13.10 创建SLF4J . 509

13.11 使用Log4j 生成网络日志 511

13.12 用java.util.logging 生成网络日志 517

第14 章 处理JSON 数据 522

14.0 引言 522

14.1 直接生成JSON 524

14.2 用Jackson 解析和写JSON 526

14.3 用org.json 解析和写JSON 527

14.4 用JSON- 解析和写JSON 530

14.5 用JSON Pointer 查找JSON 元素 . 531

第15 章 包和打包 . 535

15.0 引言 535

15.1 创建包 . 536

15.2 用Javadoc 建立类文档 538

15.3 超越Javadoc: 注解/ 元数据 . 542

15.4 准备一个类作为Javaean . 544

15.5 用JAR 归档 549

15.6 从一个JAR 运行程序 550

15.7 将We 层组件打包到WAR 文件 553

15.8 用jlink 创建更小的发布包 554

15.9 使用JPMS 创建模块. 556

第16 章 Java 线程 560

16.0 引言 560

16.1 在不同线程中运行代码 562

16.2 用动画显示动图 567

16.3 停止线程 . 573

16.4 交会和超时 576

16.5 用synchronized 关键字同步线程 577

16.6 用锁简化同步 585

16.7 用Queue 接口简化生产者/ 消费者 589

16.8 用Fork/Join 优化并行处理 592

16.9 调度任务:将来,编辑器的后台保存 . 596

第17 章 反射或“名为Class 的类” 601

17.0 引言 601

17.1 获得类描述符 602

17.2 查找和使用方法和字段 603

17.3 通过反射访问私有方法和字段 608

17.4 动态加载和实例化一个类 609

17.5 用ClassLoader 从头构造一个类 . 612

17.6 用JavaCompiler 从头构造一个类 614

17.7 性能计时 . 617

17.8 打印类信息 622

17.9 列出一个包中的类 . 624

17.10 使用和定义注解 627

17.11 通过注解查找类似插件的类 633

17.12 程序: CrossRef . 636

第18 章 结合使用Java 和其他语言 641

18.0 引言 641

18.1 从Java 运行外部程序 642

18.2 运行程序并捕获输出 647

18.3 通过javax.script 调用其他语言 651

18.4 用GraalVM 混合语言 654

18.5 结合Java 和Perl . 655

18.6 通过原生代码调用其他语言 . 659

18.7 从原生代码调用Java 666

附录 Java 前世今生 . 669

后记 681


展开全部

作者简介

Ian Darwin在软件行业积累了丰富的经验,从Java的第d一版直到现在,他在很多平台和不同类型的软件上使用过Java。作为Sun/Oracle Java Champions的创始成员,Ian还是《Android Cookook》和其他一些书的作者。他一直在为计算机科学专业本科生以及Learning Tree International(一家领l先的职业发展培训公司)编写教材和讲授课程。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航