java编程规约二
四、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编程规约二的更多相关文章
- JAVA 编程思想二
1: java 单根继承的优点? 方便垃圾回收: 垃圾回收的设计会方便实现. 多重继承的函数重名的问题. 2: 向下转型和向上转型? 向下转型不安全,向上转型安全. 3: system.g ...
- java编程规约三
七.集合处理 1.尽量使用String对象做Map的key 2.list转数组,用list的toArray(T[] array),传入的参数array是类型完全一样的数组,大小是list.size() ...
- java编程规约一
提高开发效率,比较重视代码规范,尤其是可扩展性和可维护性,以及可读性.如果你是一个刚进公司的开发者,最好先问问前辈是否有 内部的开发规范,花点时间过一遍.即使提交代码没有review的步骤,自己心里应 ...
- java基础- Java编程规范与注释
一 前言 java编程规约是指在java代码编写过程中通俗的约定:通常我们是要遵守这些规范:这好比我们在生活中要遵守的道德准则,如果你做的事情超出了道德的底线,那就有可能会受到社会抨击:在java编程 ...
- 点评阿里JAVA手册之编程规约(OOP 规约 、集合处理 、并发处理 、其他)
下载原版阿里JAVA开发手册 [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文难度系数为三星(★★★) 本文为第二篇 第一篇 点评阿里JAVA手 ...
- 点评阿里JAVA手册之编程规约(命名风格、常量定义、代码风格、控制语句、注释规约)
下载原版阿里JAVA开发手册 [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文难度系数为一星(★) 码出高效.码出质量. 代码的字里行间流淌的是 ...
- 读阿里巴巴Java开发手册v1.2.0之编程规约有感【架构篇】
不为过去蹉跎,改变当下. 为什么开篇就送这么一句话给大家,我相信很多处于1-3年码龄的哥们儿们,在平时的编码历程中编码的个性可能是多彩的,每个人都有每个人特定的风格,但是我们现在这么随意写,以后这么 ...
- 阿里Java开发手冊之编程规约
对于程序猿来说,编程规范能够养成良好的编程习惯,提高代码质量,减少沟通成本.就在2月9号,阿里出了一份Java开发手冊(正式版),分为编程规约.异常日志.MySQL规约,project规约.安全规约五 ...
- Java 开发手册之编程规约
一.编程规约 (一) 命名规约 1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.(代码规范,易读) 反例: name / __name / $Object / n ...
随机推荐
- 5432. 【NOIP2017提高A组集训10.28】三元组
题目 题目大意 给你\(X+Y+Z\)个三元组\((x_i,y_i,z_i)\). 然后选\(X\)个\(x_i\),选\(Y\)个\(y_i\),选\(Z\)个\(z_i\). 每个三元组只能选择其 ...
- 使用jQuery函数
1选择器 1.1说明 选择器本身只是一个有特定语法规则的字符串, 没有实质用处,它的基本语法规则使用的就是CSS的选择器语法, 并对基进行了扩展,只有调用$(), 并将选择器作为参数传入才能起作用. ...
- FreeMarker简单入门到使用
FreeMarker freemarker是一个用java开发的模版引擎,百度百科: 常用的java模版还有快要被抛弃的Jsp(熟悉).Thymeleaf(了解).Velocity(不知) freem ...
- thinkphp 多语言支持
ThinkPHP内置多语言支持,如果你的应用涉及到国际化的支持,那么可以定义相关的语言包文件.任何字符串形式的输出,都可以定义语言常量. 要启用多语言功能,需要配置开启多语言行为,在应用的配置目录下面 ...
- thinkphp 防止XSS(跨站脚本攻击)
XSS(跨站脚本攻击)可以用于窃取其他用户的Cookie信息,要避免此类问题,可以采用如下解决方案: 直接过滤所有的JavaScript脚本: 转义Html元字符,使用htmlentities.htm ...
- bzoj1025题解
[题意分析] 定义一个等价类为满足如下条件的一个极大的集合Q:∀t∈Q,k∈N+,若tk∈全集R,都成立tk∈Q. 给定n,记[1,n]∩N上所有排列置换的全集为R.求对于所有的等价类Q,card({ ...
- 回滚树形dp(按dfs序dp)——hdu6035
本题前面的操作别的博客里都有.难点在于颜色ci的贡献,如何一次dfs求出答案 先来考虑如何在一次dfs中单独对颜色i进行计算 用遍历dfs序的方式,在深搜过程中,碰到带有颜色 i 的点 u,u每个颜色 ...
- 水一帖:快速计算ceil(a/b)的方式
今天拍脑袋想出来的,不用ceil函数,不用浮点运算,不用取模,兼顾运行常数和代码量的向上取整除方法 在保证a,b>0时 ceil(a/b)=(a-1)/b+1; (完)
- CSS3 RGBA等于RGB加上opacity吗?
在我们前端设计里有两篇教程: CSS3 RGBA colors使用说明 css3中opacity属性学习与实践,他们公别介绍了RGBA,RGB,opacity的用法,这里我们把这三个属性放在一起来考虑 ...
- 全面解析HTML5优缺点
HTML5是当下最主流的网页标准,它的出现给在线应用和手机游戏开发者带来了不少新机会.基于HTML5,开发者可以制作自己的网络游戏,而这个游戏无 论你在PC.手机还是平板电脑上,无论你用Chrome. ...