交换判断条件提高性能
在下面的例子中
1 | if (Utils.string2Number((String) value) != null || style.getFormat() instanceof NumberFormat) { |
上下两个代码,第一个的判断先转数值类型 第二个则先判断format类型
第一段代码不管什么类型都会做一次类型的转换,这样的效率是很低的,而判断类型则要快很多
所以写if条件的时候要遵循的原则是判断简单的条件写在前面
不过说一点,最好的方法还是封装好多态,而不是用instanceof判断类型来执行方法
关于简单对象
在jdk8以下构造大量简单对象效率也是极差,jdk8速度很快差不多差上千倍,所以能使用基本类型尽量使用基本类型,而不是用一个简单的对象对基本类型进行封装
大量轻量级计算时不要直接提交到线程池
比如有80w个计算,每个耗时都很短,排队的时候会浪费大量的等待时间,不如直接分成几组,比如分成8组,每个线程执行10w个计算,以后可以通过其他方式来均衡每个线程的负载
##有用的网站