摘要:
阎宏博士在《JAVA与模式》中是这样描述单例模式的:作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式可以说是最常使用的设计模式了,它的作用是确保某个类只有一个实例,自行实例化并向整个系统提供这个实例。在实际应用中,线程池、缓存 阅读全文
摘要:
使用Java代码把多个PDF文件合并成一个。 阅读全文
摘要:
Java中,基于jar包jackson实现的对象和JSON互相转换的json工具类。忽略JSON中未知字段,序列化时忽略null字段。 阅读全文
摘要:
枚举类可以实现一个或多个接口。与普通类实现接口完全一样,枚举类实现接口时,需要实现该接口所包含的方法。 如果需要每个枚举值在调用同一个方法时呈现不同的行为,则可以让每个枚举值在{...}匿名块中实现自己的业务逻辑。 为了方便测试,示例只定义了A和E两个等级,执行结果如下: 反编译枚举类 在《Java 阅读全文
摘要:
需求背景 需求已经确定了几个固定的常量值,并且每个常量值都有相同的行为,但是具体实现细节不同。建议使用枚举抽象方法,优点:结构清晰,便于扩展。 枚举类实现抽象方法 与常规抽象类一样,enum类允许我们为其定义抽象方法,然后使每个枚举实例都实现该方法,以便产生不同的行为方式,注意abstract关键字 阅读全文
摘要:
有个是否为零的判断【BigDecimal.ZERO.equals(ratio)】我用了BigDecimal的equals方法,结果,判断失败,因此特地分析一下equals与compareTo的区别。本文参考JAVA_VERSION="1.7.0"。首先看一下BigDecimal的equals方法源码 阅读全文
摘要:
介绍合并多个list并删除其中重复元素的方法,推荐使用Map或者TreeSet去重。 阅读全文
摘要:
介绍如何去掉BigDecimal类型变量小数点后多余的零。stripTrailingZeros()存在用科学计数法转换数值的小瑕疵。 阅读全文
摘要:
IFNULL() 函数 IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。 IFNULL() 函数语法格式为: 如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值。 参数说明 阅读全文
摘要:
循环小数输出的坑 BigDecimal做除法时如果出现除不尽(循环小数)的情况,会抛异常: BigDecimal a = new BigDecimal("1"); System.out.println(a.divide(new BigDecimal(3))); 异常如下: Exception in 阅读全文