首页 > 编程语言 >On Java 中文版 进阶卷 PDF

On Java 中文版 进阶卷 PDF

时间:2024-01-12 23:32:59浏览次数:20  
标签:Map Java 进阶 4.2 枚举 2.2 PDF 注解

On Java 中文版 进阶卷 PDF_枚举类型

内容简介

本书内容主要是对《On Java 中文版 基础卷》的拓展延伸,重点讲解Java的高级特性、并发、设计模式等相关进阶知识,对一些和开发密切相关的底层操作(如I/O系统、底层并发、数据压缩等)进行深入探讨,同时针对基础卷的重点章节进行了补充说明(如第3章增补了一些关于集合的高级特性)。在附录中,作者给出了67条关于低级程序设计和编写代码的建议,并分享了自己成为程序员的一些经验之谈。

本书适合有一定项目开发经验的Java程序员阅读。

作者简介

Bruce Eckel ,C++标准委员会的创始成员之一,知名技术顾问 ,专注于编程语言和软件系统设计方面的研究,常活跃于世界各大顶级技术研讨会。他自1986年以来,累计出版Thinking in C++、Thinking in Java、On Java 8等十余部经典计算机著作,曾多次荣获Jolt 最佳图书奖(“被誉为软件业界的奥斯卡”),其代表作 Thinking in Java被译为中、日、俄、意、波兰、韩等十几种语言,在世界范围内产生广泛影响。

目录

第1章 枚举类型
       1.1 枚举类型的基本特性 / 001
       静态导入枚举类型 / 002
       1.2 在枚举类型中增加自定义方 法 / 003
       重载枚举类型中的方法 / 004
       1.3 在switch语句中使用枚举 / 005
       1.4 values()方法的神秘之处 / 006
       1.5 实现,而不是继承 / 009
       1.6 随机选择 / 010
       1.7 使用接口来组织枚举 / 011
       1.8 用EnumSet来代替标识 / 015
       1.9 使用EnumMap / 017
       1.10 常量特定方法 / 018
       1.10.1 用枚举实现职责链模 式 / 023
       1.10.2 用枚举实现状态机 / 027
       1.11 多路分发 / 032
       1.11.1 使用枚举类型分发 / 034
       1.11.2 使用常量特定方法 / 036
       1.11.3 使用EnumMap分发 / 038
       1.11.4 使用二维数组 / 039
       1.12 支持模式匹配的新特性 / 041
       1.13 新特性:switch中的箭头语法 / 041
       1.14 新特性:switch中的case null / 042
       1.15 新特性:将switch作为表达 式 / 044
       1.16 新特性:智能转型 / 046
       1.17 新特性:模式匹配 / 048
       1.17.1 违反里氏替换原则 / 049
       1.17.2 守卫 / 053
       1.17.3 支配性 / 055
       1.17.4 覆盖范围 / 057
       1.18 总结 / 058

第2章_对象的传递和返回
       2.1 传递引用 / 061
       引用别名 / 061
       2.2 创建本地副本 / 063
       2.2.1 值传递 / 063
       2.2.2 克隆对象 / 064
       2.2.3 为类增加可克隆能力 / 065
       2.2.4 成功的克隆 / 067
       2.2.5 Object.clone()的效果 / 068
       2.2.6 克隆组合对象 / 070
       2.2.7 深拷贝ArrayList / 073
       2.2.8 通过序列化进行深拷贝 / 074
       2.2.9 在继承层次结构中增加可克隆 性并向下覆盖 / 076
       2.2.10 为什么用这种奇怪的 设计 / 077
       2.3 控制可克隆性 / 078
       复制构造器 / 082
       2.4 不可变类 / 086
       2.4.1 创建不可变类 / 088
       2.4.2 不可变性的缺点 / 089
       2.4.3 String 很特殊 / 091
       2.5 总结 / 091

第3章 集合主题
       3.1 样例数据 / 093
       3.2 List 的行为 / 099
       3.3 Set 的行为 / 102
       3.4 在 Map 上使用函数式操作 / 104
       3.5 选择 Map 的部分元素 / 105
       3.6 填充集合 / 107
       3.6.1 使用 Suppliers 来填充 Collection / 108
       3.6.2 使用 Suppliers 来填充 Map / 109
       3.7 使用享元自定义 Collection 和 Map / 112
       3.8 Collection 的功能 / 123
       3.9 可选的操作 / 125 不支持的操作 / 127
       3.10 Set 与存储顺序 / 129 SortedSet / 132
       3.11 Queue / 134
       3.11.1 优先级队列 / 135
       3.11.2 Deque / 136
       3.12 理解 Map / 137
       3.12.1 性能 / 139
       3.12.2 SortedMap / 141
       3.12.3 LinkedHashMap / 143
       3.13 工具函数 / 144
       3.13.1 List 上的排序和 查找 / 147
       3.13.2 创建不可修改的 Collection 或 Map / 148
       3.13.3 同步 Collection 或 Map / 150
       快速失败 / 150
       3.14 持有引用 / 151
       WeakHashMap / 154
       3.15 Java 1.0/1.1的集合类 / 155
       3.15.1 Vector 和Enumeration / 155
       3.15.2 Hashtable / 156
       3.15.3 Stack / 157
       3.15.4 BitSet / 158
       3.16 总结 / 160

