这78条来源于《Effective Java》一书,因中文版翻译得实在难道,我就只留了个目录。

创建和销毁对象

第1条:考虑用静态工厂方法代替构造器
第2条:遇到多个构造器参数时要考虑用构建器
第3条:用私有构造器或者枚举类型强化Singleton属性
第4条:通过私有构造器强化不可实例化的能力
第5条:避免创建不必要的对象
第6条:消除过期的对象引用
第7条:避免使用终结函数

对于所有对象都通用的方法

第8条:改写equals时请遵守通用约定
第9条:改写equals时总要改写hashCode
第10条:始终要改写toString
第11条:谨慎地改写clone
第12条:考虑实现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条:慎用可变参数(varargs)
第43条:返回零长度的数组或者集合,而不是null
第44条:为所有导出的API元素编写文档注释

通用程序设计

第45条:将局部变量的作用域最小化
第46条:for-each循环优先于传统的for循环
第47条:了解和使用类库
第48条:如果需要精确的答案,请避免使用float和double
第49条:原语类型优先于装箱的原语类型
第50条:如果其他类型更适合,则尽量避免使用字符串
第51条:了解字符串连接的性能
第52条:通过接口引用对象
第53条:接口优先于反射机制
第54条:谨慎地使用本地方法
第55条:谨慎地进行优化
第56条:遵守普遍接受的命名惯例

异常

第57条:只针对异常的条件才使用异常
第58条:对可恢复的条件使用受检异常,对编程错误使用运行时异常
第59条:避免不必要地使用受检的异常
第60条:尽量使用标准的异常
第61条:抛出与抽象相对应的异常
第62条:每个方法抛出的所有异常都要有文档
第63条:在细节消息中包含失败-捕获信息
第64条:努力使失败保持原子性
第65条:不要忽略异常

并发

第66条:同步访问共享的可变数据
第67条:避免过多同步
第68条:executor和task优先于线程
第69条:并发工具优先于wait和notify
第70条:线程安全性的文档化
第71条:慎用延迟初始化
第72条:不要依赖于线程调度器
第73条:避免使用线程组

序列化

第74条:谨慎地实现Serializable
第75条:考虑使用自定义的序列化形式
第76条:保护性地编写readObject方法
第77条:对于实例控制,枚举类型优先于readResolve
第78条:考虑用序列化代理代替序列化实例

java78条注意事项相关推荐

  1. 魔兽7.0服务器维护时间,关于魔兽7.0版本你一定要知道的60条注意事项

    <魔兽世界>7.0前夕补丁今日已正式上线,服务器也维护完成各位玩家可以直接登入游戏[详细]. 上线后你可能会惊奇发现,你所熟悉的系统全被大改了一遍(小编的DK完全玩不来了),不过别担心,N ...

  2. 架空输电线路进行登杆检测、巡检的8条注意事项

    架空输电线路检测.巡检一直是电力主管单位较为常见的一项工作,但还是要注意以下事项: 一. 在带电线路杆塔上工作,作业人员活动范围及所携带的工具.材料等,与带电导线的距离要严格符合安规要求: 二. 在带 ...

  3. 对计算机选购的注意事项,2021大学生选购电脑,8条注意事项!

    很多数码小白,都喜欢看网络视频,来获取电脑知识.Up想对你们说,网上都是虚拟的,水太深,你把握不住.所以今天这期视频,我就随便聊聊2021年大学生选购电脑的八条注意事项!请耐心看完,觉得有帮助就请加个 ...

  4. iOS上架的20条注意事项,避免App被拒

    从事过ios开发.app运营这一行业的朋友都知道,ios app上架审核比较严格的,经常会因为种种原因被拒.这次呢,小微就整理了iOS上架需要注意的事项,上架前尽量避免,争取一次提交审核成功,被拒打回 ...

  5. 自动化设备高压变频器维修11条注意事项

    生产型企业都会用到自动化设备,大型机床.机器人等,变频器都是重要控制系统,这些数控是不能出问题的.不过,一旦出了问题怎么呢? 高压变频器启动注意事项: 1.变频器的输入6kV电源高压开关必须待变频器给 ...

  6. 产品设计 | App功能设计的21条注意事项

    1.不要在没有流程图之就前开始设计或者画线框图 即便一个简单的 APP 也要有一个思虑周全的流程图,以确保在 APP 有合乎逻辑的.合理的导航结构.另一点值得关注的是确保核心功能所在的屏幕位于上层而不 ...

  7. 冷凝器胶球清洗装置的10条操作事项

    为保障冷凝器胶球清洗装置在一个稳定的环境下长久运行,就要随日常的一些操作事项有一个清楚的了解和认识. 水处理厂家江阴嘉一机电就给您介绍一下冷凝器胶球清洗装置的操作事项: 1.冷凝器胶球清洗装置工作范围 ...

  8. 和女生约会的30条注意事项

    1.之前聊天或者约会的结果,并不能被当下这次约会继承.也就是说,每一次的约会,都应该抱着和女生从零开始的心态,摆正自己的心里预期. 2.跟陌生的女生约会,去自己熟悉的地方.和熟悉的女生约会,去比较陌生 ...

  9. 大型软件交付项目注意事项53条

    [中年老码农]点击右上方关注,一个工作10多年的老码农,除了每天写代码,传播行业体会,分享人生百态, 感受生活的善意. 今天分享一篇我同事整理的IT专业文章,有需要的可以收藏. 软件分类有好几种方法, ...

最新文章

  1. colsure php_PHP Closure(闭包)类详解
  2. linux docker 跑代码_使用Docker 搭建自动化测试环境
  3. web.py搭建服务器
  4. DeepMind丢掉了归一化,让图像识别训练速度提升了8.7倍 | 已开源
  5. ABAP设置输入焦点和表格控件行数的注意事项
  6. MYSQL学习笔记 (二)对数据库结构的增删改查
  7. distributed--根索引
  8. 树莓派——使用SDK定期备份本地文件到OSS(自用)
  9. 解决 Eclipse不支持tomcat9
  10. SU草图大师必备实用插件,拿走不谢!
  11. [swift] UIImage NSImage PNG透明区域填充自定义颜色实现
  12. 从键盘输入n个数 求其中的最大数
  13. 写给自己 NOI2012流水帐
  14. 某cpws - ciphertext加密与数据解密
  15. Linux开机启动过程-centos7
  16. HTML网页设计: 一 HTML的基本结构
  17. (转)如何彻底的卸载anaconda(包括配置文件)
  18. 怎么权衡不同类型项目的收益产出比 ROI?
  19. Spring | 深入理解面向切面编程(AOP)
  20. bdd100k数据标签格式转到VOC2007格式

热门文章

  1. ByteCTF 2021(Crypto部分)
  2. BeautifulSoup库使用
  3. python的protected和private
  4. Linux中如何使用Htop监控工具?【网络安全】
  5. 恶意代码实战Lab13-01分析
  6. python实时得到鼠标的位置
  7. 009 Android之ContentProvider
  8. 统计用户在某一页停留的时间
  9. 129. 火车进栈【栈】
  10. two pointers