#Java版本特性

Java 11是自Java 8以来的又一个LTS版本,是目前全球使用最多的LTS版本之一。今天我们接着在Java 9 到 Java 17系列文章中来认识针对普通开发者的Java 11。 字符串API增强在Java 11中,针对String的操作进一步得到加强。避免我们在很常见的场景中引入额外的、复杂的API。 isBlank()用来判断字符串是不是空字符""或者trim()之后(" ")为空字符: String blankStr = " ";// trueboolean trueVal = blankStr.isBlank(); lines()将一个字符串按照行终止符(换行符\n或者回车符\r)进行分割,并将分割为Stream流: String newStr = "Hello Java 11 \n felord.cn \r 2021-09...

在上一篇我们对Java 9的新特性进行了一些回顾,今天接着来看看Java 10带来了什么特性。之所以需要把Java 8 到Java 17的特性归纳一遍,因为Java社区对Java 17的重视程度前所未有。话不多说,让我们走进Java 10。 Java 10从Java 10 开始,Java的迭代周期缩短为半年,半年发布一个版本。 局部变量类型推断在Java 6时初始化一个Map需要我们这样来声明: Map<String, String> map = new HashMap<String,String>(); 事实上泛型方法的参数可以通过上下文推导出来,所以在Java 7 中简化为: Map<String, String> map = new HashMap<>(); 到了Java 10 进一步升华了类型推断,我们看一个例子: var ma...

Java 17 是Java 最重要的一个LTS版本之一,但是直接从Java 8 过渡到Java 17跨度太大了,势必有些困难。所以胖哥抽时间梳理了一下从Java 9到Java 17的一些常用API的变动。今天先来看看Java 9 都有什么东西。 Java 9Java 9 最大的变化就是引入了一个JShell和模块化,日常并没有用太多,所以今天不花时间在这些功能上面。 新的创建集合的方法用过谷歌Guava类库的知道,Guava提供了创建集合的静态工厂方法,而且能够推断泛型,举个例子: List<Person> list = Lists.newArrayList();Map<KeyType, Person> map = Maps.newLinkedHashMap(); 而原生态需要各种new来定义。Java 9改善了这一现状,现在你可以: // [1, 2, 3,...