前言 2020给自己定下的一个Flag就是10本书。 范围不限,但是要求输出读书笔记。现在就是我2020开年读的第一本书的读书记笔记。 知道这本书纯粹是碰巧。看到别人2019年的年终总结推荐了这本书,挺感兴趣,就去书店借了这本书回来拜读。 这本书就是《学会提问》 直观感受 此书真的非常的枯燥无聊。 可能是我自己现在的心态比较浮躁, 并没有能够完整的阅读下来。 参考了秋叶大神在豆瓣上面的一段评论: 在美国这本书被推荐为大学生必修书目,所谓必修书目,往往就是学起来不轻松的意思。以掌握批判性思维并不容易,这不是赶时髦的事…

2020年01月14日 0条评论 273点热度 0人点赞 阅读全文

引言 这是《自控力》的读书笔记。 首先读完之后,最大的感觉, 自控力并不是一种玄学, 跟道德关系不大。 这是一门科学, 是可以被科学解释或者测量的。 算是人类的一种生理或者心理表现。 另外注意原版书的样子(如下图)。 最重要的是要注意 作者: 凯利·麦格尼格尔 。 出版社、封面可能都会有不同, 但是原作者跟翻译者, 请参考下图。 (我在图书馆被另外一个“金XX”写的也叫做《自控力》的书浪费了几天时间。 恨!) CH01 : 我要做, 我不要, 我想要 -- 什么是意志力?为什么以质量至关重要 阅读之后, 我发现, …

2018年05月20日 0条评论 4579点热度 3人点赞 阅读全文

Item 45: 将局部变量的作用域最小化 书说: 推荐在第一次使用这个局部变量的时候才初始化。如果初始化的条件还不足,说明还没到时候初始化。例外: try-catch Item 46: for-each 优于for循环与while循环 主要是for-each 的代码看起来更加简洁, 效率稍微提高。 Item 49: 基本类型优于装箱类型 我觉得看stackoverflow的这一篇帖子说得更清楚一些: http://stackoverflow.com/questions/5199359/why-do-people-…

2017年03月16日 0条评论 10014点热度 0人点赞 阅读全文

Item 38: 检查参数的有效性 比较推荐的做法是,在方法体的开头或者在构造函数之中就对参数进行有效性检查。尽早的检查,对调试的帮助越大。 在文中出现提到了java的断言(Assertions)机制。 正确使用Assert的方法应该是: 可以在方法体的开头的地方进行有效性检查 普通的运行方法,断言不会起作用(会直接略过)。除非在运行的时候加上参数:-ea / -enableassertaions。 通常Assert的代码不应该在Production代码之中,只会出现在debug/test/dev的阶段。 除非参数…

2017年03月13日 0条评论 8241点热度 1人点赞 阅读全文

个人认为本章比较重要的有下面几个Item: Item 30:  使用enum代替int Item 32: 使用EnumSet 代替bit field Item 35: 注解优先于命名模式 其他几个Item可能学习不是那么深刻,并没深入记录。 本文原创, 原文地址:http://www.flyml.net/2017/03/09/effective-java-ch6-enum-annotation   Item 30: 使用enum代替int (Enum初步介绍) 虽然直译过来是"使用enum代替int", …

2017年03月09日 0条评论 7148点热度 0人点赞 阅读全文

Item 13: 使类及其成员的可访问性最小 除非真的有必要, 否则不要让外界能访问这个类或者成员变量。 因此, 再复习一下Java之中几种访问级别: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × package √ √ × × private √ × × × 没有修饰符的时候, 默认为package级别。 当我们覆盖了父类的某个方法的时候, 不能使其访问级别提高。 比如原来是protected, 不能升级成为public。 一种不…

2017年02月16日 0条评论 6821点热度 0人点赞 阅读全文

在《[读书笔记]《Effective Java》第二章》[http://www.flyml.net/2017/02/05/effective-java-chapter-1/] 的Item2 提到: 使用builder替代多个参数的constructor 正好, 我要基于Selenium WebDriver 写一个爬虫。因为实际情况不一样, 有的时候需要使用不同的userAgent, 比如模拟移动浏览器, 有的时候需要挂不同的代理。 而且, 未来还很有可能通过更多的参数构建不同的WebDriver实例。其中,最重要的…

2017年02月09日 0条评论 8180点热度 0人点赞 阅读全文

本章概括 本章包括以下几个Item: Item 8: 覆盖equals请遵守通用规定 Item 9: 覆盖equals时一定要覆盖hashCode Item 10: 始终要覆盖toString() Item 11: 谨慎的覆盖clone Item 12: 考虑实现Comparable接口 由于个人的工作原因, 在实际工作之中, 仅仅接触过#3与#5, 从未考虑过覆盖equals() 与 clone(), 因此这一章只读了 #3与#5 Item 10 : 始终要覆盖toString() 忽然发现, 这真的是一个非常方…

2017年02月06日 0条评论 6705点热度 2人点赞 阅读全文

Item 1: 使用静态工厂方法而不是构造函数 优势: 有名字 比如BigInteger.probablePrime() 一看就知道是返回一个BigInteger素数. 比较不好的做法是构造函数的重载, 通过修改参数的顺序达到不同的功能 不需要每次都创建新的对象. 比如如下代码: [crayon-5e8cb4ebcb98c459207253/]   如果创建类的开销比较大, 那么对性能的提升就更明显了 能返回的类型选择更多, 不一定是当前类的类型 这一点非常好理解~ 在创建参数化类型实例的时候, 代码会更…

2017年02月05日 1条评论 6803点热度 2人点赞 阅读全文