做网站都能用什么做,前端作业做一个网站,网站备案ip查询网站,win7和wordpressJava 10 新特性
Java10它号称有109项新特性#xff0c;包含12个JEP。
需要注意的是#xff0c;本次Java10并不是Oracle的官方LTS版本#xff0c;所以咱们可以先了解新特性。然后坐等java11的发布再考虑在生产中使用吧。
特性列表
局部变量的类型推断 var关键字
GC改进和…Java 10 新特性
Java10它号称有109项新特性包含12个JEP。
需要注意的是本次Java10并不是Oracle的官方LTS版本所以咱们可以先了解新特性。然后坐等java11的发布再考虑在生产中使用吧。
特性列表
局部变量的类型推断 var关键字
GC改进和内存管理 并行全垃圾回收器 G1
垃圾回收器接口
线程-局部变量管控
合并 JDK 多个代码仓库到一个单独的储存库中
新增APIByteArrayOutputStream
新增APIList、Map、Set
新增APIjava.util.Properties
新增API Collectors收集器
其它特性
1、局部变量的类型推断 var关键字
这个新功能将为Java增加一些语法糖 - 简化它并改善开发者体验。新的语法将减少与编写Java相关的冗长度同时保持对静态类型安全性的承诺。
这可能是Java10给开发者带来的最大的一个新特性。下面主要看例子 public static void main(String[] args) {var list new ArrayListString();list.add(helloworld);System.out.println(list);}
这是最平常的使用。注意赋值语句右边最好写上泛型类型否则会有如下情况
public static void main(String[] args) {var list new ArrayList();list.add(helloworld);list.add(1);list.add(1.01);System.out.println(list);}
么都可以装非常的不安全了。和js等语言不同的是毕竟Java还是强类型的语言所以下面语句是编译报错的
public static void main(String[] args) {var list new ArrayListString();list.add(helloworld);System.out.println(list);list new ArrayListInteger(); //编译报错}
注意注意注意下面几点使用限制
局部变量初始化
for循环内部索引变量
传统的for循环声明变量
public static void main(String[] args) {//局部变量初始化var list new ArrayListString();//for循环内部索引变量for (var s : list) {System.out.println(s);}//传统的for循环声明变量for (var i 0; i list.size(); i) {System.out.println(i);}}
下面这几种情况都是不能使用var的
方法参数
全局变量 public static var list new ArrayListString(); //编译报错public static ListString list new ArrayList(); //正常编译通过
构造函数参数
方法返回类型
字段
捕获表达式或任何其他类型的变量声明
2、GC改进和内存管理 并行全垃圾回收器 G1
JDK 10中有2个JEP专门用于改进当前的垃圾收集元素。
Java 10的第二个JEP是针对G1的并行完全GCJEP 307其重点在于通过完全GC并行来改善G1最坏情况的等待时间。G1是Java 9中的默认GC并且此JEP的目标是使G1平行。
3、垃圾回收器接口
这不是让开发者用来控制垃圾回收的接口而是一个在 JVM 源代码中的允许另外的垃圾回收器快速方便的集成的接口。
4、线程-局部变量管控
这是在 JVM 内部相当低级别的更改现在将允许在不运行全局虚拟机安全点的情况下实现线程回调。这将使得停止单个线程变得可能和便宜而不是只能启用或停止所有线程。
5、合并 JDK 多个代码仓库到一个单独的储存库中
在 JDK9 中有 8 个仓库 root、corba、hotspot、jaxp、jaxws、jdk、langtools 和 nashorn 。在 JDK10 中这些将被合并为一个使得跨相互依赖的变更集的存储库运行 atomic commit 原子提交成为可能。
6、新增APIByteArrayOutputStream
String toString(Charset): 重载 toString()通过使用指定的字符集解码字节将缓冲区的内容转换为字符串。
7、新增APIList、Map、Set
这3个接口都增加了一个新的静态方法copyOf(Collection。这些函数按照其迭代顺序返回一个不可修改的列表、映射或包含给定集合的元素的集合。
8、新增APIjava.util.Properties
增加了一个新的构造函数它接受一个 int 参数。这将创建一个没有默认值的空属性列表并且指定初始大小以容纳指定的元素数量而无需动态调整大小。还有一个新的重载的 replace 方法接受三个 Object 参数并返回一个布尔值。只有在当前映射到指定值时才会替换指定键的条目。
9、新增API Collectors收集器
toUnmodifiableList():
toUnmodifiableSet():
toUnmodifiableMap(Function, Function):
toUnmodifiableMap(Function, Function, BinaryOperator):
这四个新方法都返回 Collectors 将输入元素聚集到适当的不可修改的集合中。
10、其它特性
线程本地握手JEP 312
其他Unicode语言 - 标记扩展JEP 314
基于Java的实验性JIT编译器
根证书颁发认证CA
删除工具javahJEP 313
从JDK中移除了javah工具这个很简单并且很重要。
最后
JDK10的升级幅度其实主要还是以优化为主并没有带来太多对使用者惊喜的特性。所以建议广大开发者还是研究一下2018年9月份到来Java11吧最重要的是它是LTS版本哦所以是可以运用在生产上的。