代码规范

1、classpath的获取规则

/**
 * 获取文件在classpath下的物理路径
 * @param fileName
 * @return
 */
public static String getUrl(String fileName) {
    if (fileName == null) throw new NullPointerException();
    return ClassLoader.getSystemResource("").getPath() + fileName;
}

资源文件在系统资源目录下,如resources/,输出则在target目录下

2、方法结果接收方式

  • 参数接收
  • 全局变量
  • 返回值接收

说明:如果没有特殊情况,一律用第三种方式:返回值接收与上下文无关,只与方法当前状态有关,方便测试。

3、将过程拆分,提高代码可重用性

4、Java类加载的过程

java中类加载的全过程及内存图分析
类加载机制:
jvm把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成jvm可以直接使用的java类型的过程。

5、禁止在catch中出现 e.printStackTrace()

从源码可以看到,e.printStackTrace() 对线程上锁,影响多线程下的执行效率。
应该使用Logback进行日志管理。

6、代码的系统无关性

例如:换行符 \n 和 \r\n,可以使用:
(1)System.getProperties()
(2)Guava中可以使用StandardSystemProperty
  这个是用来方便调用如java.version, java.home 等环境变量的,使用的是enum了,比如:

StandardSystemProperty.JAVA_VERSION.value(); 
// [result] 1.7.0_25 

7、是否要提供无参构造方法

这个要考虑Bean是否允许属性缺失的对象,如果允许,则可提供无参构造方法。

8、使用Preconditions进行参数校验

Preconditions里面的方法:

1 .checkArgument(boolean) :
功能描述:检查boolean是否为真。 用作方法中检查参数
失败时抛出的异常类型: IllegalArgumentException

**2.checkNotNull(T): **
功能描述:检查value不为null, 直接返回value;
失败时抛出的异常类型:NullPointerException

3.checkState(boolean):
功能描述:检查对象的一些状态,不依赖方法参数。 例如, Iterator可以用来next是否在remove之前被调用。
失败时抛出的异常类型:IllegalStateException

4.checkElementIndex(int index, int size):
功能描述:检查index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)(包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。
失败时抛出的异常类型:IndexOutOfBoundsException

5.checkPositionIndex(int index, int size)
功能描述:检查位置index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)(包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。
失败时抛出的异常类型:IndexOutOfBoundsException

6.checkPositionIndexes(int start, int end, int size):
功能描述:检查[start, end)是一个长度为size的list, string或array合法的范围子集。伴随着错误信息。
失败时抛出的异常类型:IndexOutOfBoundsException

 例子:
 Preconditions.checkNotNull(neme, "neme为null");
 Preconditions.checkArgument(neme.length()>0, "neme为\'\'");
 Preconditions.checkArgument(age>0, "age 必须大于0");
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS编程规范0规范 0.1前言 为􏰀高产品代码质量,指导广大软件开发人员编写出简洁、可维护、可靠、可 测试、高效...
    iOS行者阅读 4,502评论 21 35
  • 推荐文章:禅与 Objective-C 编程艺 前言 为􏰀高产品代码质量,指导广大软件开发人员编写出简洁、可维护、...
    WolfTin阅读 2,818评论 0 1
  • 代码格式 使用空格而不是制表符 Tab 不要在工程里使用 Tab 键,使用空格来进行缩进。在 Xcode > Pr...
    small_Sun阅读 1,383评论 1 3
  • 当开发iOS应用时,会经常使用到第三方开源类库,比如AFNetworking, SDWebImage等。可能某个类...
    AbnerZhang阅读 205评论 0 1
  • 股票名称代码预期价格推荐顺丰控股002352符合预期不推荐 Story Telling 记得第一次使用顺丰快递是两...
    柯西君_BingWong阅读 959评论 0 0