Java规范推荐#

命名规范

项目名:全部小写

Package 的命名:应该都是由一个小写单词组成

Class 的命名:首字母大写的驼峰式命名,即FirstName

变量和方法的命名:首字母小写的驼峰式命名,即firstName

当要区别接口类和实现类的时候,可以在类的后面加上“Impl”。

如:接口类:UserInterface.java 接口实现类:UserInterfaceImp

Static Final 常量的命名:大写下划线形式,即FIRST_NAME

在Spring Boot的配置文件application.yml或application.properties中,推荐:first-name

在数据库的列中,推荐:first_name

jsp,Velocity等页面采用小写的英文字符和”_ ”组成,整体采用模块名+操作的形式。如:user_view.jsp。

xml配置文件很多用_.xml的方式,但我看的项目却用mybatis-config.xml,所以暂时不统一。

名称只能由字母、数字、下划线、$符号组成,不要用拼音命名

应用系统中经常应用分层,Dao层(数据库访问)、Service层(业务处理)、Web层(页面控制action类),每一层的类的名称尽量带上该层后缀。

推荐实体类没有后缀名。

比如:

Dao层

a、接口类:采用JavaBean+Interface+Dao的形式来定义,即,实体对象+Interface+Dao。 如:用户对象接口类: UserInterfaceDao,其中xxx为模块名称。

b、实现类:采用JavaBean+Interface+Impl+Dao的形式来定义,即,实体对象 +Interface+Impl+Dao。 如:用户对象实现类:UserInterfaceImplDao

若没有Interface,则省略

Service层

a、接口类:采用Xxx+Interface+Service的形式来定义,即,模块+Interface+Service。 如:用户管理接口类:UserMsgInterfaceService

b、实现类:采用Xxx+Interface+Impl+Service的形式来定义,即,模块+Interface+Impl+Service。如:用户管理实现类:UserMsgInterfaceImplServce

变量命名实际应用

变量命名采用基本结构为typeVariableName,使用3字符前缀来表示数据类型。

例如,定义一个整形变量:intDocCount,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。

数据类型或对象类型

变量前缀

备注

byte

bye

1、做数组用时,再加前缀-a,如字符串数组:astr,

char

chr

2、自定义类型的变量可以采用本身的名称,把首字母改为小写。

float

flt

3、采用名称要能代表在方法中的意义。如果员工列表:employeeList

boolean

bln

Integer/int

int

short

sht

Long/long

lng

Double/double

dbl

string

str

如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写。

数据层方法:只能以insert(插入),delete(删除),update(更新),select(查找),count(统计)开头,其他层方法避免以这个5个单词开头,以免造成误解。

服务层方法,根据方法的行为命名,只描述方法的意义,而不采用方法的目的命名。比如系统的添加新用户,用户可以前台注册,也可以管理员后台添加,方法会被重用,所以最好不要用使用register,采用add会更好写。避免使用与web层相关的方法。

Web层方法最好是贴近web的语言,如register,login,logout等方法。

注释规范

1. 类注释

在每个类前面必须加上类注释,注释模板如下:

/**

* 类的详细说明

*

* @author ${USER}

* @Date ${DATE}

* @version 1.00

*/

在IntelliJ IDEA中实现:

2. 方法注释

在每个方法前面必须加上方法注释,注释模板如下:

/**

* 类方法的详细使用说明

*

* @param 参数1 参数1的使用说明

* @return 返回结果的说明

* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明

*/

使用IntelliJ IDEA的Live Templates功能:

如上图所示,点击右侧的+,新建Live Template,然后编辑如上图,将应用范围设为Java,如果只设comment,无法智能提示,且必须/*再按tab才行。如果有一些 $var$,可以 编辑变量

在IntelliJ IDEA中,打出的部分就会智能提醒,Enter后恩Tab即可。

3. 属性注释

在每个属性前面必须加上属性注释,注释模板如下:

/** 提示信息 */

private String strMsg = null;

4. 构造方法注释

在每个构造方法前面必须加上注释,注释模板如下:

/**

* 构造方法的详细使用说明

*

* @param 参数1 参数1的使用说明

* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明

*/

5. 方法内部注释

在方法内部使用单行或者多行注释,该注释根据实际情况添加。

