美文网首页
Alibaba Coding Guidelines ~ Bloc

Alibaba Coding Guidelines ~ Bloc

作者: 积木Blocks | 来源:发表于2018-11-23 15:46 被阅读36次

Blocker

Blocker 雏形锻模,可以理解为代码模板


Blocker Menu

  • 1. 在if/else/for/while/do语句中必须使用大括号,即使只有一行代码。
  • 2. 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。
  • 3. 所有的覆写方法,必须加@Override注解。
  • 4. 在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。
  • 5. 获取当前毫秒数:System.currentTimeMillis(), 而不是new Date().getTime()。

1. 在if/else/for/while/do语句中必须使用大括号,即使只有一行代码.

主要是为了提高代码的可读性,一行不用括号。虽然这样看起来比较“高端”,但是降低代码可读性,特别是多个else的时候,会令人头大。

    // 避免使用下面的形式:if (condition) statements; 
    Negative example:
    if (flag) System.out.println("hello world");
    
    Positive example:
    if (flag) {
            System.out.println("hello world");
    }

2. 避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。

就是实例化了一个对象,然后用这个对象引用调用了对象的静态方法

Negative example:
class Demo{
  private static void getxxx(){
  ...
  }
}
Demo demo =new Demo()
demo.getxxx();

3. 所有的覆写方法,必须加@Override注解。

反例:getObject()与get0bject()的问题。一个是字母的O,一个是数字的0,加@Override可以准确判断是否覆盖成功。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错。


4. 在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。

在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。
说明:不要在方法体内定义:Pattern pattern = Pattern.compile(规则);

    public class XxxClass {
        // Use precompile
        private static Pattern NUMBER_PATTERN = Pattern.compile("[0-9]+");
        public Pattern getNumberPattern() {
            // Avoid use Pattern.compile in method body.
            Pattern localPattern = Pattern.compile("[0-9]+");
            return localPattern;
        }
    }

5. 获取当前毫秒数:System.currentTimeMillis(), 而不是new Date().getTime()。

说明:如果想获取更加精确的纳秒级时间值,用System.nanoTime。
在JDK8中,针对统计时间等场景,推荐使用Instant类。

    public class TimeMillisDemo {
        public static void main(String args[]) {
            // Positive example:
            long a = System.currentTimeMillis();
            // Negative example:
            long b = new Date().getTime();
    
            System.out.println(a);
            System.out.println(b);
        }
    }

相关文章

网友评论

      本文标题:Alibaba Coding Guidelines ~ Bloc

      本文链接:https://www.haomeiwen.com/subject/ukyjqqtx.html