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);
}
}
网友评论