读书笔记
文章平均质量分 69
成富
全栈工程师,写手,码农
14年全栈软件开发经验。
出版书籍《Quarkus云原生微服务开发实战》《深入理解Java 7:核心技术与最佳实践》,《Build Mobile Apps with Ionic 4 and Firebase》和《Exploring Java 9》 ,并在IBM developerWorks中国和InfoQ中文站发表技术文章百余篇。
展开
-
Effective Java学习笔记(四)
第2章 类和接口(Classes and Interfaces)1 最小化类和成员的可访问性(Minimize the accessibility of classes and interfaces)衡量一个模块好坏的一个重要标准就是该模块对其它模块隐藏内部数据和实现细节的程度。经验规则就是尽可能的让类或成员的可访问度越低越好。保护成员也是输出的API的一部分。需要保原创 2005-08-08 12:42:00 · 1246 阅读 · 0 评论 -
Effective Java学习笔记(五)
第5章 替换C中的结构(Replace structures with classes)19 使用类替换C中的结构体只包含数据域(data field)的退化的Java类基本上等同于C中的结构体。公有的类不应该把其内部的数据域暴露出来,而是应该进行封装。如果一个类是包私有的或是一个私有的嵌套类,直接暴露其数据域并没有什么问题。 20 使用类继承结构替换联原创 2005-08-05 10:22:00 · 988 阅读 · 0 评论 -
Effective Java学习笔记(七)
第7章 通用编程(General Programming)19 最小化局部变量的作用范围(Minimize the scope of local variables)通过最小化局部变量的作用范围,可以提高代码的可读性和可维护性和减少出错的可能性。最强有力的最小化局部变量作用范围的技术是当其首次使用时才定义它。几乎所有的局部变量的定义都要包含初始值。例外的情况是当初始化原创 2005-08-08 08:42:00 · 1051 阅读 · 0 评论 -
Effective Java学习笔记(十)
第5章 序列化19 谨慎的实现Serializable接口(Implement Serializable judiciously)实现Serializable接口的代价有:当类被发布之后,改变该类的内部实现的灵活性降低了;增加了出错的可能和安全漏洞;当发布类的新版本时,测试的负担增大了,因为需要保证新类与旧类是互相可序列化的。实现Serializable接口不是一个原创 2005-08-08 08:45:00 · 1111 阅读 · 0 评论 -
Effective Java学习笔记(六)
第5章 方法(Methods)19 检查参数合法性(Check parameters for validity)应该尽早的检查错误。对公共的方法,使用Javadoc的@throws标签来说明如果对参数值的约束被违反时将抛出什么异常。对于非公共的方法,通常使用断言来检查参数。对于那些把参数存起来以备后续使用的方法来说,检查参数的合法性尤其重要。否则会使得调试工作更加复杂原创 2005-08-05 12:52:00 · 978 阅读 · 0 评论 -
Effective Java学习笔记(八)
第5章 异常(Exceptions)19 只在异常的情况下使用异常(Use exceptions only for exceptional conditions)异常只应该使用在异常情况下,而决不应该用作通常的控制流。一个设计良好的API不应该强制其客户使用异常来用作通常的控制流。一个包含了只能在特定状态下调用的方法的类通常有一个状态检测的方法来判断是否适合调用上述方原创 2005-08-08 08:40:00 · 1178 阅读 · 0 评论 -
Effective Java学习笔记(九)
第9章 线程(Threads)48 同步对共享可变数据的访问(Synchronize access to shared mutable data)你可能认为应该避免在读取或写入原子数据时使用同步,以此来提高性能。这种想法是很错误的。原子性保证了一个线程在读取原子数据的时候不会看到随机的值,但是不能保证一个线程写入的值能被另一个线程看到。线程之间的可靠通讯也需要同步,而不仅仅是互斥操作的时候需要。V原创 2005-08-08 08:44:00 · 1089 阅读 · 0 评论 -
Effective Java学习笔记(三)
第2章 所有对象通用的方法(Methods common to all objects)1 重载equals时遵守通常的合约(Obey general contract when override equals)不需要重载equals的情况:1) 类的每个实例本来就是唯一的。采用Object的equals就可以了。2) 不在意类是否提供一个逻辑相等的测试。3)原创 2005-08-08 12:42:00 · 1583 阅读 · 0 评论