摘要:揭短ExceptionUtils:有些异常并没有root cause的,此时,调用ExceptionUtils的getRootCause(final Throwable throwable)返回值是null,而你调用其getRootCauseMessage(final Throwable th)时,反而有返回值。 查看getRootCauseMessage的代码实现,发现它做了二元判断,如果root cause是null,它就去取th本身的message。
阅读全文
摘要:对接中信的微信H5支付时,对方(其实是微信)需要对我们的域名进行授权,即,我方需向渠道报备支付域名,微信只认可由此域名发起的支付交易。 支付中心只提供了一套支付接口供下游系统访问。因为给渠道报备的域名是支付中心的域名,为此,支付中心需要做一个中间页,由这个中间页发起到渠道的支付请求。 测试时,发现微
阅读全文
摘要:Integer默认值是null,可以区分未赋值和值为0的情况。比如未参加考试的学生和考试成绩为0的学生
加减乘除和比较运算较多,用int
容器里推荐用Integer。 对于PO实体类,如果db里int型字段允许null,则属性应定义为Integer。 当然,如果系统限定db里int字段不允许null值,则也可考虑将属性定义为int。
对于应用程序里定义的枚举类型, 其值如果是整形,则最好定义为int,方便与相关的其他int值或Integer值的比较
Integer提供了一系列数据的成员和操作,如Integer.MAX_VALUE,Integer.valueOf(),Integer.compare(),compareTo(),不过一般用的比较少。建议,一般用int类型,这样一方面省去了拆装箱,另一方面也会规避数据比较时可能带来的bug。
阅读全文
摘要:在java中,有2种方式来创建线程执行子任务:
直接继承Thread类,调用start方法
实现Runnable接口来定义一个子任务,然后交由Thread去执行
start方法和run方法的区别:
start用来创建新线程来异步执行子任务
run只是一个普通的方法,调用run不会新建线程
阅读全文