Java10是Java历史上的一个较小的版本,发布于2018年3月。JEP286:局部变量类型推断Java10中引入了var关键字,允许开发者在声明局部变量时不必显式声明变量的类型,编译器会自动根据变量的初始值推断变量的类型。这使得代码更加简洁,尤其是在处理泛型时。例如:varlist=newArrayList<String>();//编译器推断list是ArrayList<String>类型varstream=list.stream();//编译器推断stream是Stream<String>类型**需要注意的是,****var**只能用在局部变量上,不能
Java9开始引入不可变集合,我们通过of()即可创建一个不可变集合(详情见:Java9新特性—新增只读集合和工厂方法)。但是有时候我们需要利用现有集合来创建一个不可变副本,然而Java9并没有提供该方法,所以Java10对其进行了增强。Java10新增copyOf()用于创建现有集合的不可变副本。分为以下两种情况:如果原集合已经是不可变的,那么则返回原集合,如果元集合不是不可变的,那么则创建一个新的对象。如下:@TestpublicvoidcopyOfTest(){varlist1=List.of("死磕Java新特性","死磕Java并发",&quo
局部变量类型推断是Java10中引入的一项重要特性,通过使用var关键字,允许我们在声明局部变量时省略显式类型。类型推断意味着编译器会查看变量的初始化器并推断出变量的类型。产生背景刚刚学Java语法时,我们就被告知:在Java中,所有的变量在使用前必须声明,所以我们就有了如下代码:inti=10;Stringstr="死磕Java新特性";List<String>list=newArrayList<>();甚至很多小伙伴已经养成了习惯,在声明变量时永远都是从左写到右,即先写变量类型,然后变量名,最后初始化,这样写有问题吗?没有问题,但是比较繁琐,简单