欢迎大佬们进行指导
昨天被问到JDK8的新特性,今天花了不少的时间来研究,网上的资料很多,有用的太少了,闲来无事做个小测试 看代码吧 两个类放在一起了 ,总的说呢 测试好多次 原来的方式都比用Lambda的方式快 平均差1-2千毫秒,也不知道是不是我的代码有问题,还是就是Lambda比较慢,Lambda用起来非常的方便,用在循环遍历。创建线程,以及创建接口,或者在匿名类的时候代码都很简洁,Lambda表达式看起来有点像前端某技术的样子。Lambda表达式对我这个小菜来说,真的是很难看懂;
package com.czxy.test; import java.io.FileOutputStream; import java.io.IOException; /** * Created by ${sunxin} on 2019/3/7 * Lambda可以简循环遍历的写法,不是一般的简化,少些很多代码,简化创建线程的代码,简化以后的代码很少,不易懂,像前端javaScrpit */ public class Lambda { /** * Lambda 在创建线程方面可以简化写法 */ //原来的写法 public static void main(String[] args) throws IOException { //获取执行前的毫秒值 long old = System.currentTimeMillis(); //执行一百千次 for (int a = 0; a < 100000; a++) { //原来的方式创建线程 实现Runnable接口 重写run方法 Thread thread = new Thread(new Runnable() { @Override public void run() { } }); thread.start(); } //获取执行后的毫秒值 long newTime = System.currentTimeMillis(); //获得消耗的时间 long i = newTime - old; System.out.println("创建100000个花费的总毫秒值"+i); /* 使用Lambda表达式的新写法 */ //获取执行前的毫秒值 long old1 = System.currentTimeMillis(); for (int a =0;a<100000;a++){ Thread threadLambda = new Thread(()-> System.out.println("使用Lambda创建了线程了")); threadLambda.start(); } //获取执行后的毫秒值 long newTime1 = System.currentTimeMillis(); //获得消耗的时间 long i1 = newTime1 - old1; System.out.println("Lambda创建100000个花费的总毫秒值"+i1); } }