`
cobo85
  • 浏览: 115191 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java编程法则

阅读更多

      这个是在网上看到的,是提高代码质量应该参照的准则,就转帖过来,以备随时查阅。

 

    一、创建和销毁对象


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


 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.慎用可变参数
 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.谨慎的实现Seriallizable接口
 75.考虑使用自定义的序列化形式
 76.保护性的编写readObject方法
 77.对于实例控制,枚举类型优先于readResolve
 78.考虑用序列化代理代替序列化实例

分享到:
评论

相关推荐

    java程序集体规范法则

    主要是用于描述java中程序是如何作到规范的,虽然简单但是很有用,对各位书写程序养成一个良好的习惯有很的益处。

    Java八股文,面试中的黄金法则!

    这些问题旨在评估应聘者的Java编程能力和技术水平。 Java八股文的核心功能包括Java基础、Java高级、设计模式、数据结构与算法、框架技术等。这些知识点是Java开发的基础,掌握这些知识点有助于在面试中应对各种问题...

    Java数据库编程宝典3

    1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式化 1.2 高级语言 1.2.1 结构化查询语言 1.2.2 数据定义语言 1.2.3 数据处理语言 1.2.4 数据查询语言 ...

    java应用软件程序设计

    195 第6章 Java C/S结构编程 197 实例67 实现C/S多线程 198 实例68 客户端程序 200 实例69 服务器端程序 201 实例70 C/S结构聊天室 203 实例71 基于C/S的小游戏 209 实例72 应用C/S数据库 237...

    Java 课程设计 程序代码

    Java 课程设计 程序代码 一共包含15个不同的程序系统 目录 第1章 记忆测试软件 1.1. 设计内容 1.2. 设计要求 1.3. 总体设计 1.4. 具体设计 1.4.1. 运行效果与程序发布 1.4.2. 主类Memory 1.4.3. 方块 Block 1.4.4. ...

    Java高级程序设计实战教程第一章-Java编码规范.pptx

    Java高级程序设计 第1章 Java编码规范 1.1 应用场景1.2 相关知识1.3 任务实施1.4 拓展知识1.5 拓展训练1.6课后小结 Java高级程序设计实战教程第一章-Java编码规范全文共13页,当前为第1页。 1.1 应用场景 一个大型的...

    3设计克莱姆法则计算程序的三种思想及C程序_智东杰

    克莱姆方法解线性方程组讨论,这个是正规网站的优秀论文,希望对大家有用!

    effactive java 第二版

    你是否正在寻找一本能够更加深入地了解Java编程语言的书,以便编写出更清晰、更正确、更健壮且更易于重用的代码。不用找了!本书为我们带来了共78条程序员必备的经验法则,针对你每天都会遇到的编程问题提出了最有效...

    Java基础单词

    Java编译程序 38. println n. 换行打印(Java语言中的命令) 39. edit ['edɪt] vt. 编辑;校订; 40. standard ['stændəd] n. 标准 41. edition [ɪ'dɪʃ(ə)n] n. 版本 42. micro ['maɪkrəʊ] adj....

    Java面向对象程序设计杨晓燕面向对象基本原则和模式.pptx

    第1页/共30页 Java面向对象程序设计杨晓燕面向对象基本原则和模式全文共30页,当前为第1页。 类的UML图 UML类图显示类的三个组成部分,第一是Java中定义的类名,第二个是该类的属性,第三个是该类提供的方法。 第一...

    Java课程设计(代码+清单)

    MakeJPEG.java 4.5. 课程设计作业 第5章 标准化考试系统 (单机版) 5.1. 设计内容 5.2. 设计要求 5.3. 总体设计 5.4. 具体设计 5.4.1. 运行效果与程序发布 5.4.2. 主类EnglishTest 5.4.3....

    计算机编程的24条法则

    计算机编程的24条法则

    JavaAssignment2:Java 编程 - 作业 2

    Java 编程概论 (COMP 30580) 作业 2 (10%) 提交截止日期:11 月 29 日星期五下午 6 点 对于以下每个问题,您需要编写一个 Java 程序(在名为 Q1.java、Q2.java 的源文件中,等),从 eclipse 编译并运行它。...

    Java的设计模式编程中迪米特法则的应用示例

    主要介绍了Java的设计模式编程中迪米特法则的应用示例,迪米特法则中主张创建和使用弱耦合的类,需要的朋友可以参考下

    java初学者福音

    一些面向对象的设计法则 java环境变量设置 Java初学者需掌握的30个基本概念 编写Java程序最容易犯的21种错误

    Java数据库编程宝典2

    1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式化 1.2 高级语言 1.2.1 结构化查询语言 1.2.2 数据定义语言 1.2.3 数据处理语言 1.2.4 数据查询语言 ...

    存取原则和PECS法则

    泛型存取原则和PECS法则 总结泛型中的“ ? extends” 和“? super” 通配符的特征,我们可以得出以下结论: 如果你想从一个数据类型里获取数据,使用 ? extends 通配符 如果你想把对象写入一个数据结构里,使用 ? ...

    Java数据库编程宝典4

    1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式化 1.2 高级语言 1.2.1 结构化查询语言 1.2.2 数据定义语言 1.2.3 数据处理语言 1.2.4 数据查询语言 ...

    Java数据库编程宝典1

    1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式化 1.2 高级语言 1.2.1 结构化查询语言 1.2.2 数据定义语言 1.2.3 数据处理语言 1.2.4 数据查询语言 ...

    Java进阶教程解密JVM视频教程

    JVM 是 Java 程序的运行环境,学习 JVM,方能了解 Java 程序是如何被执行的,为进一步深入底层原理乃至程序性能调优打好基础。通过学习这门课程,你将掌握:1. JVM 内存结构的组成、各部分功能作用,学会利用内存...

Global site tag (gtag.js) - Google Analytics