第三章 对于所有通用的方法

主要讲的是对Object类的非final方法(equals,hashCode,toString,clone和finalize)覆盖的一些规则

1.覆盖equals时请遵守通用约定(item 8)

  1.1 这一个item讲了一些比较抽象的定义,比如自反性,对称性等。不太好理解,感觉执行起来也有一定难度。因为java提供的api中也有几个是违反了这些原则的。我想可能是类似于淘宝之类的大公司才会很严格的执行?没看不知道覆盖equals这么难。难怪文章开头说为了避免这些问题,就不要去覆盖equals。但是,对于一些逻辑相等(logical equality)的比较还是得覆盖的。

  1.2 单例模式的类不用覆盖equals方法

  1.3 这里提到了item16的要复合优先于继承,让equals覆盖不太复杂。比如ColorPoint不是继承Point,而是让Point做为ColorPoint的一个私有域(即私有成员变量),以及一个公有的视图(View,我觉得就是我们平时写的getter方法)

转载于:https://www.cnblogs.com/baron89/archive/2013/01/07/2849313.html

Effective Java 读书笔记----第三章相关推荐

  1. java虚拟机读书笔记 第三章 垃圾收集器和内存分配策略

    java虚拟机读书笔记 第三章 垃圾收集器和内存分配策略 GC需要完成的三件事情:哪些内存需要回收.什么时候回收.如何回收 垃圾回收器在对堆进行回收前,首先要确定那些对象存活,哪些对象已经死去,判断的 ...

  2. Android群英传神兵利器读书笔记——第三章:Android Studio奇技淫巧

    Android群英传神兵利器读书笔记--第三章:Android Studio奇技淫巧 这篇文章篇幅较长,可以使用版权声明下面的目录,找到感兴趣的进行阅读 目录 3.1 Android Studio使用 ...

  3. Effective Java读书笔记(二)

    Effective Java 读书笔记 (二) 创建和销毁对象 遇到多个构造器参数时要考虑使用构建器 创建和销毁对象 何时以及如何创建对象? 何时以及如何避免创建对象? 如何确保它们能够适时地销毁? ...

  4. Effective Java 读书笔记(七):通用程序设计

    Effective Java 读书笔记七通用程序设计 将局部变量的作用域最小化 for-each 循环优于传统的 for 循环 了解和使用类库 如果需要精确的答案请避免使用 float 和 doubl ...

  5. 计算机系统导论第九章,计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新)...

    计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新) 第三章 程序的机器级表示 3.1 历史观点 3.2 程序编码 1. 命令行 (1)编译 Linux> gcc -Og ...

  6. Effective Java读书笔记三:创建和销毁对象

    第1条:考虑用静态工厂方法代替构造器 对于类而言,为了让客服端获得它的一个实例最常用的的一个方法就是提供一个公有的构造器.还有一种方法,类可以提供一个公有的静态工厂方法(static factory ...

  7. Effective Java读书笔记完结啦

    Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. ...

  8. 《深入理解计算机系统》(CSAPP)读书笔记 —— 第三章 程序的机器级表示

    本章主要介绍了计算机中的机器代码--汇编语言.当我们使用高级语言(C.Java等)编程时,代码会屏蔽机器级的细节,我们无法了解到机器级的代码实现.既然有了高级语言,我们为什么还需要学习汇编语言呢?学习 ...

  9. python第三章上机实践_《机器学习Python实践》读书笔记-第三章

    <机器学习Python实践>,第三章,第一个机器学习项目 以往目录:橘猫吃不胖:<机器学习Python实践>读书笔记-第一章​zhuanlan.zhihu.com 书中介绍了一 ...

最新文章

  1. Eclipse Neon 配置C/C++开发环境
  2. word-break 对一个字符串根据给出的字典判断是否可以根据字典切分(DP问题)
  3. 其他系统 对外接口设计_外观模式:统一接口 VS.暴露细节
  4. html文本添加超链接就换行,HTML - SegmentFault 思否
  5. 学生选课管理系统 选课信息管理系统管理端
  6. 网站在线监控工具Uptime Kuma
  7. ansible远程在Windows server 2012 R2 安装vcredist(2008 2010 2012 2013)
  8. Python图像处理(Pillow/PIL)入门
  9. Teamviewer Install
  10. Weclome to Thm-V九维空间
  11. fatal error LNK1120: 1 个无法解析的外部命令 的解决办法
  12. load语句报分区could not be cleaned up
  13. 解决Docker 一直starting 的办法
  14. 【踩坑日记】阿里云内容安全
  15. 抢先体验 Ubuntu 22.04 Jammy Jellyfish
  16. Redis学习笔记~Redis事务机制与Lind.DDD.Repositories.Redis事务机制的实现
  17. CentOS是什么服务器系统
  18. 《Web前端设计与开发》实验三:HTML+CSS综合实验
  19. IOT平台架构设计思路
  20. 如何让谷歌浏览器支持小字体?

热门文章

  1. 安装apr和tomcat-native优化tomcat
  2. 为应用程序增加文件压缩功能
  3. linux脚本case语句,shell中的case语句,数组及函数
  4. FPGA的IP软核、硬核以及固核
  5. Vivado Hardware Manager的使用
  6. github使用教程及小问题
  7. python 调用微软语音合成并保存为wav
  8. pytorch移动端教程 Java调用libtorch
  9. 代码荣辱观-以运用风格为荣,以随意编码为耻
  10. 华山论剑之浅谈iOS的生产线 工厂模式