JAVA开发规范
来源:互联网 发布:java源码保护 编辑:程序博客网 时间:2024/06/07 08:40
1:后端权限注解
@SysPmCheck(menuCose = "MENU_SYSTEM_ADD")
2: 加入js要带上版本号,防止页面缓存
?v=${ctx.version}
3:命名与数据库一至
Ø 变量声明一般采用单行文档注释
Ø 方法一般采用多行文档注释
Ø 方法内部代码注释一般采用“//”实现注释
尽量避免一行的长度超过200个字符
要求:当一个表达式无法容纳在一行内时,可依据以下规则换行
Ø 在逗号后面换行
Ø 在操作符前面换行
Ø 先选择高优先级操作符处换行
Ø 后一行与前一行表达式对齐
Ø 适当的时候插入8个字符进行缩进
要求:以下情况应该使用一个空行
Ø 两个方法之间
Ø 块注释或单行注释之前
Ø 一个方法内的两个逻辑段之间,用以提高可读性
Ø 其他需要空行以提高代码可读性地方
要求:不要把多个短语句写在一行中,即一行只写一条语句
例子:不要产生如下语句
Object o = new Object(); Object b = null;
下面的情况,需要放一行
Object a,b =null;
下面的情况,需要放一行
Object a,b =null;
1.1.1 包名
要求:必须小写
例子:com.landray.kmss.common
1.1.1 类名、接口名
要求:名词,采用大小写混合的方式,每个单词的首字母大写。
例子:ImageSprite
类名往往用不同的后缀表达额外的意思,如下表:
后缀名意义举例Service表明这个类是个服务类,里面包含了给其他类提同业务服务的方法PaymentOrderServiceImpl这个类是一个实现类,而不是接口PaymentOrderServiceImplInter这个类是一个接口LifeCycleInterDao这个类封装了数据访问方法PaymDaoentOrderAction直接处理页面请求,管理页面逻辑了类UpdateOrderListActionListener响应某种事件的类PaymentSuccessListenerEvent这个类代表了某种事件PaymentSuccessEventServlet一个ServletPaymentCallbackServletFactory生成某种对象工厂的类PaymentOrderFactoryAdapter用来连接某种以前不被支持的对象的类DatabaseLogAdapterJob某种按时间运行的任务PaymentOrderCancelJobWrapper这是一个包装类,为了给某个类提供没有的能力SelectableOrderListWrapperEntity实体层 包名为 EntityStudentUtils工具类 包名最后一个取名必须为UtilsGpsUtils
1.1.1 方法名
首字母小写,如 addOrder()不要 AddOrder()
动词在前,如 addOrder(),不要orderAdd()
前缀名意义举例add新增addOrder()delete删除deleteOrder()update更新updateOrder()init或则initialize初始化,暗示会做些诸如获取资源等特殊动作initializeObjectPooldestroy销毁,暗示会做些诸如释放资源的特殊动作destroyObjectPool
1.1.1.1 静态常量
全大写用下划线分割,如
public static find String ORDER_PAID_EVENT = “1”;
public static find String ISOPEN= “1”;
1.1.1.1 枚举
全大写,用下划线分割,如
public enum Events {
ORDER_PAID,
ORDER_CREATED
}
1.1.1 变量名
要求:用大小写混合的方式命名,第一个单词的首字母小写,其后单词的首字母大写。
例子:float myWidth;
1.1.1 常量名
要求:全部大写,单词间用下划线隔开,常量使用static final修饰。
例子:static final int MIN_WIDTH = 4;
1.1.1 is用法
要求:在Boolean变量命名和访问方法中应当使用is。
例子:boolean isVisible; boolean isAssigned();
背景:sun java编码规范,在写JavaBean时该规则实际是强制的。还可以使用can, has。
1.1.1 循环变量
要求:方法内部循环变量应当使用i, j, k(数字)
1.1.1 JAVA 5.0新循环写法
要求:尽量使用Java 5.0新循环写法。
例子:
ArrayList<String> list = new ArrayList<String>();
for(String str : list){
System.out.println(str);
}
for(String str : list){
System.out.println(str);
}
背景:代码更加简洁。
1.1.1 equals判断
要求:使用equals判断时,将常量放在前面。
例子:
不推荐:
String str = "";
static final String MIN_STATUS = "failure";
str.equals(MIN_STATUS);
建议:
MIN_STATUS.equals(str);
String str = "";
static final String MIN_STATUS = "failure";
str.equals(MIN_STATUS);
建议:
MIN_STATUS.equals(str);
背景:变量放在前面有可能产生NullPointException。
1.1.1 循环语句中定义变量
要求:尽量不要在循环语句中定义变量,将变量定义放在循环语句外面。
例子:
不推荐:
while (fdParent != null) {
String fdName = fdParent.getFdName();
……
fdParent = fdParent.getFdParent();
}
建议:
String fdName = null;
while (fdParent != null) {
fdName = fdParent.getFdName();
……
fdParent = fdParent.getFdParent();
}
while (fdParent != null) {
String fdName = fdParent.getFdName();
……
fdParent = fdParent.getFdParent();
}
建议:
String fdName = null;
while (fdParent != null) {
fdName = fdParent.getFdName();
……
fdParent = fdParent.getFdParent();
}
背景:在循环中定义变量会产生很多没用的变量,性能消耗较多
1.1.1 可移植性
要求:
1、 尽量不要使用已经被标注为不赞成使用的类和方法;
2、 用separator()方法来代替路径中的“\”或“/”;
3、 用pathSeparator()方法代替路径中的“:”或“;”。
例子:无
背景:有助于代码在不同的JAVA虚拟机和操作系统中运行。
1.1.1 switch语句
要求:每一个case语句后面不要忘了加break。每一个switch语句块都应该有一个default
背景:防止错误的程序流程。
1.1.1 浮点数的比较
要求:永远不要用一个浮点数去比较一个常量或另一个浮点数!也不要用浮点数进行计算!无论float或double型。 对包含小数位的数字进行操作时应使用BigDecimal类。
例子:参考JAVA API文档
背景:浮点数运算会有误差
1.1.1 使用log而不是System.out.println()
log可以设定级别,可以控制输出到哪里,容易区分是在代码的什么地方打印的,而System.out.print则不行。而且,System.out.print的速度很慢。所以,除非是有意的,否则,都要用log。至少在提交到svn之前把System.out.print换成log。(slf4j—log4j)
1.1.1 每个if while for等语句,都不要省略大括号{}
0 0
- 开发规范: JAVA代码规范
- Java开发规范
- java开发代码规范
- Java-开发命名规范
- Java项目开发规范
- Java开发编程规范
- Java开发编程规范
- java开发命名规范
- Java软件开发规范
- Java项目开发规范
- Java-开发命名规范
- java开发规范
- Java项目开发规范
- java开发命名规范
- java开发编码规范
- java开发命名规范
- java 开发规范
- Java开发规范使用手册
- 域名系统
- 需要加强
- Java学习----day5——(3)面对对象程序设计基础篇(具体篇)
- javaBean无法被解析以及servlet无法被识别
- C++实现单例模式
- JAVA开发规范
- 如何 实现 input 判断客户输入的首字母必须为m
- android studio 安装时,出现这个问题,该怎么解决?
- 【转载】Statement和PreparedStatement之间的区别
- Ubuntu zimbra 8.6.0 迁移(安装也可以参考)
- React-native之flexDirection,justifyContent
- 第二届PAT团队程序设计天梯赛比赛后感
- 如何把资源ID反射为字符串
- 经典的杯子测试题