Effective Java 78条

最新载学习Effective java,做一个简单的记录

1: 考虑用静态工厂方法代替构造器;

 2: 遇到多个构造器参数时要考虑用构建器;

 3: 用私有构造器或者枚举类型强化Singleton属性;

 4: 通过私有构造器强化不可实例化的能力;

 5: 避免创建不必要的对象;

 6: 消除过期的对象引用;

 7: 避免使用终结方法;

 8: 覆盖equals时请遵守通用约定

       五大通用约定: 自反性,对称性,传递性,一致性,非空性。

       实现equals的几个小诀窍:

            1): 使用 == 操作符检查“参数是否为这个正确的类型”

            2): 使用instanceof操作符检查“参数是否为正确的类型”

            3): 把参数转换为正确的类型

            4): 对应该类型中的每个“关键” 域,检查参数中的域是否与该对象中的对应的域相匹配。

            5): 当前编写完成了equals方法之后,应该问自己三个问题: 它是否对称的,传递的,一致的。

       三个告诫:
         ---》覆盖equals时总要覆盖hashCode。

         ---》不要企图让equals方法过于智能。

         ---》不要将equals声明中的Object对象替换为其他的类型

 9: 覆盖equals时总要覆盖hashcode

10:   始终要覆盖toString函数

 11:  谨慎的覆盖clone

 12:考虑实现Comparable接口

 13:使类和成员的可访问最小化

 14:在公用类中使用公用方法而非公有域

 15:使可变性最小化

 16:复合优先于继承

 19:接口只用于定义类型

 20:类层次优于标签类

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值