编程军规 —— Java 篇

提高代码的可读性,规避容易出现的错误。

0. 共性

  • 对象或引用的非空性判断:
    • 强制类型转换时;
    • 函数返回时;
    • 函数的输入参数;
  • 任务执行的成功或失败判断
    • 文件打开;网络连接;数据库连接;
    • 内存申请;
    • 尤其对于 java 语言,使用反射机制时的,类不存在;
  • 连接要关闭,资源要释放;(通过编程语言的语法机制)
    • Python:with as
    • Java:try catch finally

0. 变量

  • long 或者 Long 初始赋值时,使用大写的 L,不能用小写的 l;

1. 类

  • 类名:
    • 抽象类以 Abstract 或 Base 大头;接口以 I 开头;
    • 异常类以 Exception 结尾;测试类以 Test 结尾;
  • 静态成员:
    • 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接使用类名来访问即可;

2. 集合

  • ArrayList 的 subList(fromIndex, toIndex) 的返回值不可强转为 ArrayList,否则会抛出 ClassCastException 异常,
    • subList 返回的是 ArrayList 的内部类 SubList,并不是 ArrayList ,而是
      ArrayList 的一个视图,对于 SubList 子列表的所有操作最终会反映到原列表上。
  • 同样,Arrays.asList()(数组转集合) 的返回对象也是 Arrays 的一个内部类;并没有实现集合的修改方法。Arrays.asList 体现的是适配器模式,只是转换接口,后台的数据仍是数组。

    String[] strArr = new String[]{"zhang", "chunhui"};
    List list = Arrays.asList(strArr);
    list.add("wang");       // 运行时异常;
    strArr[0] = "wang";     // list.get(0) ⇒ 也同样修改;

3. 细节

  • 多行字符串表示 SQL 语句时,每行 SQL 语句的句前句后都加一个空格
    • 在 DAO 中编写 SQL 语句时,通常将 SQL 语句写在类的静态变量中(private static)中,以使代码变得更为可读;
    • 在编写多行 SQL 语句时,上下行最终会组成一行完整的 SQL 语句,如果在上一行的末尾和下一行的开始处均不加空格,将很容易出现错误:
// 将会出现错误的代码
private static String MATCH_COUNYT_SQL = "SELECT count(*) FROM" + 
    "t_user where user_name = ? and password = ?";
    // FROMt_user ⇒ 
// 良好的代码,前后均保留空格;
private static String MATCH_COUNYT_SQL = " SELECT count(*) FROM " + 
    " t_user where user_name = ? and password = ? ";
原文地址:https://www.cnblogs.com/mtcnn/p/9422468.html