为了账号安全,请及时绑定邮箱和手机立即绑定
  • 协议不同
    查看全部
  • 3-11 JDK11 其他新特性

    查看全部
  • 3-10 JDK11 中新增加的常用 API

    查看全部
  • 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.net.URI;
    import java.net.http.HttpClient;
    import java.net.http.HttpRequest;
    import java.net.http.HttpResponse;
    import java.util.concurrent.CompletableFuture;
    
    /**
     * 标准HTTP客户端
     */
    public class HttpClientExample {
        /**
         * 同步Get方法
         * @param uri
         * @throws Exception
         */
        private static void synGet(String uri) throws Exception {
            HttpClient client = HttpClient.newHttpClient();
            HttpRequest request = HttpRequest.newBuilder().uri(
                    URI.create(uri)).build();
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            System.out.println(response.statusCode());
            System.out.println(response.body());
        }
    
        /**
         * 异步Get方法
         * @param uri
         * @throws Exception
         */
        private static void asyncGet(String uri) throws Exception {
            HttpClient client = HttpClient.newHttpClient();
            HttpRequest request = HttpRequest.newBuilder().uri(
                    URI.create(uri)).build();
            CompletableFuture<HttpResponse<String>> future = client.sendAsync(request,HttpResponse.BodyHandlers.ofString());
            future.whenComplete((resp,ex)->{
                if (ex!=null){
                    ex.printStackTrace();
                }else {
                    System.out.println(resp.statusCode());
                    System.out.println(resp.body());
                }
            }).join();
        }
    
        public static void main(String[] args) throws Exception {
            String uri = "http://t.weather.sojson.com/api/weather/city/101030100";
            //synGet(uri);
            asyncGet(uri);
        }
    }


    查看全部
  • 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测试

    查看全部
  • G1垃圾收集器会将堆内存分配为等大小的region默认情况下是2048个region

    查看全部
  • 对象内存分配过快,mixed gc来不及清理,导致old region被沾满会触发full gc,full gc是单线程执行

    查看全部
  • 老年代占用的内存大小超过堆内存的预值时会触发mixed gc,预值可以在启动的时候指定

    查看全部
  • G1垃圾收集器

    查看全部
  • 并发表及扫描垃圾回收器

    查看全部
  • 并行垃圾收集器

    查看全部
  • 串行垃圾收集器

    查看全部

举报

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

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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