JAVA开发规范

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;

1.1.1      包名
要求: 必须小写
例子: com.landray.kmss.common
1.1.1      类名、接口名
要求:名词,采用大小写混合的方式,每个单词的首字母大写。
例子: ImageSprite

类名往往用不同的后缀表达额外的意思,如下表:
后缀名 意义 举例
Service 表明这个类是个服务类,里面包含了给其他类提同业务服务的方法 PaymentOrderService
Impl 这个类是一个实现类,而不是接口 PaymentOrderServiceImpl
Inter 这个类是一个接口 LifeCycleInter
Dao 这个类封装了数据访问方法 PaymDaoentOrder
Action 直接处理页面请求,管理页面逻辑了类 UpdateOrderListAction
Listener 响应某种事件的类 PaymentSuccessListener
Event 这个类代表了某种事件 PaymentSuccessEvent
Servlet 一个Servlet PaymentCallbackServlet
Factory 生成某种对象工厂的类 PaymentOrderFactory
Adapter 用来连接某种以前不被支持的对象的类 DatabaseLogAdapter
Job 某种按时间运行的任务 PaymentOrderCancelJob
Wrapper 这是一个包装类,为了给某个类提供没有的能力 SelectableOrderListWrapper
Entity 实体层 包名为 Entity Student
Utils 工具类 包名最后一个取名必须为Utils GpsUtils

1.1.1      方法名
首字母小写,如 addOrder() 不要 AddOrder()
动词在前,如 addOrder() ,不要 orderAdd()
前缀名 意义 举例
add 新增 addOrder()
delete 删除 deleteOrder()
update 更新 updateOrder()
init或则initialize 初始化,暗示会做些诸如获取资源等特殊动作 initializeObjectPool
destroy 销毁,暗示会做些诸如释放资源的特殊动作 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);
}
背景:代码更加简洁。

1.1.1      equals 判断
要求:使用 equals判断时,将常量放在前面。
例子:
不推荐:
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();
}
背景: 在循环中定义变量会产生很多没用的变量,性能消耗较多

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 等语句,都不要省略大括号 {}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TOMSER123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值