module
package依赖关系
只导入部分模块,提高性能
jshell
支持交互式变成, 新手开发,测试友好
接口:
允许有私有方法, 私有方法只能当前类内引用, 一般是当前类其他方法(比如说default方法)调用它
匿名内部类使用<>在8不行 9支持了
twr
8中在try()中的初始化资源自动close
try(InputStreamReader reader=new InputStreamReader(System.in)){ }
9中可以在外部初始化,try()起来即可
InputStreamReader reader=new InputStreamReader(System.in);
OutputStreamWriter writer=new OutputStreamWriter(System.out);
try(reader,writer){}
集合方法
List.of() #快速创建
stream
takeWhile
对比filter: takeWhile会止流.
dropWhile
jdk10
var list = new ArrayList()
jdk11
String 新方法:
isBlank, lines, strip, stripLeading, stripTrailing, and repeat.
Files 新方法
readString 和 writeString
Collection
toArray
String[] sampleArray = sampleList.toArray(String[]::new);
相反Predicate negate
static Predicate not(Predicate super T> target) {…}
stream支持var
String resultString = sampleList.stream() .map((@Nonnull var x) -> x.toUpperCase())…
httpclient
java命令自带javac , 自动编译
jdk13
Socket API, Server Socket
Switch 多匹配写法
return switch (month) {
case “march”, “april”, “may” -> “春天”;
case “june”, “july”, “august” -> “夏天”;
case “september”, “october”, “november” -> “秋天”;
case “december”, “january”, “february” -> “冬天”;
default -> “month erro”;
};
yield 关键字 相当于带return 的break
public static String switchJava13(String month) {
return switch (month) {
case “march”, “april”, “may”:
yield “春天”;
case “june”, “july”, “august”:
yield “夏天”;
case “september”, “october”, “november”:
yield “秋天”;
case “december”, “january”, “february”:
yield “冬天”;
default:
yield “month error”;
};
}
三双引号, 无需n支持换行
“”"
xx
“”"
jdk14
新增爱德华算法
instanceof 支持变量命名转换
if (obj instanceof ArrayList list) {
list.add(“www.wdbyte.com”);
}
#obj转成list
record #无须get/set, 不用lombok
自动给类中生成get/set
#快速定义类
public record UserDTO(String id,String nickname,String homepage) { };
#可以对构造器和字段要求.
public record Person(String name, String address) {
public Person {
Objects.requireNonNull(name);
Objects.requireNonNull(address);
}
}
#快速定义类 并自带get/set
record Student(Integer id, String name){}
Student stu = new Student(1001, “张三”);
System.out.println(stu);
System.out.println(stu.getClass());
System.out.println(stu.id());
System.out.println(stu.name());
垃圾回收器更新 jdk16 jdk17
switch 支持类型判断, 可以取代instance of
jdk18
java doc生成
注释生成
@snippet
高亮语法
@highlight



