Effective Java - 通过接口引用对象

2022-08-18  本文已影响0人  DZQANN

第63条 注意字符串拼接的性能

  1. 重复地使用字符串拼接操作符来拼接n个字符串,需要n的平方级的时间
  2. 为了获得可以接受的性能,请使用StringBuilder代替String

思考

  1. 如果是循环拼接字符串的话,需要使用StringBuilder。如果是O(1),及时使用了StringBuilder,IntelliJ也是会推荐直接使用"+"拼接的

第64条 通过接口引用对象

  1. 如果有合适的接口类型存在,那么对于参数、返回值、变量和域来说,就都应该使用接口类型进行声明

    // Good - uses interface as type
    Set<Son> sonSet = new LinkedHashSet<>();
    
    // Bad - uses class as type!
    LinkedHashSet<Son> sonSet = new LinkedHashSet<>();
    
  1. 如果没有合适的接口存在,完全可以使用类而不是接口来引用对象

  2. 如果没有合适的接口,则使用类层次接口中提供了必要功能的最基础的类

思考

  1. 使用接口,如果替换了接口的实现,需要注意是否依赖了原接口的特性。比如从LinkedHashMap变为了HashMap之后,需要检查逻辑是否依赖了顺序
上一篇下一篇

猜你喜欢

热点阅读