Java7/8/9语法新特性

本文详细介绍了Java7的新特性,包括二进制变量表示、Switch支持String、Try-with-resource等。Java8引入了接口默认方法、Lambda表达式、Stream以及Optional类。Java9则带来了平台级模块系统、JShell、改进的Javadoc和HTTP/2支持等变革,这些新特性极大地丰富了Java的语法和功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java7/8/9语法新特性

Java7

Java7的新特性是相对于Java6而言的,增加的特性如下:

二进制变量的表示,支持将整数类型用二进制来表示,用0b开头。

    // 所有整数 int, short,long,byte都可以用二进制表示  
    // An 8-bit 'byte' value:  
    byte aByte = (byte) 0b00100001;  

    // A 16-bit 'short' value:  
    short aShort = (short) 0b1010000101000101;  

    // Some 32-bit 'int' values:  
    intanInt1 = 0b10100001010001011010000101000101;  
    intanInt2 = 0b101;  
    intanInt3 = 0B101; // The B can be upper or lower case.  

    // A 64-bit 'long' value. Note the "L" suffix:  
    long aLong = 0b1010000101000101101000010100010110100001010001011010000101000101L;  

    // 二进制在数组等的使用  
    final int[] phases = { 0b00110001, 0b01100010, 0b11000100, 0b10001001,  
    0b00010011, 0b00100110, 0b01001100, 0b10011000 };  

Switch语句支持string类型

switch (dayOfWeekArg) {  
             case "Monday":  
                 typeOfDay = "Start of work week";  
                 break;  
             case "Tuesday":  
             case "Wednesday":  
             case "Thursday":  
                 typeOfDay = "Midweek";  
                 break;  
             case "Friday":  
                 typeOfDay = "End of work week";  
                 break;  
             case "Saturday":  
             case "Sunday":  
                 typeOfDay = "Weekend";  
                 break;  
             default:  
                 throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);  
         }  

Try-with-resource语句

注意:实现java.lang.AutoCloseable接口的资源都可以放到try中,跟final里面的关闭资源类似; 按照声明逆序关闭资源 ;Try块抛出的异常通过Throwable.getSuppressed获取

try (java.util.zip.ZipFile zf = new java.util.zip.ZipFile(zipFileName);  
    java.io.BufferedWriter writer = java.nio.file.Files   
    .newBufferedWriter(outputFilePath, charset)) {  
    // Enumerate each entry  
    for (java.util.Enumeration entries = zf.entries(); entries  
    .hasMoreElements();) {  
    // Get the entry name and write it to the output file  
    String newLine = System.getProperty("line.separator");  
    String zipEntryName = ((java.util.zip.ZipEntry) entries  
    .nextElement()).getName() + newLine;  
    writer.write(zipEntryName, 0, zipEntryName.length());  
    }  
    }  

Catch多个异常

public static void main(String[] args) throws Exception {  
    try {  
    testthrows();  
    } catch (IOException | SQLException ex) {  
    throw ex;  
    }  
    }  
    public static void testthrows() throws IO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Usher_Ou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值