Java未来已来这些炫酷特性你确定不看

在10月22的OracleCodeone大会上,Java平台的首席架构师MarkReinhold做了TheFutureofJavaisToday的演讲,回顾了最近Java的几个版本的新的功能,Java的每年两次的发布周期,澄清了关于发布流程和Java版本的几个误区,最后花了很大的篇幅介绍了未来Java几个令人非常期待的几个孵化中项目,可以为Java带来更好的生产力、性能和可扩展性。我整理了这四个项目相关的知识,你可以提前了解到Java未来的这些酷炫的特性。

Java各版本的发布时间点和LTS版本

MarkReinhold我不多介绍了,之前要了解Java的未来动向看Java之父JamesGosling,他离开Oracle之后想了解Java的动向就看MarkReinhold。

ProjectAmber

提供面向生产力的Java特性,比如字符串字面值、switch表达式、模式匹配、record等

这个项目包含很多Java语言特性的新功能。

包括:

正在实现的:

JEPLambdaLeftovers:对lambda功能的补强,比如下划线变量等BiFunctionbiss=(i,_)-String.valueOf(i);,lambda参数的Shadowing,消除一些歧义等修补工作

JEPPatternMatching:这个功能非常好,Scala和kotlin中的模式匹配非常强大,这个jep提供了类似的功能,配合switch和record,可以大大简化条件分支的处理,如:

inteval(Noden){

switch(n){

caseIntNode(inti):returni;

caseNegNode(Noden):return-eval(n);

caseAddNode(Nodeleft,Noderight):returneval(left)+eval(right);

caseMulNode(Nodeleft,Noderight):returneval(left)*eval(right);

default:thrownewIllegalStateException(n);

};

}

数据类,一行定义,省去了字段、字段访问方法和hash、equals、toString等方法,定义ValueObject简化到家了:

recordPoint(intx,inty);

JEPSwitchExpressions(preview,JDK12):当前的switch是什么,语句。这个jep扩展switch,并且可以作为表达式使用:

intnumLetters=switch(day){

caseMONDAY,FRIDAY,SUNDAY-6;

caseTUESDAY-7;

caseTHURSDAY,SATURDAY-8;

caseWEDNESDAY-9;

};

JEPRawStringLiterals(preview,JDK12):这个很多语言中都实现了,可以更好的书写字符串字面值,尤其在正则表达式中处理很多转义符的时候,和Go类似:

Strings=`

thisismy

embeddedstring

`;

JEPdraftConciseMethodBodies:正常的方法定义以大括号包裹,这个特性提供了类似Lambda表达式简化方式的形式,直接单行定义方法体,类似C#和kotlin的特性:

classMyListTimplementsListT{

privateListTaList;

publicintsize()=aList::size;

publicTget(intindex)=aList::get;

...

}

已发布的:

JEPLocal-VariableTypeInference(var)(JDK10):本地变量的类型推断,也就是使用var定义变量,有些同学已经用起来了,非常的方便,有点类似动态类型的语言,感觉虽然还没有达到Scala那么灵活,已经很不错了

JEPLocal-VariableSyntaxforLambdaParameters(JDK11):对本地变量的类型推断的加强,用在Lambda表达式中。

暂时搁置的:

JEPEnhancedEnums.

总之,每一个特性都可以大大简化我们的开发,让Java更像一个"现代的"编程语言。

ProjectLoom

提供一个轻量级的用户态的纤程,叫做fiber,更加简化并发编程,而且更有效

这个特性多年前我介绍过:







































白癜风哪个医院好
咨询白癜风医院



转载请注明:http://www.zjiaren.com/jbxx/10406.html

  • 上一篇文章:
  •   
  • 下一篇文章: