Java的JDK10版本新特性

			     一、局部变量类型推断

Java是一种强类型,需要引入大量的样板代码。给定好变量名,很清楚发生了什么,明显类型声明是大可不必的
JDK10新增的最大一个特性就是局部变量类型推断了,这个新功能将为Java增加一些语法糖 - 简化它并改善开发者体验。新的语法将减少与编写Java相关的冗长度,同时保持对静态类型安全性的承诺。
JDK10 可以使用var作为局部变量类型推断标识符,此符号仅适用于局部变量,增强for循环的索引,以及传统for循环的本地变量

该特性特点:

1、只针对局部变量
在这里插入图片描述
编译报错’var’ is not allowed here

2、var是保留类型。不是关键字,意味着我们还可用var来定义变量名或者是方法名,下面这样编译是可以通过的。
在这里插入图片描述
3、var不允许赋值null。
在这里插入图片描述
在这里插入图片描述
不能对初始化为null的本地变量推断类型

4、不能用var去定义我们方法的参数,虽然说方法的参数也是一个局部变量,但是方法的参数只有变量没有值,那么如果没有值的话,jdk是无法推断当前的变量应该是什么类型的。

5、局部变量类型的推断,要求你的变量的后面必须要有个确切的值

				二、垃圾收集器的优化

Stop The World
收集器不断地优化就是为了让代码暂停的时间不断地缩短
老年代:parallel OBI收集器
JDK9:新生代:parNew收集器。
jdk10全面改为G1(GarbageFrist)全收集器,G1收集器是一个全收集器,jdk5时就出现G1,只不过在jdk10的时候技术变得成熟,变成了默认的收集器

			  三、新增73个新功能扩展API类库

1、在java.util.List、Java.util.Set、Java.util.Map新增加了一个静态方法copyOf

这些方法按照其迭代顺序返回一个不可修改的列表、集合或映射包含了给定的元素的集合。如果修改会报错。
在这里插入图片描述
在这里插入图片描述

2、Java.io.ByteArrayOutputStream.toString(Charset)

重载 tostring() 方法,通过使用指定的字符集编码字节,将缓冲区的内容转换为字符串。

3、Java.io.PrintStream、java.io.PrintWriter

这两个类都有三个新的构造方法,他们需要额外的参数charset
在这里插入图片描述
根据给定的字符编码创建字符输出流,这样减少了字符编码转换带来的错误

4、java.io.Reader:transferTo方法

从这个Reader中读取所有字符串,并按照所读取的顺序将字符串写入给指定的Writer

不再需要通过循环操作流去读,然后再通过循环去操作流去写了,非常方便

5、Java.util.Formatter、java.util.Scanner

新增三个构造方法。除了其他参数之外,都需要一个charset参数

				四、线程局部管控

在不执行全局VM安全点的情况下对线程执行回调的方法。让它停止单个线程而不是全部线程。

				五、Unicode 标签扩展

增强了 java.util.Locale 和相关 API 以实现关于 BCP 47 语言标签 的 Unicode 扩展。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值