New features in java 7

前端 未结 8 940
再見小時候
再見小時候 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<String, List<String>> anagrams = new HashMap<String, List<String>>();
    

    becomes:

    Map<String, List<String>> 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<String>... lists){
        for(List<String> list : lists){
            System.out.println(list);
        }
    }
    

    becomes:

    @SafeVarargs
    public static void printAll(List<String>... lists){
        for(List<String> list : lists){
            System.out.println(list);
        }
    }
    
    0 讨论(0)
  • 2020-12-02 05:10

    Language changes:

    -Project Coin (small changes)
    -switch on Strings
    -try-with-resources
    -diamond operator
    

    Library changes:

    -new abstracted file-system API (NIO.2) (with support for virtual filesystems)
    -improved concurrency libraries
    -elliptic curve encryption
    -more incremental upgrades
    

    Platform changes:

    -support for dynamic languages
    

    Below is the link explaining the newly added features of JAVA 7 , the explanation is crystal clear with the possible small examples for each features :

    http://radar.oreilly.com/2011/09/java7-features.html

    0 讨论(0)
提交回复
热议问题