(九) 其它
    1. 【强制】在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。
    说明:不要在方法体内定义:Pattern pattern = Pattern.compile(“规则”);
    2. 【强制】velocity 调用 POJO 类的属性时,直接使用属性名取值即可,模板引擎会自动按规范调用 POJO 的 getXxx(),如果是 boolean 基本数据类型变量(boolean 命名不需要加 is 前缀),会自动调用 isXxx()方法。
    说明:注意如果是 Boolean 包装类对象,优先调用 getXxx()的方法。
    解释:velocity模板引擎。其他模板引擎也要考虑此种情况。

    1. 【强制】后台输送给页面的变量必须加$!{var}——中间的感叹号。
      说明:如果 var 等于 null 或者不存在,那么${var}会直接显示在页面上。
      4. 【强制】注意 Math.random() 这个方法返回是 double 类型,注意取值的范围 0≤x<1(能够取到零值,注意除零异常),如果想获取整数类型的随机数,不要将 x 放大 10 的若干倍然后取整,直接使用 Random 对象的 nextInt 或者 nextLong 方法。
      解释:看代码thread.RandomTest
      5. 【强制】获取当前毫秒数 System.currentTimeMillis(); 而不是 new Date().getTime();
      说明:如果想获取更加精确的纳秒级时间值,使用 System.nanoTime()的方式。在 JDK8 中,针对统计时间等场景,推荐使用 Instant 类。
      解释:为什么不用new Date(),看源码,是多此一举。先用 System.currentTimeMillis(),在getTime获取System.currentTimeMillis()。
      Instant使用方法:https://blog.csdn.net/weixin_41987908/article/details/89204729
      6. 【强制】日期格式化时,传入 pattern 中表示年份统一使用小写的 y。
      说明:日期格式化时,yyyy 表示当天所在的年,而大写的 YYYY 代表是 week in which year(JDK7 之后引入的概念),意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,返回的 YYYY 就是下一年。另外需要注意:
      表示月份是大写的 M
      表示分钟则是小写的 m 24 小时制的是大写的 H 12 小时制的则是小写的 h
      正例:表示日期和时间的格式如下所示:
      new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

    2. 【推荐】不要在视图模板中加入任何复杂的逻辑。
      说明:根据 MVC 理论,视图的职责是展示,不要抢模型和控制器的活。
      8. 【推荐】任何数据结构的构造或初始化,都应指定大小,避免数据结构无限增长吃光内存。
      9. 【推荐】及时清理不再使用的代码段或配置信息。
      说明:对于垃圾代码或过时配置,坚决清理干净,避免程序过度臃肿,代码冗余。
      正例:对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三个斜杠(///)来说明注释掉代码的理由。