电子书 编程

(中英对照)Java 编程实战:通过解决现代现实问题成为 J

¥2.90 已售 0
✓ 自动发货 ✓ 永久有效 ✓ 售后保障

资源介绍

ava 专家(第 2 版)(双语电子书) 本书通过 123 个编程问题及解决方案,涵盖 Java 编程的多个关键领域,包括字符串处理、对象操作、日期时间处理、记录(Records)、数组与数据结构、I/O 操作、外部函数与内存 API、密封类与隐藏类、函数式编程扩展以及并发编程等,帮助读者掌握现代 Java 编程的核心技能和高级特性。 主要章节内容 1. 文本块、本地化、数字与数学(Text blocks, Locales, Numbers & Math) 文本块(Text Blocks):介绍了 Java 13 + 引入的文本块特性,包括创建多行 SQL、JSON 和 HTML 字符串,处理分隔符、缩进、空格,以及文本块与普通字符串的混合使用等 33 个问题。 文本块以"""作为起始和结束分隔符,支持多行字符串,自动处理 incidental 空格。 可通过\抑制换行,\s保留空格,以及使用translateEscapes()处理转义序列。 本地化(Locales):涵盖创建 Locale、自定义本地化日期时间格式等。 数字与数学:包括处理整数溢出、计算绝对值、商、平方根(巴比伦方法)、素因数分解等,以及 Java 17 新增的伪随机数生成器 API。 2. 对象、不可变性、switch 表达式与模式匹配(Objects, Immutability, Switch Expressions, and Pattern Matching) 对象相关:解释 UTF-8/UTF-16/UTF-32 编码,检查子范围,获取对象标识字符串,在文档中添加代码片段等 29 个问题。 不可变性:实现不可变栈,揭示 String 使用中的常见错误。 switch 表达式:介绍yield关键字,处理null情况,以及模式匹配在instanceof和switch中的应用。 模式匹配允许在instanceof检查时直接绑定变量,如if (o instanceof String s) { ... }。 switch可使用类型模式、守卫模式,需确保覆盖所有可能的情况(完整性)。 3. 日期时间处理(Working with Date and Time) 包含定义一天中的时间段、在Date与YearMonth间转换、检查闰年、计算季度、获取某年 / 周的首尾天等 20 个问题。 涉及Calendar API 和 Java 8 + 的java.time API,如LocalDateTime、ZonedDateTime、TemporalAdjusters等。 4. 记录(Record)与记录模式(record pattern) 记录(Records):介绍记录的声明、规范构造函数与紧凑构造函数,记录中可添加的元素(方法、静态成员)和不可添加的元素(实例字段、继承等)等 18 个问题。 记录是不可变的数据载体,编译器自动生成equals()、hashCode()、toString()和访问方法。 记录模式:在instanceof和switch中使用记录模式,处理嵌套记录、泛型记录和null值。 5. 数组、集合与数据结构(Arrays, collections and data structures) 向量 API(Vector API):用于数据并行处理,如数组求和、矩阵乘法、图像负滤镜等 23 个问题。 集合工厂方法:创建不可变集合,从流中获取列表,处理 Map 容量。 数据结构:介绍 Rope、跳表(Skip List)、K-D 树、拉链(Zipper)、二项堆、斐波那契堆、配对堆、霍夫曼编码、伸展树(Splay Tree)等。 连接算法:实现嵌套循环连接、哈希连接和排序合并连接。 6. Java I/O:上下文特定反序列化过滤器(Java I/O: Context-Specific Deserialization Filters) 涵盖对象序列化到字节数组 / 字符串 / XML,Java 9 + 的反序列化过滤器,自定义过滤器,避免反序列化时的栈溢出和 DoS 攻击等 13 个问题。 Java 17 简化了过滤器创建,可通过ObjectInputFilter实现上下文特定过滤。 7. 外部函数与内存 API(Foreign (Function) Memory API) 介绍 JNI、JNA、JNR,以及 Project Panama 的架构,包括Arena、MemorySegment、内存分配、布局(struct/union),调用外部函数(如sumTwoInt()、strcat())等 18 个问题。 8. 密封类与隐藏类(Sealed and Hidden Classes) 密封类:创建密封类层次结构,使用permits子句限制继承,结合密封类与记录、模式匹配等 7 个问题。 隐藏类:简介隐藏类的创建和用途,隐藏类不能被反射访问,适用于动态生成的代码。 9. 函数式编程 - API 扩展(Functional style programming - extending API) 包括使用mapMulti(),扩展Stream添加containsAll/removeAll,构建动态谓词,创建自定义收集器等 24 个问题。 涉及函数组合、处理 checked 异常,以及部分应用函数。 10. 并发 - 虚拟线程与结构化并发(Concurrency - Virtual Threads, Structured Concurrency) 解释并发与并行的区别,介绍 Java 19 + 的虚拟线程(VirtualThread)和结构化并发(StructuredTaskScope)等 12 个问题。 虚拟线程轻量高效,适合 I/O 密集型任务,可通过Executors.newVirtualThreadPerTaskExecutor()创建。 结构化并发通过ShutdownOnSuccess、ShutdownOnFailure等简化多任务管理,确保任务生命周期与作用域绑定。 目标读者 有一定 Java 基础,希望提升对现代 Java 特性(如记录、模式匹配、虚拟线程)掌握的开发者。 准备应对 Java 编程面试或需要解决实际项目中复杂问题的程序员。 书籍特点 结合理论与实践,每个问题提供详细解决方案和代码示例。 覆盖 Java 8 至 Java 20 + 的新特性,如文本块、密封类、虚拟线程等。 包含性能基准测试(JMH),帮助读者了解不同实现的效率差异。 提供在线资源(GitHub 代码库)供读者实践。 Java Coding Problems