提高代码的可读性,规避容易出现的错误。
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 子列表的所有操作最终会反映到原列表上。
- subList 返回的是 ArrayList 的内部类 SubList,并不是 ArrayList ,而是
同样,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 = ? ";