


在Java8中,接口就引入了default和static方法,这样我们可以在接口中编写方法
Java9中,接口可以支持private私有方法了
Java9新特性
/**
* @author 天天困
* @date 2025/12/10
*/
public interface test {
default void test1() {
System.out.println("test");
}
static void test2() {
System.out.println("test2");
}
default void test3() {
test1();
}
static void test4() {
test2();
}
}
/**
* @author 天天困
* @date 2025/12/10
*/
public class testImpl implements test{
}
假如我们调用的时候想让一些内部定义的方法私有化,我们就可以引入Java9在接口中的新特性,实现private
/**
* @author 天天困
* @date 2025/12/10
*/
public interface test {
private void test1() {
System.out.println("test");
}
static void test2() {
System.out.println("test2");
}
private void test3() {
test1();
}
static void test4() {
test2();
}
}
Java11新特性
Java11中引入了关键字var,它可以简化局部变量的定义
var关键字不能随便使用,只能在方法内
public class Main {
public static void main(String[] args) {
var a=1;
System.out.println(a);
}
}
以下的这种写法不行
不再方法里
public class Main {
var a=1;
public static void main(String[] args) {
}
}
赋值为null,或者定义好不赋值也不行
public class Main {
public static void main(String[] args) {
var a=null;
var b;
}
}

Java14新特性
增强版switch
可以省略break,通过箭头语法进行简化
public class Main {
public static void main(String[] args) {
int num=1;
switch (num){
case 1-> System.out.println("1");
case 2-> System.out.println("2");
case 3-> System.out.println("3");
default -> System.out.println("default");
}
}
}
代码块
public class Main {
public static void main(String[] args) {
int num=1;
switch (num){
case 1-> System.out.println("1");
case 2-> System.out.println("2");
case 3-> {
System.out.println("3");
}
default -> System.out.println("default");
}
}
}
Java15新特性
字符串拼接
以前我们拼接多行字符串需要用+号来完成,这样很不优雅,现在我们可以用三个引号来完成
public class Main {
public static void main(String[] args) {
String s= """
还能这么玩?
当然可以了
""";
System.out.println(s);
}
}
合并转义字符\
可以让指定的两行文字合并到一行里
空格转义字符\s
可以指定某个位置空一格
Java16新特性
instanceof类型判断增强
在Java16之后就不需要进行显示类型强转了,可以直接用这个新特性
Record类型
用于定义数据载体对象,当想要创建的对象,初始化赋值后,后续永远不再更改,就可以考虑用Record类型
当我们使用record关键字时,编译器会自动生成final,全参构造器,get方法,equals方法,hashcode方法,tostring方法

1955

被折叠的 条评论
为什么被折叠?



