【小家java】java5新特性(简述十大新特性) 重要一跃
【小家java】java6新特性(简述十大新特性) 鸡肋升级
【小家java】java7新特性(简述八大新特性) 不温不火
【小家java】java8新特性(简述十大新特性) 饱受赞誉
【小家java】java9新特性(简述十大新特性) 褒贬不一
【小家java】java10新特性(简述十大新特性) 小步迭代
【小家java】java11新特性(简述八大新特性) 首个重磅LTS版本java
业绩好的员工总想着再突破,没业绩的员工总想着我还能呆多久,这是境界不同。因此圈子很重要,格局更重要web
2018年3月20日,Java 10 正式发布,这一次没有跳票安全
它号称有109项新特性,包含12个JEP。微信
须要注意的是,本次Java10并非Oracle的官方LTS版本,因此我们能够先了解新特性。而后坐等java11的发布再考虑在生产中使用吧svg
这个新功能将为Java增长一些语法糖 - 简化它并改善开发者体验。新的语法将减小与编写Java相关的冗长度,同时保持对静态类型安全性的承诺。函数
这多是Java10给开发者带来的最大的一个新特性。下面主要看例子:工具
public static void main(String[] args) { var list = new ArrayList<String>(); list.add("hello,world!"); System.out.println(list); }
这是最日常的使用。注意赋值语句右边,最好写上泛型类型,不然会有以下状况:优化
public static void main(String[] args) { var list = new ArrayList<>(); list.add("hello,world!"); list.add(1); list.add(1.01); System.out.println(list); }
list什么均可以装,很是的不安全了。和js等语言不一样的是,毕竟Java仍是强类型的语言,因此下面语句是编译报错的:atom
public static void main(String[] args) { var list = new ArrayList<String>(); list.add("hello,world!"); System.out.println(list); list = new ArrayList<Integer>(); //编译报错 }
**注意:注意:注意:**下面几点使用限制spa
public static void main(String[] args) { //局部变量初始化 var list = new ArrayList<String>(); //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 ArrayList<String>(); //编译报错 public static List<String> list = new ArrayList<>(); //正常编译经过
构造函数参数
方法返回类型
字段
捕获表达式(或任何其余类型的变量声明)
JDK 10中有2个JEP专门用于改进当前的垃圾收集元素。
Java 10的第二个JEP是针对G1的并行彻底GC(JEP 307),其重点在于经过彻底GC并行来改善G1最坏状况的等待时间。G1是Java 9中的默认GC,而且此JEP的目标是使G1平行。
这不是让开发者用来控制垃圾回收的接口;而是一个在 JVM 源代码中的容许另外的垃圾回收器快速方便的集成的接口。
这是在 JVM 内部至关低级别的更改,如今将容许在不运行全局虚拟机安全点的状况下实现线程回调。这将使得中止单个线程变得可能和便宜,而不是只能启用或中止全部线程。
在 JDK9 中,有 8 个仓库: root、corba、hotspot、jaxp、jaxws、jdk、langtools 和 nashorn 。在 JDK10 中这些将被合并为一个,使得跨相互依赖的变动集的存储库运行 atomic commit (原子提交)成为可能。
String toString(Charset): 重载 toString(),经过使用指定的字符集解码字节,将缓冲区的内容转换为字符串。
这3个接口都增长了一个新的静态方法,copyOf(Collection)。这些函数按照其迭代顺序返回一个不可修改的列表、映射或包含给定集合的元素的集合。
增长了一个新的构造函数,它接受一个 int 参数。这将建立一个没有默认值的空属性列表,而且指定初始大小以容纳指定的元素数量,而无需动态调整大小。还有一个新的重载的 replace 方法,接受三个 Object 参数并返回一个布尔值。只有在当前映射到指定值时,才会替换指定键的条目。
toUnmodifiableList():
toUnmodifiableSet():
toUnmodifiableMap(Function, Function):
toUnmodifiableMap(Function, Function, BinaryOperator):
这四个新方法都返回 Collectors ,将输入元素汇集到适当的不可修改的集合中。
从JDK中移除了javah工具,这个很简单而且很重要。
JDK10的升级幅度其实主要仍是以优化为主,并无带来太多对使用者惊喜的特性。因此建议广大开发者仍是坐等Java11吧,预计2018年9月份就会到来,最重要的是它是LTS版本哦,因此是能够运用在生产上的。
若群二维码失效,请加微信号(或者扫描下方二维码):fsx641385712。
而且备注:“java入群” 字样,会手动邀请入群