New features in java 7

前端 未结 8 956
再見小時候
再見小時候 2020-12-02 04:14

What new features in java 7 is going to be implemented? And what are they doing now?

8条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-02 05:10

    Java SE 7 Features and Enhancements from JDK 7 Release Notes

    This is the Java 7 new features summary from the OpenJDK 7 features page:

    vm  JSR 292: Support for dynamically-typed languages (InvokeDynamic)
            Strict class-file checking
    lang    JSR 334: Small language enhancements (Project Coin)
    core    Upgrade class-loader architecture
            Method to close a URLClassLoader
            Concurrency and collections updates (jsr166y)
    i18n    Unicode 6.0
            Locale enhancement
            Separate user locale and user-interface locale
    ionet   JSR 203: More new I/O APIs for the Java platform (NIO.2)
            NIO.2 filesystem provider for zip/jar archives
            SCTP (Stream Control Transmission Protocol)
            SDP (Sockets Direct Protocol)
            Use the Windows Vista IPv6 stack
            TLS 1.2
    sec     Elliptic-curve cryptography (ECC)
    jdbc    JDBC 4.1
    client  XRender pipeline for Java 2D
            Create new platform APIs for 6u10 graphics features
            Nimbus look-and-feel for Swing
            Swing JLayer component
            Gervill sound synthesizer [NEW]
    web     Update the XML stack
    mgmt    Enhanced MBeans [UPDATED]
    

    Code examples for new features in Java 1.7

    Try-with-resources statement

    this:

    BufferedReader br = new BufferedReader(new FileReader(path));
    try {
       return br.readLine();
    } finally {
       br.close();
    }
    

    becomes:

    try (BufferedReader br = new BufferedReader(new FileReader(path)) {
       return br.readLine();
    }
    

    You can declare more than one resource to close:

    try (
       InputStream in = new FileInputStream(src);
       OutputStream out = new FileOutputStream(dest))
    {
     // code
    }
    

    Underscores in numeric literals

    int one_million = 1_000_000;
    

    Strings in switch

    String s = ...
    switch(s) {
     case "quux":
        processQuux(s);
        // fall-through
    
      case "foo":
      case "bar":
        processFooOrBar(s);
        break;
    
      case "baz":
         processBaz(s);
        // fall-through
    
      default:
        processDefault(s);
        break;
    }
    

    Binary literals

    int binary = 0b1001_1001;
    

    Improved Type Inference for Generic Instance Creation

    Map> anagrams = new HashMap>();
    

    becomes:

    Map> anagrams = new HashMap<>();
    

    Multiple exception catching

    this:

    } catch (FirstException ex) {
         logger.error(ex);
         throw ex;
    } catch (SecondException ex) {
         logger.error(ex);
         throw ex;
    }
    

    becomes:

    } catch (FirstException | SecondException ex) {
         logger.error(ex);
        throw ex;
    }
    

    SafeVarargs

    this:

    @SuppressWarnings({"unchecked", "varargs"})
    public static void printAll(List... lists){
        for(List list : lists){
            System.out.println(list);
        }
    }
    

    becomes:

    @SafeVarargs
    public static void printAll(List... lists){
        for(List list : lists){
            System.out.println(list);
        }
    }
    

提交回复
热议问题