美文网首页
Java代码规范

Java代码规范

作者: 镜花水岳 | 来源:发表于2020-07-06 08:34 被阅读0次

第1章 引言

1.1介绍

本文档以SUN的标准Java代码规范为基础,结合公司的实际需要,做一些修改和补充,编写次文档的目的是规范公司开发代码,增加代码清晰度,减少bug,降低后期维护成本和代码审查,养成代码规范的习惯,便于开发人员自身成长。

第2章 标识符命名

注:所有标识符不能出现中文,尽量使用通俗英文,不可拼音和英文混用。

2.1 包名

全部使用小写字母,单词间不要用字符隔开

正例:com.axj.batchfile

反例:com.axj.batch_file

2.2 类名

2.2.1 类命名

类名使用驼峰命名,每个自然语义的单词首字母大写,其他字母小写

正例:SendThread

反例:sendThread,Sendthread

2.2.2 类后缀

类名不同的后缀代表不同的类型:

2.2.2

2.3方法名

首字母小写,后面自然语义的单词首字母都大写

正例:closeSession

反例:CloseSession,closesession

动词在前,名词在后

正例:closeSession

反例:sessionClose

方法命名格式(方法名要准确表达业务的含义):

2.3

2.4 变量、参数名

变量一定要清楚表达什么意思,一般取一些通俗有意义的名字,尽量使用简短英文单词。

命名规则:

1、首字母小写,后面自然语义的单词首字母都大写

2、只能以字母、“_”或“$”符号作为变量名开头。

3、变量中可包含数字,但不能以数字开头。

4、除了“_”和“$”符号以外,变量中不能包含其他特殊字符。

5、不能用class、int、String、public等java关键字做为变量名。

6、在java中变量名严格区分大小写,例如:name和Name就是两个不同的变量

7、静态变量和枚举类型字母全大写,多个单词之间用”_”分隔,如:TIME_EVENT

第3章代码注释

3.1 注释分类

注:注释主要分为2种,实现注释和文档注释。

3.1.1 实现注释

实现注释使用/*...*/和//界定,使用/*...*/来进行块注释,使用//进行行注释,位于注释代码上一行。

3.1.2文档注释

文档注释描述Java的类、接口、构造器,方法,以及字段(field)。每个文档注释都会被置于注释定界符/**...*/之中,一个注释对应一个类、接口或成员。该注释应位于声明之前,javadoc是j2sdk里面一个非常重要的工具,如果你按照规范在Java的源代码里面写好注释的话,那么它就可以生成相应的文档,便于开发者察看,Myeclipse生成步骤,点击菜单栏的Project,选择generate javadoc,下一步即可。

javadoc参数定义:

@author  对类的说明 标明开发该类模块的作者

@version  对类的说明 标明该类模块的版本

@see    对类、属性、方法的说明 参考转向,也就是相关主题

@param    对方法的说明 对方法中某参数的说明

@return  对方法的说明 对方法返回值的说明

@exception  对方法的说明 对方法可能抛出的异常进行说明

3.2 注释条件(必加)

1、类的注释

2、方法的注释

3、在代码复杂处注释

4、代码修改处注释上时间和修改原因

5、全局变量注释

6、在多重嵌套和循环逻辑上注释

7、接口注释

8、调用工具类中方法的注释

3.3 注释举例

3.3.1 类注释

/**

*类功能概述×××××××

*

*@author huwei

*@time 2017-8-20

*/

public class LogicManager {

......

}

3.3.2 方法注释

/**

* 方法说明×××××××

*

  * @param1 参数说明

* @param2 参数说明

  * @return 返回值说明

  * @throws Exception

  */

public boolean executeLogic(int param1, int param2)throws Exception{

......

return true;

}

3.3.3 全局变量、字段、属性注释

public class ReadManager {

  /** 全局的计数变量*/

  private final int count;

  /** 字段/属性*/

  private String name;

}

3.3.4 代码域注释

            /*----------开始:解析数据库数据 ------- */

            //\1拆分数据库数据

            String Row[] = sStr.split("\1");

