Effective Java(第三版)目录

Effective Java(中文版第3版)笔记 创建和销毁对象 第1条:用静态工厂方法代替构造器 第2条:遇到多个构造器参数时要考虑使用构建器 建造者模式 第3条:用私有构造器或者枚举类型强化 Singleton 属性 三种实现单例的方法,注意防止使用反射,可以修改构造器,让它在被要求创建第二个实例的时候抛出异常。 最佳方式是枚举实现。 第4条:通过私有构造器强化不可实例化的能力 第5条:优先考虑依赖注入来引用资源 不要用 Singleton 和静态工具类来实现依赖一个或多个底层资源的类,且该资源的行为会影响到该类的行为 ;也不要直接用这个类来创建这些资 阅读详情

        本书的目标是帮助读者更加有效地使用Java编程语言及其基本类库java.lang、java.util和java.io,以及子包java.util.concurrent和java.util.function等。本书也会时不时地讨论到其他的类库。
        本书一共包含90个条目,每个条目讨论一条规则。这些规则反映了最有经验的优秀程序员在实践中常用的一些有益的做法。全书以一种比较松散的方式将这些条目组织成12章,每一章都涉及软件设计的一个主要方面。因此,并不一定需要按部就班地从头到尾阅读本书,因为每个条目都有一定程度的独立性。这些条目相互之间经常交叉引用,因此可以很容易地在书中找到自己需要的内容。

第1章 引言

第2章 创建和销毁对象

第1条:用静态工厂方法代替构造器
第2条:遇到多个构造器参数时要考虑使用构建器
第3条:用私有构造器或者枚举类型强化Singleton
第4条:通过私有构造器强化不可实例化的能力
第5条:优先考虑依赖注入来引用资源
第6条:避免创建不必要的对象
第7条:消除过期的对象引用
第8条:避免使用终结方法和清除方法
第9条:try-with-resources优先于try-finally

第3章 对于所有对象都通用的方法

第10条:覆盖equals时请遵守通用约定
第11条:覆盖equals时总要覆盖hashCode
第12条:始终要覆盖toString
第13条:谨慎地要盖clone
第14条:考虑实现Comparable接口

第4章 类和接口

第15条:使类和成员的可访问性最小化
第16条:要在公有类而非公有域中使用访问方法
第17条:使可变性最小化
第18条:复合优先于继承
第19条:要么设计继承并提供文档说明,要么禁止
第20条:接口优于抽象类
第21条:为后代设计接口
第22条:接口只用于定义类型
第23条:类层次优于标签类
第24条:静态成员类优于非静态成员类
第25条:限制源文件为单个顶级类

第5章 泛型

第26条:请不要使用原生态类型
第27条:消除非受检的警告
第28条:列表优于数组
第29条:优先考虑泛型
第30条:优先考虑泛型方法
第31条:利用有限制通配符来提升API的灵活性
第32条:谨慎并用泛型和可变参数
第33条:优先考虑类型安全的异构容器

第6章枚举和注解

第34条:用enum代替int常量
第35条:用实例域代替序数
第36条:用EnumSet代替位域
第37条:用EnumMap代替序数索引
第38条:用接口模拟可扩展的枚举
第39条:注解优先于命名模式
第40条:坚持使用Override注解
第41条:用标记接口定义类型

第7章 Lambda和Stream

第42条:Lambda优先于匿名类
第43条:方法引用优先于Lambda
第44条:坚持使用标准的函数接口
第45条:谨慎使用Stream
第46条:优先选择Stream中无副作用的函数
第47条:Stream要优先用Collection作为返回类型
第48条:谨慎使用Stream并行

第8章方法

第49条:检查参数的有效性
第50条:必要时进行保护性拷贝
第51条:谨悄设计方法签名
第52条:慎用重载
第53条:慎用可变参数
第54条:返回零长度的数组或者集合,而不是null
第55条:谨慎返回optinal
第56条:为所有导出的API元素编写文档注释

第9章 通用编程

