Java规范推荐
Java规范推荐#
推荐:http://blog.csdn.net/tristansmile/article/details/7989670
命名规范
项目名:全部小写
Package 的命名:应该都是由一个小写单词组成
Class 的命名:首字母大写的驼峰式命名,即FirstName
变量和方法的命名:首字母小写的驼峰式命名,即firstName
当要区别接口类和实现类的时候,可以在类的后面加上“Impl”。
如:接口类:UserInterface.java 接口实现类:UserInterfaceImpStatic 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 书籍推荐 JavaEE程序员必读图书大推荐
java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给 ...
- Atitit 我们的devops战略与规划 规范 推荐标准
Atitit 我们的devops战略与规划 规范 推荐标准 1. Vm容器化1 2. 热部署tomcat+jrebel 或者resin1 3. 增量更新与差异更新1 4. 补丁提取与应用2 为了方便提 ...
- 狗屎的Java规范
规范 标题真有点侮辱了狗. 最近做Java,C#与Java对比笔记: http://www.cnblogs.com/newsea/p/4839540.html 其实Java语法弱点就弱点,关键是Jav ...
- Java书籍推荐
Java书籍推荐 转自:http://www.cnblogs.com/exclm/archive/2009/01/03/1367597.html 一.入门 <Java 2从入门到精通>- ...
- 产品管理开发之Git工作流和分支规范推荐
前言 无论是开源项目还是内部项目,使用Git都是大势所趋,尤其是在产品管理这块,使用Git大大提高了开发效率和产品的交付频率.本篇,针对Git的工作流和分支使用,进行了一些推荐. 目录 1 产 ...
- java规范与标准?
所谓规范,即指由很多人同时遵守的行为或理论. java的规范并不是指其中一种,而是有很多种,比如java编码规范,java命名规范,java虚拟机规范等等,甚至于一个编码规范都有很多种,不同的公司.组 ...
- 学习Java书籍推荐和面试网站推荐
一.Java书籍推荐: 来自http://www.importnew.com/26932.html 1. 鸟哥的Linux私房菜—基础学习篇 3. Effective Java 6. Java并发编程 ...
- GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率
GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率 功能丰富的 Java 工具包.它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率.该项目最初是作者工作项目中的 ...
- [改善Java代码]推荐使用枚举定义常量
枚举和注解都是在Java1.5中引入的,虽然他们是后起之秀,但是功能不容小觑,枚举改变了常量的声明方式,注解耦合了数据和代码. 建议83:推荐使用枚举定义常量 一.分析 常量的声明是每一个项目中不可或 ...
随机推荐
- 201521123028 《Java程序设计》 第9周学习总结
1. 本周学习总结 2. 书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? Ans: 在JA ...
- Jenkins使用-windows机器上的文件上传到linux
一.背景 最近的一个java项目,使用maven作包管理,通过jenkins把编译打包后war部署到另一台linux server上的glassfish(Ver3.1)中,在网上搜索的时候看到有人使用 ...
- Ansible系列(六):循环和条件判断
本文目录:1. 循环 1.1 with_items迭代列表 1.2 with_dict迭代字典项 1.3 with_fileglob迭代文件 1.4 with_lines迭代行 1.5 with_ne ...
- 走进AngularJS
前 言 xiaoq AngularJS 通过新的属性和表达式扩展了 HTML. 使用起来非常方便. 1. AngularJS的指令与表达式 AngularJS 通过 指令 扩展了 HTML,且通 ...
- JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)
1.背景 2.为什么废弃永久代(PermGen) 3.深入理解元空间(Metaspace) 4.总结 ========正文分割线===== 一.背景 1.1 永久代(PermGen)在哪里? 根据,h ...
- SqlHelper工具类
public class SqlHlper { public static readonly string constr = ConfigurationManager.ConnectionString ...
- vector 利用swap 函数进行内存的释放 vector<int>().swap
首先,vector与deque不同,其内存占用空间只会增长,不会减小.比如你首先分配了10,000个字节,然后erase掉后面9,999个,则虽然有效元素只有一个,但是内存占用仍为10,000个.所有 ...
- Java线程池详解
一.线程池初探 所谓线程池,就是将多个线程放在一个池子里面(所谓池化技术),然后需要线程的时候不是创建一个线程,而是从线程池里面获取一个可用的线程,然后执行我们的任务.线程池的关键在于它为我们管理了多 ...
- Racing Car Computer dp
Racing Car Computer Input: Standard Input Output: Standard Output The racing cars of today are equ ...
- 利用百度地图WEB服务APIGeoCoding API批量地址解析
Geocoding API包括地址解析和逆地址解析功能: 地理编码:即地址解析,由详细到街道的结构化地址得到百度经纬度信息,例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.3 ...