![](https://img-blog.csdnimg.cn/20201009182853674.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
《Effective_Java》学习笔记
第三版的学习笔记,包括对原著的概括、理解,示例代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。
花落的速度
whatever is worth doing is worth doing well
展开
-
《Effective Java》学习笔记15--25
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch和各路翻译者们,以及为我提供可参考博文的博主们。 复制粘贴改格式好累,这几篇全都给出git地址,大家自己download下来看好了。或者想直接在浏览器上看可以考虑用这个名叫OctoTree的插件。安装教程网上大把,...原创 2019-04-12 17:50:02 · 239 阅读 · 0 评论 -
《Effective Java》学习笔记14 考虑实现Comparable接口
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch和各路翻译者们,以及为我提供可参考博文的博主们。 考虑实现Comparable接口 Comparable接口 {@link Comparable#compareTo(Object)}方法虽然非常常用,但并没有...原创 2019-04-12 16:30:26 · 280 阅读 · 0 评论 -
《Effective Java》学习笔记13 Override clone judiciously
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch和各路翻译者们,以及为我提供可参考博文的博主们。 谨慎地重新clone()方法 Cloneable接口 Cloneable接口与其他接口不同,它里面啥都没有,仅仅是为了表示该类可以被克隆。所有单独只有它自己,还...原创 2019-04-12 15:53:02 · 446 阅读 · 0 评论 -
《Effective Java》学习笔记12 Always override toString
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch和各路翻译者们,以及为我提供可参考博文的博主们。 推荐重写toString() 建议在所有类中都重写toString方法。 为什么要重写它 虽然在Object.toString()有其默认的实现方法,会返回"...原创 2018-08-08 17:04:16 · 297 阅读 · 0 评论 -
《Effective Java》学习笔记11 Always override hashCode when you override equals
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch和各路翻译者们,以及为我提供可参考博文的博主们。 重写equals()方法的同时也要重写hashCode()方法 必须在每个重写equals()的类中重写Object.hashCode(),否则将违反hashCo...原创 2018-08-08 11:42:20 · 288 阅读 · 0 评论 -
《Effective Java》学习笔记10 Obey the general contract when overriding equals
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch和各路翻译者们,以及为我提供可参考博文的博主们。 覆盖equals方法时应遵守通用规约 不需要覆盖equals的情景 equals方法是Object类自带的基本方法之一,也是一个非常常用的方法。我们覆盖它时应当...原创 2018-08-01 16:32:26 · 366 阅读 · 0 评论 -
《Effective Java》学习笔记9 Prefer try-with-resources to try-finally
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch和各路翻译者们,以及为我提供可参考博文的博主们。 try-with-resources代替try-finally 许多资源使用完毕后需要用CLOSE方法手动关闭,例如InputStream、OutputStre...原创 2018-08-01 15:37:54 · 357 阅读 · 3 评论 -
《Effective Java》学习笔记8 Avoid finalizers and cleaners
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch跟以杨春花为首的译者团队,以及为我提供可参考博文的博主们。 避免使用终结方法 Java中,GC虽然能够自动处理很多事情,但是比如来自其他编程语言所占资源的回收,是GC难以自动完成的,这时候或许需要借助额外的手段解...原创 2018-08-01 15:22:09 · 364 阅读 · 0 评论 -
《Effective Java》学习笔记7 Eliminate obsolete object references
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch跟以杨春花为首的译者团队,以及为我提供可参考博文的博主们。 消除过期对象引用 相较C或者C艹这种需要手动回收资源的语音,Java的GC(Gabage Collector)帮我们偷了个大懒,对象用完之后会被GC自动...原创 2018-08-01 13:58:06 · 537 阅读 · 0 评论 -
《Effective Java》学习笔记6 Avoid creating unnecessary objects
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch跟以杨春花为首的译者团队,以及为我提供可参考博文的博主们。 避免创建不必要的对象 很容易理解的一条,无论是环保还是编程,重用都可以节省开销,降低成本,提高效率。所以能够重用已创建的实例时,就不用再重新new一个出...原创 2018-08-01 11:14:09 · 337 阅读 · 0 评论 -
《Effective Java》学习笔记5 Prefer dependency injection to hardwiring resources
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch跟以杨春花为首的译者团队,以及为我提供可参考博文的博主们。另外,本条目是《Effective Java 3rd Edition》中的新条目,此后笔记多基于新一些的第三版。 用依赖注入代替硬编码 硬编码 首先说明...原创 2018-08-01 10:52:40 · 548 阅读 · 0 评论 -
《Effective Java》学习笔记4 Enforce noninstantiability with a private constructor
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch跟以杨春花为首的译者团队。 通过私有构造器强化不可实例化的能力 很多情况下我们需要整个工具类出来以方便我们编程,比如Android中,为了防止使用Toast忘记show()一下,会把完整的Toast.make...原创 2018-08-01 10:29:25 · 474 阅读 · 0 评论 -
《Effective Java》学习笔记3 Enforce the singleton property with a private constructor or an enum
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch跟以杨春花为首的译者团队,以及为我提供可参考博文的博主们。 用私有构造器或者枚举类型强化Singleton属性 单例Singleton一般被用来表示程序中本质上唯一的实例。单例的测试有些困难,因为不能用模拟实现...原创 2018-08-01 10:08:29 · 284 阅读 · 0 评论 -
《Effective Java》学习笔记2 Consider a builder when faced with many constructor parameters
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错&运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch跟以杨春花为首的译者团队。 遇到多个构造器参数时要考虑用构建器 一般当我们需要多个可选参数时,会这样做: public class BadNutritionFacts { private...原创 2018-07-16 15:37:38 · 249 阅读 · 0 评论 -
《Effective Java》学习笔记1 Consider static factory methods instead of constructors
本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错&运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch跟以杨春花为首的译者团队。 静态工厂方法代替构造器 写在前面,并不是说从今以后舍弃构造方法,一律静态工厂,这两者各有千秋,应仔细理解其各自优势。 静态工厂方法与构造器相比,优势在于: 1....原创 2018-07-16 02:06:32 · 252 阅读 · 0 评论