第57条:将局部变量的作用域最小化
第58条:for-each循环优先于传统的for循环
第59条:了解和使用类库
第60条:如果需要精确的答案,请避免使用float和double
第61条:基本类型优先于装箱基本类型
第62条:如果其他类型更适合,则尽量避免使用字符串
第63条:了解字符串连接的性能
第64条:通过接口引用对象
第65条:接口优先于反射机制
第66条:谨慎地使用本地方法
第67条:谨慎地进行优化
第68条:遵守普遍接受的命名惯例

第10章 异常

第69条:只针对异常的情况才使用异常
第70条:对可恢复的情况使用受检异常,对编程错误使用运行时异常
第71条:避免不必要地使用受检异常
第72条:优先使用标准的异常
第73条:抛出与抽象对应的异常
第74条:每个方法抛出的所有异常都要建立文档
第75条:在细节消息中包含失败捕获信息
第76条:努力使失败保持原子性
第77条:不要忽略异常

第11章 并发

第78条:同步访问共享的可变数据
第79条:避免过度同步
第80条:executor、task和stream优先于线程
第81条:并发工具优先于wait和notify
第82条:线程安全性的文档化
第83条:慎用延迟初始化
第84条:不要依赖于线程调度器

第12章 序列化

第85条:其他方法优先于Java序列化
第86条:谨慎地实现Serializable接口
第87条:考虑使用自定义的序列化形式
第88条:保护性地编写readObject方法
第89条:对于实例控制,枚举类型优先于readResolve
第90条:考虑用序列化代理代替序列化实例

Effective Java第三版1 《Effective Java》第三版中文版目录 第一章 介绍 1 第二章 创建和销毁对象 4 1  考虑用静态工厂方法替换构造器 4 2  当遇到多个构造器参 立即下载

相关推荐

R链式中介:如何一次性生成4个变量所有可能的链式中介结果?(含结果解读与粗略作图)#bruceR#ggplot2

一次性生成4个变量所能生成的24种链式中介并作图

weixin_64183017的博客 3236

《Effective Java》真的是一本值得一直去钻研的好书

文章目录《Effective Java》读书笔记第一章 引言第二章 创建和销毁对象1 考虑使用静态工厂方法替代构造方法**2 当构造方法参数过多时使用builder(建造者) 模式**3 使用私有构造方法或枚类实现Singleton 属性*4 使用私有构造方法执行非实例化*5 依赖注入优于硬连接资源(hardwiring resources)**6 避免创建不必要的对象*7 消除过期的对象引用*8 避免使用Finalizer 和Cleaner 机制**9 使用try-with-resources 语句替代t

追求幸福,探索未知的博客 8642

运算放大器电路中的T型网络:如何用更小电阻实现高增益并降低噪声?

本文深入解析了运算放大器电路中T型反馈网络的设计与应用。该网络通过三个较小阻值电阻的组合,等效实现高增益,有效规避了传统大反馈电阻带来的显著热噪声问题。文章从数学原理、噪声定量分析到实际设计技巧,系统阐述了如何利用T型网络在实现高增益的同时,显著降低电路噪声并改善整体性能。

banana的博客 318

一文简单理解《Effective Java》建议

​一种失败的接口就是所谓的常量接口这样的接口不包含任何方法;它只包含静态 final 属 性,每个输出一个常量。使用这些常量的类实现接口,以避免需要用类名限定常量名。​常量接口模式是对接口的糟糕使用。类在内部使用一些常量,完全属于实现细节。实现一个常量接口会导致这 个实现细节泄漏到类的导出 API 中。对类的用户来说,类实现一个常量接口是没有意义的。事实上,它甚至可能使他 们感到困惑。更糟糕的是,它代表了一个承诺:如果在将来的版本中修改了类,不再需要使用常量,那么它仍然必须 实现接口,以确保二进制兼容性。

weixin_40709965的博客 2627

距离多普勒谱(RD谱)绘制方法及理解

RD谱是信号处理领域常用的图形。原始信号往往是一维时域序列,如何将其二维化,并进行变换生成RD谱呢?由于刚刚接触,查阅了网络上、老师手里的资料,发现RD谱的绘制方法并不统一,有些存在一定问题。在此,将心得体会记录下来。

mddh_123的博客 3万+

ThunderScope开源示波器