如:

//背景颜色

Color bgColor = Color.RED

java 方法规范_Java规范推荐相关推荐

  1. java方法的命名规范

    方法命名的规范:驼峰命名,开头小写后面首字母大写 方法的格式 修饰符 返回值类型 方法名(参数类型 参数名){... 方法体 ... return 返回值;} java方法是语句块的集合,它们一起执行 ...

  2. java方法重载_Java方法的重载

    生活中的许多事,并不是我们不能做到,而是我们不相信能够做到.(当然赚先一个亿,即使相信也很难做到.) 简介 Java方法的重载就是一个类中,有多个名称相同,但形参不同的函数 规则 方法名称必须相同 方 ...

  3. java 方法 示例_Java 9示例–收集的工厂方法–创建不可修改的列表,集合和映射...

    java 方法 示例 大家好,这是我在该博客上发表的有关Java 9功能的第一篇文章,今天您将了解我最喜欢的功能"收集的工厂方法" ,它是JEP 269的一部分.JEP代表JDK增 ...

  4. java 方法 示例_Java ArrayDeque pollFirst()方法与示例

    java 方法 示例 ArrayDeque类pollFirst()方法 (ArrayDeque Class pollFirst() method) pollFirst() Method is avai ...

  5. java 方法 示例_Java扫描器具有示例的NextNextShort()方法

    java 方法 示例 扫描器类的hasNextShort()方法 (Scanner Class hasNextShort() method) Syntax: 句法: public boolean ha ...

  6. java 方法 示例_Java ArrayDeque offerFirst()方法与示例

    java 方法 示例 ArrayDeque类offerFirst()方法 (ArrayDeque Class offerFirst() method) offerFirst() Method is a ...

  7. java 方法 示例_Java Collectionsfrequency()方法与示例

    java 方法 示例 集合类的frequency()方法 (Collections Class frequency() method) frequency() method is available ...

  8. java 方法 示例_Java集合checkedList()方法与示例

    java 方法 示例 集合类checkedList()方法 (Collections Class checkedList() method) checkedList() Method is avail ...

  9. java 方法 示例_Java集合syncedSet()方法与示例

    java 方法 示例 集合类syncedSet()方法 (Collections Class synchronizedSet() method) synchronizedSet() method is ...

最新文章

  1. 求最小众倍数java,【python网易】最小倍众数
  2. Linux操作系统(二:shell脚本)
  3. 分享Silverlight/WPF/Windows Phone一周学习导读(1月17日-1月23日)
  4. python日期时间
  5. 检查用户显示器的分辨率
  6. fio模拟mysql写入速度_IO压力测试工具 -- FIO 使用说明
  7. [转] linux下.tar .gz .tgz .bz2 .bz等解、压包命令详解
  8. 【Linux 内核】调度器 ⑤ ( put_prev_task、set_next_task 函数 | select_task_rq 函数 | migrate_task_rq 函数 )
  9. 【Python】20个Pandas数据实战案例,干货多多
  10. VTK:相互作用之SelectAnActor
  11. linux命令(8)kill命令
  12. 阿里规定代码中禁用static修饰SimpleDateFormat,为何?
  13. [css] 用css画一个五边形和一个六边形
  14. win7查看电脑ip地址的方法
  15. 虽然在修行初期的飞鸽传书
  16. ZZULIOJ 1052:数列求和4
  17. 难得一见的DIY针孔相机
  18. Datamill 一个开源的框架
  19. SaltStack 日志管理
  20. 服务器添加hdr文件3dMax,别再乱用HDR了!关于它的10件事你该知道

热门文章

  1. 远程控制软件哪个好?
  2. Android官方开发文档Training系列课程中文版:打印内容之自定义文档打印
  3. 基于Detectron2的BlendMask训练 BlendMask环境配置 COCO数据集
  4. SpringCloud 实战笔记
  5. 电影评论系统C语言,源代码电影评论
  6. 窥探Kotlin世界(进阶语法)
  7. 陕西人也太太太太太太有趣了吧!
  8. Python: 蛇形填空(每日一题)
  9. 通达OA任意用户登录复现(最新)
  10. 李奎元:说说那些征信模型(Z计分模型、巴萨利模型和A值模型)