第4章 注解
       4.1 基本语法 / 163
       4.1.1 定义注解 / 164
       4.1.2 元注解 / 165
       4.2 编写注解处理器 / 166
       4.2.1 注解元素 / 167
       4.2.2 默认值的限制 / 168
       4.2.3 生成外部文件 / 168
       4.2.4 注解不支持继承 / 172
       4.2.5 实现处理器 / 172
       4.3 用 javac 处理注解 / 174
       4.3.1 最简单的处理器 / 175
       4.3.2 更复杂的处理器 / 178
       4.4 基于注解的单元测试 / 182
       4.4.1 在 @Unit 中使用泛型 / 190
       4.4.2 实现 @Unit / 192
       4.5 总结 / 202
       后续......

On Java 中文版 进阶卷 PDF_Java_02

标签:Map,Java,进阶,4.2,枚举,2.2,PDF,注解
From: https://blog.51cto.com/u_16507590/9224920

相关文章

  • Java之线程的详细解析二
     2.线程同步2.1卖票【应用】案例需求某电影院目前正在上映国产大片,共有100张票,而它有3个窗口卖票,请设计一个程序模拟该电影院卖票实现步骤定义一个类SellTicket实现Runnable接口,里面定义一个成员变量:privateinttickets=100;在SellTicket类中重写run()方法实现卖票,代码步骤如下......
  • 多线程(Java.Thread)学习
    多线程(Java.Thread)学习线程简介:1、线程是独立执行的路径2、程序运行时有很多后台进程比如主线程、young.gc、full.gc()3、main是主线程,系统入口,用于执行整个程序4、一个进程中、如果开辟多个线程,线程的运行由调度器安排调度、调度器的先后顺序不能人为干预5、对同一份资......
  • Java浮点数精度问题与BigDecimal详解
    第1章:引言大家好,我是小黑,咱们在日常的Java编程中,经常会遇到处理金融数据的情况,比如计算商品的价格或者处理用户的账户余额。在这些场景下,精确的数值计算就显得尤为重要。这时候,BigDecimal就成了咱们的好帮手。不像普通的float和double类型,BigDecimal提供了非常精确的数值计算。......
  • 1.java概述
    第一章java概述java的主要特点:1.java是面向对象的2.Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证3.Java语言是跨平台性的。[即:一个编译好的.class文件可以在多个系统下运行,这种特性称为跨平台]4.Java语言是解释型......
  • 【C语言进阶篇】动态内存分配的六个常见错误
    <br>(文章目录)前言  <fontcolor=green>......
  • JVM6(JAVA 四中引用类型)
    强引用在Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收。因此强引用是造成Java内存泄漏的主要原因之一。软引......
  • Java入门
    目标:掌握类与对象的一些注意事项。1).类名建议使用英文单词,首字母大写,满足驼峰模式,且要有一定的含义,例如:Student2).类中定义的变量称为成员变量(对象的属性),类中定义的方法称为成员方法(对象的行为)。3).成员变量本身存在默认值,一般在定义成员变量时不需要赋初始值。4).一个代码文件中......
  • 京东商品详情API实现实时数据获取的Java代码示例
    在电商行业中,商品详情页是用户了解商品信息、进行购买决策的重要页面。为了提高用户体验和促进销售,电商平台通常会提供商品详情的API接口,以便第三方应用能够实时获取商品数据。本文将介绍如何使用京东获得的JD商品详情API实现实时数据获取,并提供相应的Java代码示例。一、JD商品详......
  • 开发日志(数据结构、时间戳、javaException)
     (一)数据库类型mysql中的datetime可以转为postgres的date(二)数据库时间戳postgresql使用时间戳获取时分秒时间1、selectcurrent_timestamp2024-01-1214:16:31.93339+082、selectcurrent_timestamp(0) //去掉秒后面的位数,但仍有时区2024-01-1214:17:42+083、CURRENT_TIMESTAMP(......
  • Redis分布式锁的Java实现之道
    摘要:在当今的微服务架构中,分布式锁是一个非常重要的概念。它允许我们在多个服务之间同步操作,确保数据的一致性和完整性。而Redis作为一种高性能的内存数据存储系统,常常被用来实现分布式锁。一、分布式锁的基本概念在分布式系统中,多个节点可能同时访问和修改共享资源。如果没有适......