4CH,1GSa/S 开源示波器。前端很简洁,BUF802+LMH6518,ADC是HMCAD1511,用Xilinx A7 FPGA进行控制,数据通过PCIE总线传输到上位机处理。目前这个项目已经被挂到了Xilinx官网,强。设计日志:https://hackaday.io/project/180090-thunderscope开源地址:https://github.com/EEVengers/ThunderScope。

leida_wt的博客 8191

带你快速看完9.8分神作《Effective Java》—— 并发篇(工作里的这些坑你都遇到过吗?)

???? Java学习:Java从入门到精通总结 ???? Spring系列推荐:Spring源码解析 ???? 最近更新:2021年12月16日 ???? 个人简介:通信工程本硕????、阿里新晋猿同学????。我的故事充满机遇、挑战与翻盘,欢迎关注作者来共饮一杯鸡汤 ???? 点赞 ???? 收藏 ⭐留言 ???? 都是我最大的动力! 豆瓣评分9.8的图书《Effective Java》,是当今世界顶尖高手Josh Bloch的著作,在我之前的文章里我也提到过,编程就像练武,既需要外在的武功招

如切如磋,如琢如磨 1万+

中台战略-第五章、中台建设方法论

文章目录第五章、中台建设方法论5.1 中台架构整体策略5.2 业务顶层设计5.3 业务中台设计方法论5.3.1 能力支撑是基础5.3.2 中心自治是承载形式5.3.3 3层模型是骨架5.3.4 5步法是指导思想1. 业务抽象2. 高阶设计3. 组件建模4. 开发交付5. 持续运营5.4 数据中台设计方法论5.4.1 总体规划5.4.2 数据集成5.4.3 模型建设5.4.4 通用研发5.4.5 资产管理5.4.6 数据服务5.5 应用向中台迁移的3中途径和方法5.5.1 方法1:新应用替换旧应用5.5.2

沧海之巅的专栏 1461

Effective Java 第三版笔记(目录)

《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。 读书笔记 第1章 介绍 (Introduction) 第2章 创建和销毁对象(Creating and Destroying...

weixin_30729609的博客 137

【PINN物理信息网络】基于PINN物理信息网络求解圆柱坐标中的热方程(python)

【PINN物理信息网络】基于PINN物理信息网络求解圆柱坐标中的热方程(python)

k8291121的博客 2273

AFSim2.9.0学习笔记 —— 4.1、创建项目,以此项目介绍工作中Wizard使用(红方/蓝方武器平台、阵营、更换图标等,多图详细介绍)

AFSim2.9.0学习笔记 —— 4.1、创建项目,以此项目介绍工作中Wizard使用(红方/蓝方武器平台、阵营、更换图标等,多图详细介绍)

2252

《Effective Java》第三版中文翻译项目教程

《Effective Java》第三版中文翻译项目教程 1. 项目的目录结构及介绍 《Effective Java》第三版中文翻译项目的目录结构如下: effective-java-3rd-chinese/ ├── README.md ├── SUMMARY.md ├── book.json ├── docs/ │ ├── 01.md │ ├── 02.md │ ├── ... │ ...

gitblog_00483的博客 400

Dify 第 2 篇 Dify 插件离线安装

Dify是一个支持插件扩展的AI平台,其插件市场提供5种类型插件(模型、工具、Agent策略、扩展、插件包)。由于默认pip安装速度慢,可通过dify-plugin-repackaging工具将插件转换为离线包(使用阿里云镜像加速)。该工具提供两种方式:1)自备Python环境执行脚本;2)使用Docker环境(推荐)。脚本支持从Dify市场或GitHub下载插件,并重新打包为含依赖的离线包,便于通过"本地插件"方式快速安装。

甘蓝的专栏 1264

Effective Java(第3版)总结

创建和销毁对象 1、用静态工厂方法代替构造器 2、遇到多个构造器参数时要考虑使用构建器 3、用私有构造器或者枚举类型强化Singleton属性 4、通过私有构造器强化不可实例化的能力 5、优先考虑依赖注入来引用资源 6、避免创建不必要的对象 7、消除过期的对象引用 8、避免使用终结方法和清除方法 9、try-with-resources优先于try-finally 对于所有对象都通用的方法 10、覆盖equals时请遵守通用约定 11、覆盖equals时总要覆盖hashCode 12、始终要覆盖toStr.

