acc8226 的博客

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

2.【强制】避免用 ApacheBeanutils 进行属性的 copy。
说明:ApacheBeanUtils 性能较差,可以使用其他方案比如 SpringBeanUtils,CglibBeanCopier,注意均是浅拷贝。

3.【强制】velocity 调用 POJO 类的属性时,直接使用属性名取值即可,模板引擎会自动按规范调用 POJO的 getXxx(),如果是 boolean 基本数据类型变量(boolean 命名不需要加 is 前缀),会自动调 isXxx()方法。
说明:注意如果是 Boolean 包装类对象,优先调用 getXxx() 的方法。

4.【强制】后台输送给页面的变量必须加 $!{var} ——中间的感叹号。
说明:如果 var 等于 null 或者不存在,那么 ${var} 会直接显示在页面上。
笔记:这里说的是 velocity。

5.【强制】注意 Math.random() 这个方法返回是 double 类型,注意取值的范围 0 ≤ x < 1(能够取到零值,注意除零异常),如果想获取整数类型的随机数,不要将 x 放大 10 的若干倍然后取整,直接使用 Random 对象的 nextInt 或者 nextLong 方法。

阅读全文 »

1.【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用 /** 内容 */ 格式,不得使用 // xxx 方式。
说明:在 IDE 编辑窗口中,Javadoc 方式会提示相关注释,生成 Javadoc 可以正确输出相应注释;在 IDE 中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率。

2.【强制】所有的抽象方法(包括接口中的方法)必须要用 Javadoc 注释、除了返回值、参数异常说明外,还必须指出该方法做什么事情,实现什么功能。
说明:对子类的实现要求,或者调用注意事项,请一并说明。

3.【强制】所有的类都必须添加创建者和创建日期。
说明:在设置模板时,注意 IDEA 的 @author 为${USER},而 eclipse 的@author 为${user},大小写有区别,而日期
的设置统一为 yyyy/MM/dd 的格式。
正例:

1
2
3
4
5
6
/**
*
* @author yangguanbao
* @date 2021/11/26
*
**/

4.【强制】方法内部单行注释,在被注释语句上方另起一行,使用 // 注释。方法内部多行注释使用 /* */
注释,注意与代码对齐。

阅读全文 »

1.【强制】在一个 switch 块内,每个 case 要么通过 continue / break / return 等来终止,要么注释说明
程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个 default 语句并且放在最
后,即使它什么代码也没有。
说明:注意 break 是退出 switch 语句块,而 return 是退出方法体。

2.【强制】当 switch 括号内的变量类型为 String 并且此变量为外部参数时,必须先进行 null 判断。
反例:如下的代码输出是什么?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class SwitchString {
public static void main(String[] args) {
method(null);
}
public static void method(String param) {
switch (param) {
// 肯定不是进入这里
case "sth":
System.out.println("it's sth");
break;
// 也不是进入这里
case "null":
System.out.println("it's null");
break;
// 也不是进入这里
default:
System.out.println("default");
}
}
}
阅读全文 »

1. 【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。
说明:资源驱动类、工具类、单例工厂类都需要注意。

2. 【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。
正例:自定义线程工厂,并且根据外部特征进行分组,比如,来自同一机房的调用,把机房编号赋值给
whatFeatureOfGroup:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class UserThreadFactory implements ThreadFactory {

private final String namePrefix;
private final AtomicInteger nextId = new AtomicInteger(1);
// 定义线程组名称,在利用 jstack 来排查问题时,非常有帮助
UserThreadFactory(String whatFeatureOfGroup) {
namePrefix = "FromUserThreadFactory's" + whatFeatureOfGroup + "-Worker-";
}

@Override
public Thread newThread(Runnable task) {
String name = namePrefix + nextId.getAndIncrement();
Thread thread = new Thread(null, task, name, 0, false);
System.out.println(thread.getName());
return thread;
}
}
阅读全文 »

以下推荐的软件尽量选择不含广告的版本,像百度阅读和多看自带广告这种就没入榜了。

win

常规阅读

记事本即可

书籍阅读

主要有 mobi / epub 格式

【win】[Sumatra PDF] is a PDF, ePub, MOBI, CHM, XPS, DjVu, CBZ, CBR reader for Windows. 且提供安装版和绿色版,小巧好用

阅读全文 »
0%