四、OOP规约(Object Oriented Programming,面向对象设计)

1、静态变量和静态方法直接用类名访问,不要再new 对象去访问

2、方法覆盖必须加@Override注解

3、尽量不要用可变参数做参数列表,尽量不要用Object作为参数类型

4、老方法接口不要轻易删除或修改,你永远不知道以前是给谁用的,现在还有没有在用

5、equals用法新技能:java.util.Objects.equals(Object a,Object b)

老方法:.equals()的调用者优先用常量或确定有值的对象(放前面)

6、所有相同类型的包装类对象之间做值的比较,用equals方法,尤其是Integer类,原因已在这个帖子中说明

https://www.cnblogs.com/yb38156/p/9392917.html

7、基本数据类型和包装类型

基本类型一般都有初始值,包装类型未赋值一般为null

  (1)所有的POJO类属性使用包装数据类型

  (2)方法调用时参数和返回值用包装数据类型

  (3)局部变量使用基本类型

  (4)null验证和判断由开发者负责和保证

8、POJO类不要存在isXXX方法,统一为getXXX方法,不要给属性赋默认值

9、setter和getter方法的参数名和类的字段名保持一致,this.成员名 = 参数名。getter和setter方法中不要再加逻辑

10、类内方法放置顺序:

  (1)类中有多个构造方法或同名方法,应按顺序放在一起;

  (2)public-->protected-->private-->setter/gettter,因为最关心和要负责的是public的方法

11、循环体拼接字符串用StringBuilder的append方法不要用String的+号拼接

12、工具类的构造方法设置为private的,这样就不会有人去new对象调工具方法

五、注释规范

  注释是给自己看的,也是给继任者看的。

1、每个类最好都加上author和date

2、抽象方法都要加注释,包括参数,返回值,异常,以及方法功能

3、类,属性,方法的注释用/** 内容 */,不要用 //内容;方法内部单行注释用 //,多行用/* */

4、TODO // 待开发,注明标记人和标记时间

六、控制语句

1、switch块的每个case必须有一个break或return(特殊情况除外),最后必须以default结束,即使是空语句

2、if/else/for/while语句必须使用大括号,即使只有一行语句代码

3、将if-else语句改写为if-return的形式,会的人都懂吧

4、if中的条件判断表达式尽量简洁,不要代入太复杂的表达式,尽量避免在判断语句中用取反运算(!),语义很别扭难理解

5、以下情况需要进行参数校验:

  (1)对外提供的开放接口,比如API/HTTP接口

  (2)权限接口或入口方法

  (3)执行时间开销很大的方法(一旦参数错误,回退很复杂,之前执行的都白费了)

6、以下情况可以不用参数校验

  (1)调用频率较高的方法,比如DAO层的方法,一般要在Service层和Controller层就要提前做校验抛出问题

  (2)声明为private的只会被自己的代码调用的方法,如果能确定入参已做过校验肯定不会出问题,此处可以不再做校验

  (3)在循环体中被调用的方法,最好提前做好参数校验,不要再在这个方法中校验

