为了账号安全,请及时绑定邮箱和手机立即绑定
  • # 配置多版本JDK

      5 ## 配置JDK1.8 JDK11 JDK12

      6 export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home

      7 export JAVA_11_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home

      8 export JAVA_12_HOME=/Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home

      9

     10 ## 默认的JDK版本

     11 export JAVA_HOME=$JAVA_8_HOME

     12 export PATH=$PATH:$JAVA_HOME/bin

     13

     14 ## 设置别名,方便切换JDK版本

     15 alias jdk8="export JAVA_HOME=$JAVA_8_HOME"

     16 alias jdk11="export JAVA_HOME=$JAVA_11_HOME"

     17 alias jdk12="export JAVA_HOME=$JAVA_12_HOME"


    查看全部
  • JDK11 新特性介绍—— JEP181: 基于嵌套的访问控制

    查看全部
  • 配置多版本 JDK 步骤

    查看全部
  • 安装 JDK 步骤

    查看全部
  • JDK12 其他新特性

    查看全部
  • JDK12 重要的新特性

    查看全部
  • JDK11 其他新特性

    查看全部
  • JDK11 重要的新特性

    查看全部
  • export JAVA_11_HOME="~/imooc_-jdk11_12/jdk-11.0.2.jdk/Contents/Home"
    export JAVA_12_HOME="~/imooc_jdk11_12/jdk-12.jdk/Contents/Home"
    export
     JAVA_HOME=$JAVA_11_HOME export PATH=$PATH:$JAVA_HOME/bin alias 
    jdk11="export JAVA_HOME=$JAVA_11_HOME"alias jdk12="export 
    JAVA_HOME=$JAVA_12_HOME"
    查看全部
  • 多版本JDK的安装和配置
    ◆配置多版本JDK
    √设置多版本环境变量:JAVA_8_HOME、JAVA_11_HOME、JAVA_12_HOME
    √配置默认环境变量:JAVA_HOME
    √设置命令别名,动态切换JDK版本:alias√查看JDK版本信息:java-version

    查看全部
  • 3-11 JDK11 其他新特性

    查看全部
  • import org.jetbrains.annotations.NotNull;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Map;
    
    public class LocalVarExample {
    
        /**
         * java8特性:lambda表达式语法
         */
        public static void lambdaInJava8() {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    System.out.println("before java8");
                }
            }).start();
    
            new Thread(()-> System.out.println("in java8")).start();
            List<String> list = Arrays.asList("java8","jdk8","1.8");
            list.forEach(w->{
                System.out.println("lambda in java8->"+w);
            });
        }
    
        /**
         *Java10 新特性:局部变量类型推断
         */
        private static void varInJava10(){
            int var =10;
            var i =10;
            var str = "java10";
            var list = new ArrayList<String>();
            var map = Map.of(1,"a",2,"b");
            for(var entry : map.entrySet()){
                System.out.println(entry);
            }
        }
    
        /**
         *Java11 新特性:允许var在声明隐式类型的lambda表达式的形式参数时使用
         */
        private static void lambdaWithVarInJava11 (){
           List<Integer> nums = Arrays.asList(9,11,23,3,7,2,8);
    //       nums.sort((s1,s2)->{
    //           if(s1.equals(s2)){
    //               return 0;
    //           }else{
    //               return s1 > s2 ? 1:-1;
    //           }
    //       });
           nums.sort((@NotNull var s1, @NotNull var s2)->{
               if (s1.equals(s2)) {
                   return 0;
               } else {
                   return s1 > s2 ? 1 : -1;
               }
           });
           nums.sort((s1,s2)-> s1 > s2 ? 1:-1);
           System.out.println(nums);
        }
    
        /**
         * Lambda参数的本地变量语法
         */
        public static void main(String[] args) {
    //        lambdaInJava8();
    //        varInJava10();
            lambdaWithVarInJava11();
        }
    }


    查看全部
  • import java.util.concurrent.TimeUnit;
    
    /**
     * 改进Aarch64函数
     */
    public class Aarch64Example {
        public static void mathOnJdk11() {
            long startTime = System.nanoTime();
            for (int i = 0; i < 100000000; i++) {
                Math.sin(i);
                Math.cos(i);
                Math.log(i);
            }
            long endTime = System.nanoTime();
            System.out.println(TimeUnit.NANOSECONDS.toMillis(endTime-startTime)+"ms");
        }
    
        public static void main(String[] args) {
            mathOnJdk11();
        }
    }


    查看全部
  • import java.lang.invoke.MethodHandle;
    import java.lang.invoke.MethodHandles;
    import java.lang.invoke.MethodType;
    
    /**
     * 动态语言API测试
     */
    public class DynamicTest {
        private static void test(){
            System.out.println("动态语言API测试");
        }
        public static void main(String[] args) throws Throwable {
            // public方法的Lookup
    //        MethodHandles.Lookup publicLookup = MethodHandles.publicLookup();
            // 所有方法的Lookup
            MethodHandles.Lookup lookup = MethodHandles.lookup();
            MethodHandle mh = lookup.findStatic(DynamicTest.class,"test", MethodType.methodType(void.class));
            mh.invokeExact();
        }
    }


    查看全部
  • 动态语言API测试

    查看全部

举报

0/150
提交
取消
课程须知
本课程是对 JDK 新版本的特性进行解读,并不会介绍 Java 语言及语法特性。所以,在学习本课程之前,需要对 Java 语言有所了解。
老师告诉你能学到什么?
1. 多版本 JDK 的安装和配置 2. JDK11 核心新特性的介绍及代码演示 3. JDK12 核心新特性的介绍及代码演示

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!