JDK1.7新特性

「这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战」。

茫茫人海千千万万,感谢这一秒你看到这里。希望我的文章对你的有所帮助!

愿你在未来的日子,保持热爱,奔赴山海!

题记:昨天我们已经小小的了解JDK1.7对异常的支持,接下来就让我们额外的学习下JDK1.7新特性吧!一起瞧瞧呗!

😛JDK1.7有关新特性

catch多种异常并抛出新的异常

还有个异常相关的新特性可以瞧瞧,见一见,不见白不见是吧!

  • 在JDK1.7之前catch 多个异常是这样的:

    try{
         编写可能会出现异常的代码
    }catch(异常类型A  e){  当try中出现A类型异常,就用该catch来捕获.
         处理异常的代码
    }catch(异常类型B  e){  当try中出现B类型异常,就用该catch来捕获.
         处理异常的代码
    }
    复制代码
  • JDK1.7及以后可以这样:

    try{
        编写可能会出现异常的代码
    }catch (异常类型A | 异常类型B e) {
        处理异常的代码
    }
    复制代码

    但是呢,这个是同类型异常才可以这样定义。

switch中可以使用字串了

在之前版本中,switch语句中的括号是只能支持 byte、short、int、char或者他们对应的封装类。 现在可以在原有基础上增加了String类。

接下来就让我们一起瞧瞧呗!

package com.gt;
​
public class SwitchTest {
​
    public static void main(String[] args) {
​
        // 测试switch 新特性
        String status = "complete";
​
        switch (status) {
            case "cancel":
                System.out.println("成功取消订单");
                break;
            case "success":
                System.out.println("下单成功");
                break;
            case "complete":
                System.out.println("订单完成");
                break;
            default:
                System.out.println("输入错误,请重新输入");
        }
    }
}
复制代码

可以看看输出结果:

订单完成
复制代码

创建泛型时类型推断

泛型实例的创建可以通过类型推断来简化,可以去掉后面new部分的泛型类型,只用<>就可以了。

相当于只要编译器可以从上下文中推断出类型参数,你就可以用一对空着的尖括号<>来代替泛型参数。

现在来看看:

package com.gt;
​
import java.util.ArrayList;
import java.util.List;
​
public class GenericsTest {
​
    // 测试泛型自动类型推断
    public static void main(String[] args) {
​
        // 在JDK1.7前 类型需要这样写
        List<Integer> arrayList = new ArrayList<Integer>();
​
        // 在JDK1.7后 类型需就可以这样写
        // 因为编译器可以从前面(List)推断出推断出类型参数,所以后面的ArrayList之后可以不用写泛型参数了,
        // Java SE7 只支持有限的类型推断:只有构造器的参数化类型在上下文中被显著的声明了,你才可以使用类型推断,否则不行。
        List<Integer> arrayList2 = new ArrayList<>();
​
        arrayList.add(11);
        arrayList.add(22);
        arrayList2.add(66);
        arrayList2.add(88);
​
        for (Integer item : arrayList) {
            System.out.println("当前数 = " + item);
        }
​
        for (Integer item2 : arrayList2) {
            System.out.println("当前数 = " + item2);
        }
​
    }
}
复制代码

现在来看看执行结果:

当前数 = 11
当前数 = 22
当前数 = 66
当前数 = 88
复制代码

当然还有小细节

  1. 数值可加下划线

    int one_million = 1_000_000;
    复制代码
  1. 支持二进制文字

    int binary = 0b1001_1001;
    复制代码
  1. 新增一些取环境信息的工具方法

    File System.getUserHomeDir() // 当前用户目录
    File System.getUserDir() // 启动java进程时所在的目录5
    File System.getJavaIoTempDir() // IO临时文件夹
    File System.getJavaHomeDir() // JRE的安装目录
    复制代码

🌸总结

相信各位看官都对JDK1.7新特性有了一些了解吧,当然还有很多的JDK1.7新特性等着大家解锁,这里只讲解一点点啦!那我们继续期待下一章的更多的内容吧!欢迎期待下一章的到来!

让我们也一起加油吧!本人不才,如有什么缺漏、错误的地方,也欢迎各位人才大佬评论中批评指正!当然如果这篇文章确定对你有点小小帮助的话,也请亲切可爱的人才大佬们给个点赞、收藏下吧,一键三连,非常感谢!

学到这里,今天的世界打烊了,晚安!虽然这篇文章完结了,但是我还在,永不完结。我会努力保持写文章。来日方长,何惧车遥马慢!

感谢各位看到这里!愿你韶华不负,青春无悔!

\