java编程规约二的更多相关文章

  1. JAVA 编程思想二

    1: java  单根继承的优点? 方便垃圾回收: 垃圾回收的设计会方便实现.   多重继承的函数重名的问题. 2: 向下转型和向上转型?    向下转型不安全,向上转型安全. 3: system.g ...

  2. java编程规约三

    七.集合处理 1.尽量使用String对象做Map的key 2.list转数组,用list的toArray(T[] array),传入的参数array是类型完全一样的数组,大小是list.size() ...

  3. java编程规约一

    提高开发效率,比较重视代码规范,尤其是可扩展性和可维护性,以及可读性.如果你是一个刚进公司的开发者,最好先问问前辈是否有 内部的开发规范,花点时间过一遍.即使提交代码没有review的步骤,自己心里应 ...

  4. java基础- Java编程规范与注释

    一 前言 java编程规约是指在java代码编写过程中通俗的约定:通常我们是要遵守这些规范:这好比我们在生活中要遵守的道德准则,如果你做的事情超出了道德的底线,那就有可能会受到社会抨击:在java编程 ...

  5. 点评阿里JAVA手册之编程规约(OOP 规约 、集合处理 、并发处理 、其他)

    下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文难度系数为三星(★★★) 本文为第二篇 第一篇 点评阿里JAVA手 ...

  6. 点评阿里JAVA手册之编程规约(命名风格、常量定义、代码风格、控制语句、注释规约)

    下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文难度系数为一星(★) 码出高效.码出质量. 代码的字里行间流淌的是 ...

  7. 读阿里巴巴Java开发手册v1.2.0之编程规约有感【架构篇】

     不为过去蹉跎,改变当下. 为什么开篇就送这么一句话给大家,我相信很多处于1-3年码龄的哥们儿们,在平时的编码历程中编码的个性可能是多彩的,每个人都有每个人特定的风格,但是我们现在这么随意写,以后这么 ...

  8. 阿里Java开发手冊之编程规约

    对于程序猿来说,编程规范能够养成良好的编程习惯,提高代码质量,减少沟通成本.就在2月9号,阿里出了一份Java开发手冊(正式版),分为编程规约.异常日志.MySQL规约,project规约.安全规约五 ...

  9. Java 开发手册之编程规约

    一.编程规约 (一) 命名规约 1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.(代码规范,易读) 反例: name / __name / $Object / n ...

随机推荐

  1. 快速失败and安全失败

    快速失败: 举个栗子: public static void main(String[] args) { ArrayList<String> list=new ArrayList<& ...

  2. php mysql函数库总结(一)

    连接mysqlresource mysql_connect(host,username,password);设置交互字符集bool mysql_set_charset("utf8|gbk&q ...

  3. Windows路径操作API函数学习【转载】

    文章出自https://www.cnblogs.com/MakeView660/p/6644838.html 前言 在VC++开发过程中,经常需要用到一些路径操作,比如拼需要的文件路径,搜索路径中的内 ...

  4. CSP-S 2019 —— 一个精神病人的呓语

    此生无悔入OI(话说上次的“此生无悔”还是在B站上发的弹幕2333. $HZOI$们,我们要加油!QwQ (挖坑 写在前面 学了一年,拿了$160$,也无所谓,失败者不会被人记住. 最后想做的,就是把 ...

  5. LeetCode 2. Add Two Numbers (两数相加)

    题目标签:Linked List, Math 题目给了我们两个 Linked List, 各代表一个数字,不过顺序的反的.让我们把两个数字相加. 和普通的相加其实差不多,只不过变成了 Linked L ...

  6. [转] boost undefined reference to 'pthread_create 问题

    由于是Linux新手,所以现在才开始接触线程编程,照着GUN/Linux编程指南中的一个例子输入编译,结果出现如下错误:undefined reference to 'pthread_create'u ...

  7. uoj192 【UR #14】最强跳蚤

    题目 和成爷达成一致,被卡随机的话就是过了 考虑一个完全平方数的所有质因子次幂一定是偶数,于是对于每一条边我们都只保留其出现次数为奇数的质因子 注意到有一个点的\(w\leq 80\),于是考虑状压质 ...

  8. 312. 戳气球【困难】【区间DP】

    题目链接 有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.每当你戳破一个气球 i 时,你可以获得 nums[left] * ...

  9. WebApi的Swagger多版本控制实现

    WebApi + Swagger2.0接口文档多版本控制设计实现 最近前后端分离的项目越来越多,API的对接对于前后端开发交流得最多的一块内容,一个好的API文档生成工具就显得非常重要,选取了Swag ...

  10. python接口自动化(接口基础)

    一.什么是接口? 前端负责展示和收集数据 后端负责处理数据,返回对应的结果 接口是前端与后端之间的桥梁,传递数据的通道 二.