Effective Java开篇-规约清单
来源:互联网 发布:手机淘宝口令红包 编辑:程序博客网 时间:2024/06/06 18:42
此书中的很多规约是需要用心去体会的,在此做一个开篇,后续会有针对每条规约中的要点总结的文章,待更~
创建和销毁对象1. 考虑用静态工厂方法代替构造器2. 遇到多个构造器参数时要考虑用构建器3. 用私有构造器或者枚举类型强化Singleton属性4. 通过私有构造器强化不可实例化的能力5. 避免创建不必要的对象6. 消除过期的对象引用7. 避免使用终结方法对于所有对象都通用的方法8. 覆盖equals时请遵守通用约定9. 覆盖equals时总要覆盖hashCode10. 始终要覆盖toString11. 谨慎地覆盖clone12. 考虑实现Comparable接口类和接口13. 使类和成员的可访问性最小化14. 在公有类中使用访问方法而非公有域15. 使可变性最小化16. 复合优先于继承17. 要么为继承而设计,并提供文档说明,要么就禁止继承18. 接口优于抽象类19. 接口只用于定义类型20. 类层次优于标签类21. 用函数对象表示策略22. 优先考虑静态成员类泛型23. 请不要在新代码中使用原生态类型24. 消除非受检警告25. 列表优先于数组26. 优先考虑泛型27. 优先考虑泛型方法28. 利用有限制通配符来提升API的灵活性29. 优先考虑类型安全的异构容器枚举和注解30. 用enum代替int常量31. 用实例域代替序数32. 用EnumSet代替域33. 用EnumMap代替序数索引34. 用接口模拟可伸缩的枚举35. 注解优于命名模式36. 坚持使用Override注解37. 用标记接口定义类型方法38. 检查参数的有效性39. 必要时进行保护性拷贝40. 谨慎设计方法签名41. 慎用重载42. 慎用可变参数43. 返回零长度的数组或者集合,而不是null44. 为所有导出的API元素编写文档注释通用程序设计45. 将局部变量的作用域最小化46. For-each循环优于传统的for循环47. 了解和使用类库48. 如果需要精确的答案,请避免使用float和double49. 基本类型优先于装箱基本类型50. 如果其他类型更适合,则尽量避免使用字符串类型51. 当心字符串连接的性能52. 通过接口引用对象53. 接口优先于反射机制54. 谨慎地使用本地方法55. 谨慎地进行优化56. 遵守普遍接受的命名惯例异常57. 只针对异常的情况才使用异常58. 对可恢复的情况使用受检异常,对编程错误使用运行时异常59. 避免不必要地使用受检的异常60. 优先使用标准的异常61. 抛出与抽象相对应的异常62. 每个方法抛出的异常都要有文档63. 有细节消息中包含能捕获失败的消息64. 努力使失败保持原子性65. 不要忽略异常并发66. 同步访问共享的可变数据67. 避免过度同步68. executor和task优先于线程69. 并发工具优先于wait和notify70. 线程安全性的文档化71. 慎用 延迟初始化72. 不要依赖于线程调度器73. 避免使用线程组序列化74. 谨慎地实现Serializable接口75. 考虑使用自定义的序列化形式76. 保护性地编写readObject方法77. 对于实例控制,枚举类型优先于readResolve78. 考虑使用序列化代理代替序列化实例
阅读全文
0 0
- Effective Java开篇-规约清单
- 死磕《Effective Java中文版》-开篇
- java规约
- java规约
- JAVA编程规约之命名规约
- java项目工程规约
- java项目数据库规约
- java项目日志规约
- java项目服务规约
- java项目编程规约
- 阿里Java规约插件
- 阿里巴巴 Java 开发规约
- JAVA单元测试规约
- 学习effective java-8对所有对象共同的方法之覆写equals方法时请遵从一般规约
- java开篇
- 阿里巴巴Java规约学习-foreach
- 关于Java中的编程规约
- 阿里巴巴 JAVA 开发手册-编程规约-命名规约
- jar包结构
- python匿名函数:lambda
- 关于机器学习,你应该至少学习这8个落地案例|干货集锦
- 比12306快!用Python写一个火车票查看器~
- android 倒计时分秒
- Effective Java开篇-规约清单
- js操作下拉框选中的值
- 绑定域名直接访问javaweb项目首页
- Jsoup官方教程(二)【输入】
- 万树IT:Net学习大总结(三)
- $.ajax $.get $.post使用问题总结
- Java实现的归并排序算法(递归优化版)
- 关于poi解析word和excel的问题,解析word中的table,获取部分table的行数和列数不正确
- 40G QSFP+ SR4单纤模块简介