为了账号安全,请及时绑定邮箱和手机立即绑定
  • 3-10 JDK11 中新增加的常用 API

    查看全部
  • <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>11</release>
                </configuration>
            </plugin>
        </plugins>
    </build>


    查看全部
  • 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);
        }
    }


    查看全部
  • methodhandler相较于反射更轻量级:

    1.本质上讲两个都是在模拟方法的调用,但Reflection是模拟java代码层次的调用,而MethodHandle是模拟的字节码层次的,上面的例子中是模拟的invokevirtual指令。

    2.Reflection是重量级的,而MethodHandle是轻量级的。

    最重要的是,Reflection 只为java服务,而MethodHandle则可以服务于所有的运行在java虚拟机上的语言。

    public class MethodHandlerTest {
        static class A {
            public void println(String s) {
                System.err.println("i am class A:" + s);
            }
        }
    
        public static void main(String[] args) throws Throwable {
            Object object = System.currentTimeMillis() % 2 == 0 ? System.out : new A();
            //无论 object是要那个实现类,下面的都能正确调用 到println方法
            getPrintlnMh(object).invokeExact("lisj");
        }
    
        private static MethodHandle getPrintlnMh(Object target) throws Exception {
            MethodType methodType = MethodType.methodType(void.class, String.class);
            return MethodHandles.lookup().findVirtual(target.getClass(), "println", methodType).bindTo(target);
        }
    }


    查看全部
  • JDK安装(linux)

    查看全部
  • JDK12新特性

    查看全部

  • JDK11新特性

    查看全部
  • # 配置多版本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 重要的新特性

    查看全部
首页上一页1234下一页尾页

举报

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

微信扫码,参与3人拼团

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

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