近几年JDK更新速度非常快,2022年9月20号发布JDK19,作为Java语言的使用者,尤其是新入行和想要入行的朋友,不要被这么快的更新速度吓到,更不要被贩卖了焦虑,因为多数版本仅为过渡,如JDK19在2023年3月将会被JDK20替代,完全不必慌张,近几年JDK更新如此频繁,真正多的变化其实还在于JDK8之中。本文章为系列文章,后续内容持续推出!,
,从1996年1月JDK1.0正式发布到现在,目前有三个主流的长期支持【LTS】版本为JDK8、JDK11、JDK17,因为JDK11并没有特别大的优化更新,46.45%的企业还是使用2014年3月14号发布的JDK8,JDK17使用率仅在0.37%,
,继《JDK8更新——官网原版详解》之后,本篇主要介绍一下JDK更新在编码层面的重要变化,也就是我们一线程序员需要掌握的都有哪些,网络上有许多教程,但恰恰是教程太多五花八门,不知所云,一个新特性怼六七个小时实属浪费时间,学无涯生也有涯,很多玩意我们知道就行不需要去掌握,不要去浪费时间,结合实际工作,我总结了如下几点:,小贴士:本篇文章主要讲解Lambda表达式,Lambda表达式支持将一个方法【行为】当做参数传递,这种编程方式称为【函数式编程】,这种编程方式最大的特点就是代码紧凑,减少冗余代码,让编程边的更加简洁,而Java最大的弊端就在于代码臃肿,在Python,Scala、JavaScript等语言中也都引入函数式编程,而Java通过Lambda表达式实现函数式编程势在必行!,Lembda表达式通过左侧的参数,右侧的表达式和中间的右箭头组成:,Lambda表达式实现需要依赖于函数式接口,JDK内置了一些函数式接口,使用Supplier来实现无参Lambda讲解,至于函数式接口怎么自定义在后续单独介绍,保证连贯性,在此不穿插函数式接口其他内容!,Supplier接口为JDK内置的供给型接口,特点为无参数但是有返回值,定义如下:,
,代码:,简化代码:,如果Lambda表达式有返回值且代码体只有一行代码时,return和大括号可以省略不写,通过JDK内置Consumer接口实现,接收参数但没有返回值,定义如下:,
,代码实现:,简化写法:,总结:,如果代码体只有一行代码,无论有无参数,大括号都可省略,如果有返回值,代码体只有一行代码则return可以省略,如果有且仅有一个参数,参数的小括号可以省略,没有参数和有多个参数都不可省略、,有没有那么一点点感觉,Lambda表达式简化了代码,让编码更加简洁,接下来我们通过更多案例对比进一步理解和使用Lambda表达式,通过Runnable接口创建线程,如果想使用Lambda那么Runnable应该是一个函数式接口,函数式接口的特点是只有一个抽象方法,Runnable接口定义如下:,
,代码实现:,集合操作新增forEach方法,接收一个Consumer类型对象,上边【有参实现】中介绍了,它是一个函数式接口,
,代码实现:,集合排序可以使用sort方法,sort方法接收一个Comparator类型数据,
,Comparator接口定义,
,小贴士:该接口中还有几个默认实现方法和静态方法,因为只有一个抽象方法所以也是函数式接口,代码实现:,Lambda表达式简化开发,使编码变的简洁。,Lambda表达式需要依赖函数式接口实现,一定情况下可以简化写法。,StreamAPI、方法引用等特性需要基于Lambda实现。,Lambda表达式刚开始可能不习惯,多些就好,一定要多用哦!,文章出自:添甄,如有转载本文请联系【添甄】今日头条号。
© 版权声明
文章版权归作者所有,未经允许请勿转载。