zoukankan      html  css  js  c++  java
  • 编程军规 —— 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 = ? ";
  • 相关阅读:
    Working with WordprocessingML documents (Open XML SDK)
    How to Choose the Best Way to Pass Multiple Models in ASP.NET MVC
    Azure:Manage anonymous read access to containers and blobs
    Convert HTML to PDF with New Plugin
    location.replace() keeps the history under control
    On the nightmare that is JSON Dates. Plus, JSON.NET and ASP.NET Web API
    HTTP Modules versus ASP.NET MVC Action Filters
    解读ASP.NET 5 & MVC6系列(6):Middleware详解
    Content Negotiation in ASP.NET Web API
    Action Results in Web API 2
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9422468.html
Copyright © 2011-2022 走看看