Java 基础
Posted lanlansansan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 基础相关的知识,希望对你有一定的参考价值。
因为重构了别人的恶心代码,体验极差,所以弄个基础规范给自己。
一、命名规范
Java中学习到的第一点就是
1、 代码中的命名不能以下划线或者美元符号开始,也不能以下划线或者美元符号结束。
如:
_name / __name / $Object / name_ / name$ / Object$
2、代码中命名最好不要用中文拼音,实在不会就百度(我就是那个百度的渣渣,虽然现在有在学习英语)。
因为同事遇到过,前端的命名全是拼音,但是又是缩写。和组长报告,我拼音不太好,能不能让前端给我
讲讲什么他这个页面到底是什么。
3、方法名、参数名、成员变量、局部变量统一使用lowerCamelCase风格,必须遵循驼峰形式
如:
localValue (参数名、成员变量、局部变量) / getHttpMessage() (方法名)
4、我们在类中使用到的常量全部用大写,方便区分。每个单词之间以下划线分割
如:
MAX_STOCK_COUNT
5、抽象类以Abstract 或 Base 开头;异常类命名使用 Exception 结尾;
测试类 命名以它要测试的类的名称开始,以 Test 结尾。
6、如果定义一个数组类型最好是String[] args。虽然String args[]也没什么问题。但是语义上略显不同。
比如:
String与String[], 前者叫字符串类型而后者叫字符串数组类型 ,
String args[]单从类型上来讲属于字符串类型,
而从变量本身来讲是一个数组类型,
因此组合起来说明此变量为一个字符串类型的数组, 也就是说数组中的所有元素都为String类型.
然后当你如果要声明多个数组的时候就显示出差异化了。
如:
String args[],argt; / String[] args,argt;
前者声明的第一个变量是字符串数组类型,而第二个变量为字符串类型,
而后面声明的则都为字符串数组类型。
7、如果你自己封装的方法之中使用了设计模式的话,命名最后带上设计模式的名字
如:
public class OrderFactory;(工厂模式)
public class LoginProxy;(代理模式)
8、接口之中最好不要加上修饰符号(public 最好也不要加上),保持代码的简洁性,并且加上有效得javadoc得注释
(ps:个人认为doc得注释相当得有必要,你不用在去和别人讲什么乱七八糟的糟心的东西,直接甩他doc的文档,
离职交接也可以很快完成,因为一个正常的码农,一般都是看的懂)
9、接口一定是一个暴露出来的服务,让其他人来进行调用的。而接口的实现类一般都是用Impl与接口作为区别的。
10.枚举类用Enum作为后缀,枚举成员名称需要全大写,单词间用下划线隔开(个人是没有用到什么枚举类方面的)。
11.Service/DAO 层命名
如:
1) 获取单个对象的方法用 get 做前缀。
2) 获取多个对象的方法用 list 做前缀。
3) 获取统计值的方法用 count 做前缀。
4) 插入的方法用 save(推荐)或 insert 做前缀。
5) 删除的方法用 remove(推荐)或 delete 做前缀。
6) 修改的方法用 update 做前缀。
12.最好不要直接使用未经定义的常量直接出现在代码中。(
这个我以前经常做,只在本类或者是只在这个方法中出现,直接就偷懒拼接了,但是最后发现,看起来。。。人有点晕)
如:
String key="Id#参数_"+tradeId;
13.字符串equals方法容易抛出空指针异常,最好使用常量或者确定有值得对象来调用equals
如:
"test".equals(object);
14.局部变量最好使用基本类型,而POJO类属性最好使用包装类,RPC方法返回和入参最好使用包装类
因为数据库的查询结果可能是 null,因为自动拆箱,用基本数据类型接收有 NPE 风险
以上是关于Java 基础的主要内容,如果未能解决你的问题,请参考以下文章