我为什么不使用并放弃jdk8的新特性?

来源:互联网 发布:淘宝卖燕窝 编辑:程序博客网 时间:2024/04/29 15:14

今天,公司任务不重,本打算调优一下项目,因为直播项目的原因,不得不对性能上有更高的要求,哪怕提高

0.1ms的执行效率。无意之间对for循环嵌套这块发起了疑问,心想,能否可不用for循环,于是无意间去搜搜是否可能

替换for循环的新事物,想想都好激动呢!于是有以下的结果:





------------------------------------------我是很粗很粗的分割线-------------------------------------------------

对于摒弃使用某度作为搜索工具的同行们,请忽略这一细节,然后我就开始学习了,学习了,习了,了。。。不多说废话,直接贴代码:


@Testpublic void testStreamJ8New(){long start,end,sum = 0;//定义执行开始时间,结束时间,总时间List<Integer> list = new ArrayList<Integer>();Stream.iterate(1, items -> items + 1).limit(5000000).forEach(item -> list.add(item));//五百万的记录//目的:过滤小于1024的数for(int i = 1;i <= 100;i++){//循环一百遍,汇聚100次总的执行时间start = System.currentTimeMillis();//方案一://List<Integer> list2 = list.stream().filter(item -> item >= 1024).collect(Collectors.toList());//System.out.println(list2.size());//方案二:List<Integer> list2 = new ArrayList<Integer>();for (Integer i2 : list) {if(i2 >= 1024)list2.add(i2);}//System.out.println(list2.size());end = System.currentTimeMillis(); sum += (end - start);}System.out.println((sum/100) + "ms");//计算平均结果}

我等待了很久很久很久很久,,终于,,结果,却,,很让人失望,明显for循环平均执行时间要短一些,所以我放弃了jdk8的新特性,自从oracle收购了sun公司之后,觉得就如同乔布斯去世之后的苹果。。如果各位大神想撕逼,欢迎留言,不服来战!!这样我们才能更好的进化!!