chenjingwo4的博客 485

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

《Effective Java(第三版)》笔记

本文提供了《Effective Java》第3版的思维导图和相关资源链接。思维导图分为三部分,分别对应第1-4章、第5-8章和第9-12章的内容,帮助读者快速梳理和掌握书中的核心知识点。此外,文章还提供了该书的源码链接,方便读者深入学习和实践。这些资源为Java开发者提供了高效的学习工具,助力提升编程技能。

千里之行,始于足下 606

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Effective Java3 目录

第三版目录第1章第2章创建和销毁对象1  考虑用静态工厂方法替换构造器2  当遇到多个构造器参数时考虑用构建器(建造者)替换3  用私有构造器或者枚举类型强化单例属性4  通过私有构造器强化不可实例化的能力5  依赖注入优先硬连接资源  @6  避免创建不必要的对象7  消除过期的对象引用8  避免使用终结方法和清理器9  try-with-resources优先try-finally  @第3章...

netnewlife的专栏 1530

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Effective Java 第三版 中文翻译

effective-java-third-edition 介绍 Effective Java 第三版全文翻译,纯属个人业余翻译,不合理的地方,望指正,感激不尽! 目录 推荐序 前言 致谢 第一章 引言 第二章 创建和销毁对象   本章涉及创建和销毁对象,包括何时以及如何创建它们,何时以及如何避免创建它们,如何确保它们被及时销毁,以及如何管理在销毁之前必须进行的清理操作。 第1项:考虑静态工...

Coloured_Glaze的博客 3861

Java之父都需要的《Effective Java中文版(第3版)》到底有多牛

本书重点讲述了Java5所引入的全新的泛型、枚举、注解、自动装箱、for-each 循环、可变参数、并发机制,还包括对象、类、类库、方法和序列化这些经典主题的全新技术与最佳实践,以及如何避免Java编程语言中常被误解的细微之处:陷阱和缺陷,并重点关注了Java语言本身和最基本的类库( java.lang、java.util) 和一些扩展( java.util.concurrent和java.io等)。添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)

代码界的扛把子 301

【亲测免费】 Effective-Java 第三版中英文双语版教程

本项目是Joshua Bloch所著的《Effective Java》第三版的中英文双语版本。该书是Java编程领域的经典之作,涵盖了Java编程的众多最佳实践和技巧。通过阅读本书,开发者可以深入了解Java语言的特性和最佳实践,提升编程技能。 ## 项目快速启动 ### 克隆项目 首先,克隆项目到本地: ```bash git clone https://github.com/clxer...

gitblog_00099的博客 900

java 8 stream_Java 高效编程(Effective Java)中文第三版

来源:sjsdfg/effective-java-3rd-chinese前 51 条来源:Effective Java, Third Edition《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了...

weixin_39762075的博客 263

Effective Java-目录

这里写自定义目录标题

yunli0的博客 683

Effective Java

为Java9更新的Java平台最佳实践的权威指南 自从上一个版本的Effective Java在Java 6发布后不久发布以来,Java已经发生了巨大的变化。这部备受赞誉的经典作品现在已经彻底更新,以充分利用最新的语言和图书馆功能。现代Java对多个范例的支持增加了对特定最佳实践建议的需求,本书提供了这些建议。 与以前的版本一样,《Effective Java》第三版的每一章都由几个“条目”组成,...

qq_27934465的博客 412

Effective Java 3rd Edition 中文版实战指南

Effective Java 3rd Edition 中文版实战指南 项目介绍 Effective Java 3rd Edition 中文版 是基于 Joshua Bloch 经典著作《Effective Java》第三版的中文翻译项目。这个开源项目旨在为中文读者提供高质量的学习资源,帮助Java开发者遵循有效且现代的编程原则和模式。它覆盖了从基本的对象创建到高级集合使用的各种实践建议,是提升J...

gitblog_01014的博客 751

Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25

Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 本文主要介绍了类和接口相关的内容

weixin_44453385的博客 883

Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule15~Rule19

Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule15~Rule19 本文主要介绍了类和接口相关的内容

weixin_44453385的博客 713
上一篇: Go语言程序设计(十七)并发编程
下一篇: Effective Java笔记(1)用静态工厂方法代替构造器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值