waitRecord = new WaitRecord[Row.length];

            /* 循环存储对象到List */

for (int i = 0; i < Row.length; i++) {

String Col[] = Row[i].split("\2");

waitRecord[i] = new WaitRecord();

waitRecord[i].waitId = Col[0];

waitRecord[i].userId = Col[1];

waitRecord[i].username = Col[2];

waitRecord[i].longId = Col[3];

                waitList.add(waitRecord[i]);

}

              /*----------结束:解析数据库数据 ------- */

第五章代码习惯

5.1 异常抛出

进程和线程可能出现一系列异常,异常的出现如果没有抛出可能会导致进程死掉或线程崩溃,所以需养成异常捕获抛出的习惯,避免应用因进程卡住,异常异常捕获后,需打印异常日志,否则出现异常时不好查找问题。

5.2 减少嵌套

代码嵌套层太多,会严重影响代码可读性,处理方法:

1、使用return跳出,减少else使用

2、条件使用逻辑运算符(&& 或 ||等)进行拼接

3、整合成子方法

5.3 判断字符串相等

1、java中字符串的比较是==比较引用,equals 比较值

我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题

例子1:String a="abc";String b="abc",

那么a==b将返回true。因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存

一份,所以a和b指向的是同一个对象;

例子2:String a=new String("abc"); String b=new String("abc");

那么a==b将返回false,此时a和b指向不同的对象。

2、用equals方法比较的是字符串的内容是否相同

example:String a=new String("abc"); String b=new String("abc"); a.equals(b);将返回true。

通常情况下,为了避免出现上述问题,判断字符串是否相等使用equals方法,具体的原因得引出常量池概念,这里不做详细描述

5.4 字符串拼接

拼接字符串尽量使用StringBuffer或者StringBuilder,使用”+”号每次会new一个对象,对空间和性能还是有一定影响的。

5.5 NPE处理

在java开发最常见的异常就是NPE(java.lang.NullPointerException)异常,需有效的规避异常,进行null判断,可能出现null模块,取集合元素,数据截取,方法返回,socket传输的数据,数据库取值等等...

5.6 日志输出

平时调试代码或输出日志习惯使用System.out.println(),system.out都写入到一个文件里去了,对一个文件的读写就会排队写,而且syso在当前线程,必须写完才继续下面的程序。 如果使用log工具,你的日志会发散在多个日志文件上。可以控制日志是否输出,而且log工具只是通知要写日志,而不必等日志写完。

————————————————

原文链接:https://blog.csdn.net/u013050593/java/article/details/77750807

相关文章

  • Java编码规范

    Java 代码规范 本 Java 代码规范以 SUN 的标准 Java 代码规范为基础,为适应我们公司的实际需要,...

  • Android开发中的优化方案

    一、命名规范 代码规范先从命名规范开始,Android的命名规范主要涉及:Java源代码,xml文件,图片资源。 ...

  • Java代码规范

    遵从java编码规范,目的做到代码规范、统一 鲁曾说过:只要代码规范了工作就完成了一半。。。 0.遵从java编码...

  • 代码规范

    请参考java代码规范: https://github.com/alibaba/p3cvue代码规范: https...

  • 从代码中学习阿里编码规范(一)

    Java编程需要用到阿里编码规范。Java小白在写代码时,经常容易出现代码规范问题,以下为我根据现有代码以及阿里的...

  • java代码规范

    本司代码规范继承grpc的google java规范。 中文:https://segmentfault.com/a...

  • JAVA代码规范

    POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。 如果变量值仅在一个范围内变化,且...

  • Java代码规范

    一、为什么要有编码规范(Why Have Code Conventions)编码规范对于程序员而言尤为重要,有以下...

  • Java代码规范

    第1章 引言 1.1介绍 本文档以SUN的标准Java代码规范为基础,结合公司的实际需要,做一些修改和补充,编写次...

  • idea插件

    Java代码规范与质量检测插件SonarLint

网友评论

      本文标题:Java代码规范

      本文链接:https://www.haomeiwen.com/subject/iqniqktx.html