05 2020 档案
摘要:对trace/debug/info级别的日志输出,必须使用条件输出形式或者使用占位符的方式。 说明:logger.debug("Processing trade with id: " + id + " and symbol: " + symbol); 如果日志级别是warn,上述日志不会打印,但是会
阅读全文
摘要:注意 Math . random() 这个方法返回是 double 类型,注意取值的范围 0≤ x <1 ( 能够取到零值,注意除零异常 ) ,如果想获取整数类型的随机数,不要将 x 放大 10 的若干倍然后取整,直接使用 Random 对象的 nextInt 或者 nextLong 方法。 Ran
阅读全文
摘要:在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。 同时,Pattern要定义为static final静态变量,以避免执行多次预编译。 下面,我们列举两类使用正则的场景,来具体说明预编译该如何使用: 【错误用法】 // 没有使用预编译private void func(...) {
阅读全文
摘要:在Java开发过程中,使用iterator遍历集合的同时对集合进行修改就会出现java.util.ConcurrentModificationException异常,本文就以ArrayList为例去理解和解决这种异常。 一、单线程情况下问题分析及解决方案 1.1 问题复现 先上一段抛异常的代码。 1
阅读全文
摘要:ArrayList的subList结果不可强转成ArrayList,否则会抛出 ClassCastException 异常,即java.util.RandomAccessSubList cannot be cast to java.util.ArrayList. 说明:subList 返回的是 Ar
阅读全文
摘要:是为了提高效率,采取重写hashcode方法,先进行hashcode比较,如果不同,那么就没必要在进行equals的比较了,这样就大大减少了equals比较的次数,这对比需要比较的数量很大的效率提高是很明显的,一个很好的例子就是在集合中的使用; 我们都知道java中的List集合是有序的,因此是可以
阅读全文