• java9新特性


    1.模块就是代码和数据的封装体。模块的代码被组织成多个包,每个包中包含Java类和接口;模块的数据则包括资源文件和其他静态信息。 跳过..
     2.REPL (JShell) 类似python的交互式 跳过 .... 
    3.改进的 Javadoc 跳过... 
    4.多版本兼容 JAR 包 跳过.. 
    5.集合工厂方法
    

      旧方法创建集合

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
     
    public class Tester {
       public static void main(String []args) {
          Set<String> set = new HashSet<>();
          set.add("A");
          set.add("B");
          set.add("C");
          set = Collections.unmodifiableSet(set);
          System.out.println(set);
          List<String> list = new ArrayList<>();
     
          list.add("A");
          list.add("B");
          list.add("C");
          list = Collections.unmodifiableList(list);
          System.out.println(list);
          Map<String, String> map = new HashMap<>();
     
          map.put("A","Apple");
          map.put("B","Boy");
          map.put("C","Cat");
          map = Collections.unmodifiableMap(map);
          System.out.println(map);
       }
    }
    
    [A, B, C]
    [A, B, C]
    {A=Apple, B=Boy, C=Cat}
    
    
    Java 9 中,以下方法被添加到 List,Set 和 Map 接口以及它们的重载对象。
    
    static <E> List<E> of(E e1, E e2, E e3);
    static <E> Set<E>  of(E e1, E e2, E e3);
    static <K,V> Map<K,V> of(K k1, V v1, K k2, V v2, K k3, V v3);
    static <K,V> Map<K,V> ofEntries(Map.Entry<? extends K,? extends V>... entries)
    
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.List;
    import java.util.AbstractMap;
    import java.util.Map;
    import java.util.Set;
     
    public class Tester {
     
       public static void main(String []args) {
          Set<String> set = Set.of("A", "B", "C");      
          System.out.println(set);
          List<String> list = List.of("A", "B", "C");
          System.out.println(list);
          Map<String, String> map = Map.of("A","Apple","B","Boy","C","Cat");
          System.out.println(map);
      
          Map<String, String> map1 = Map.ofEntries (
             new AbstractMap.SimpleEntry<>("A","Apple"),
             new AbstractMap.SimpleEntry<>("B","Boy"),
             new AbstractMap.SimpleEntry<>("C","Cat"));
          System.out.println(map1);
       }
    }
    
    
    
    [A, B, C]
    [A, B, C]
    {A=Apple, B=Boy, C=Cat}
    {A=Apple, B=Boy, C=Cat}
    

     6.接口中可以有私有方法

    public class Tester {
       public static void main(String []args) {
          LogOracle log = new LogOracle();
          log.logInfo("");
          log.logWarn("");
          log.logError("");
          log.logFatal("");
          
          LogMySql log1 = new LogMySql();
          log1.logInfo("");
          log1.logWarn("");
          log1.logError("");
          log1.logFatal("");
       }
    }
    final class LogOracle implements Logging { 
    }
    final class LogMySql implements Logging { 
    }
    interface Logging {
       String ORACLE = "Oracle_Database";
       String MYSQL = "MySql_Database";
     
       private void log(String message, String prefix) {
          getConnection();
          System.out.println("Log Message : " + prefix);
          closeConnection();
       }
       default void logInfo(String message) {
          log(message, "INFO");
       }
       default void logWarn(String message) {
          log(message, "WARN");
       }
       default void logError(String message) {
          log(message, "ERROR");
       }
       default void logFatal(String message) {
          log(message, "FATAL");
       }
       private static void getConnection() {
          System.out.println("Open Database connection");
       }
       private static void closeConnection() {
          System.out.println("Close Database connection");
       }
    }
    
    
    
    
    以上实例执行输出结果为:
    Open Database connection
    Log Message : INFO
    Close Database connection
    Open Database connection
    Log Message : WARN
    Close Database connection
    Open Database connection
    Log Message : ERROR
    Close Database connection
    Open Database connection
    Log Message : FATAL
    Close Database connection
    

      7.进程 API

    在 Java 9 之前,Process API 仍然缺乏对使用本地进程的基本支持,例如获取进程的 PID 和所有者,进程的开始时间,进程使用了多少 CPU 时间,多少本地进程正在运行等。

    Java 9 向 Process API 添加了一个名为 ProcessHandle 的接口来增强 java.lang.Process 类。

    跳过...

  • 相关阅读:
    前端备战21秋招之操作系统,线程/进程/死锁
    前端备战秋招之计算机网络,这一篇足矣
    VS Code项目中共享自定义的代码片段方案
    eslint插件开发教程
    2020前端春招经验分享,从面试小白到老油条的蜕变
    使用nodejs从控制台读入内容
    js实现展开多级数组
    js使用typeof与instanceof相结合编写一个判断常见变量类型的函数
    07-数据结构
    06-流程控制
  • 原文地址:https://www.cnblogs.com/q1359720840/p/10990885.html
Copyright © 2020-2023  润新知