编程语言
首页 > 编程语言> > Java新特性(2):Java 10以后

Java新特性(2):Java 10以后

作者:互联网

再来看看Java11对http的更新,例如通过http访问某度的主页:

// 包名由Java 9的jdk.incubator.http改为Java 11的java.net.http
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
                                .uri(URI.create("http://www.baidu.com/"))
                                .build();
client.sendAsync(request, BodyHandlers.ofString())
                                .thenApply(HttpResponse::body)
                                .thenAccept(System.out::println)
                                .join();

 

(现在Lambda表达式几乎无处不在了,如果还不会的话搞不好以后Java代码都看不懂了)

Java11有如下变更:

除了http之外,比较有用的就两个:基于嵌套的访问控制(181)和飞行记录器(328)。

所谓基于嵌套的访问控制,其实就是能够判断某个类是不是另一个类的嵌套类。

/**
 * 基于嵌套的访问控制
 * 
 * @author 湘王
 */
public class OuterClass {
    class InnerClass {
        public InnerClass() {
        }

        public void printOuterInt() {
            System.out.println("InnerClass");
        }
    }

    public static void main(String[] args) {
        Class<?> outerClass = OuterClass.class;
        // 得到宿主类
        Class<?> clazz1 = InnerClass.class.getNestHost();
        System.out.println(clazz1.getName());
        // 得到内部类成员
        Class<?>[] clazz2 = OuterClass.class.getNestMembers();
        for (Class<?> class1 : clazz2) {
            System.out.println(class1.getName());
            // 判断类是否是某个类的嵌套类
            System.out.println(outerClass.isNestmateOf(class1));
        }
    }
}
 

就是这样子用的。

所谓飞行记录器,就是模仿飞机上的黑匣子,是一种低开销的事件信息收集框架,它原来是JDK商业版(是一种大厂之间合作收费的版本)中的一项分析工具,主要数据源于应用程序、JVM和OS,是在故障发生后,能够从事件记录文件中提取出有用信息对故障进行分析。到了Java11,它索性就免费了。

/**
 * 飞行记录器
 *
 * @author 湘王
 */
public class FlightRecorder {
    @Label("Hello World")

标签:JavaScript,状态,服务器,创造,函数,承诺,方法,语法
来源: