为了账号安全,请及时绑定邮箱和手机立即绑定
  • 标记整理算法

    查看全部
  • 跟踪收集算法

    查看全部
  • 垃圾回收值引用计数算法

    查看全部
  • jdk11单文件源文件运行只需要java helloworld.java,不再需要javac编译

    查看全部
  • jdk10允许使用var关键字来定义变量:var i=10(必须初始化,否则编译报错,一旦初始化完成过后类型就会确定,不能再赋予其他类型的值,即i不能赋值为“abc”或者2.0等非int类型的值)

    查看全部
  • jdk11标准的http请求,可以不用依赖第三方的http工具包

    查看全部
  • 优化64位架构

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


    查看全部
  • jdk11之前的版本通过反射访问private修饰的属性成员需field.setaccessable(),而jdk11则不需要设置

    查看全部
  • export JAVA_11_HOME=...

    export JAVA_12_HOME=...

    export JAVA_HOME=$JAVA_11_HOME

    alias jdk11="export JAVA_HOME=$JAVA_11_HOME"

    alias jdk12="export JAVA_HOME=$JAVA_12_HOME"

    通过配置可以设置默认jdk以及动态切换jdk版本,比如这个配置默认是使用jdk11,如果想使用jdk12的话只要只想jdk12即可实现切换

    查看全部
  • 摘要

    开发一个处理内存分配但不实现任何实际内存回收机制的GC。一旦可用的Java堆耗尽,JVM将关闭。

    目标

    提供完全被动的GC实现,具有有限的分配限制和尽可能低的延迟开销,但代价是内存占用和内存吞吐量。成功的实现是孤立的代码更改,不会触及其他GC,并且在JVM的其余部分中进行最小的更改。


    查看全部
  • Unicode10执行结果为图形

    查看全部
    0 采集 收起 来源:Unicode 10

    2019-04-25

  • JEP 327:Unicode 10

    http://openjdk.java.net/jeps/327

    摘要

    升级现有的平台API,支持10.0版本中的Unicode标准

    http://unicode.org/versions/Unicode10.0.0/

    目标

    支持最新版本的Unicode,主要在以下类中:

    • Character并且Stringjava.lang封装

    • NumericShaperjava.awt.font包中,和

    • BidiBreakIteratorNormalizerjava.text包中。

    非目标

    此JEP将不会实现四个相关的Unicode规范:

    • UTS#10,Unicode校对算法

    • UTS#39,Unicode安全机制

    • UTS#46,Unicode IDNA兼容性处理

    • UTS#51,Unicode表情符号

    动机

    Unicode是一个不断发展的行业标准,因此我们必须使Java与最新版本保持一致。

    描述

    Java SE 10实现了Unicode 8.0。Unicode 9.0增加了7,500个字符和6个新脚本,Unicode 10.0.0增加了8,518个字符和4个新脚本。此升级将包括Unicode 9.0更改,因此将添加总共16,018个字符和10个新脚本。


    查看全部
    0 采集 收起 来源:Unicode 10

    2019-04-25

  • JEP 323:Lambda参数的本地变量语法

    http://openjdk.java.net/jeps/323

    摘要

    允许var在声明隐式类型的lambda表达式的形式参数时使用。

    目标

    • 将隐式类型的lambda表达式中的形式参数声明的语法与局部变量声明的语法对齐。

    非目标

    • 将任何其他类型的变量声明(例如,方法的形式参数)的语法与局部变量声明的语法对齐。

    动机

    一个lambda表达式可以被隐式类型,其中类型的所有形式参数都推断出:

    (x, y) -> x.process(y)    // implicitly typed lambda expression

    Java SE 10使隐式类型可用于局部变量:

    var x = new Foo();
    for (var x : xs) { ... }
    try (var x = ...) { ... } catch ...

    为了与局部变量保持一致,我们希望允许'var'用于隐式类型的lambda表达式的形式参数:

    (var x, var y) -> x.process(y)   // implicit typed lambda expression

    统一性的一个好处是修饰符,特别是注释,可以应用于局部变量和lambda形式,而不会失去简洁性:

    @Nonnull var x = new Foo();
    (@Nonnull var x, @Nullable var y) -> x.process(y)

    描述

    对于隐式类型的lambda表达式的形式参数,允许使用保留的类型名称var,以便:

    (var x, var y) -> x.process(y)

    相当于:

    (x, y) -> x.process(y)

    隐式类型的lambda表达式必须var用于其所有形式参数,或者不能用于任何形式参数。此外,var仅允许隐式类型化lambda表达式的形式参数---显式类型化的lambda表达式继续为其所有形式参数指定清单类型,因此某些形式参数不允许其他人使用清单类型var。以下示例是非法的:

    (var x, y) -> x.process(y)         // Cannot mix 'var' and 'no var' in implicitly typed lambda expression
    (var x, int y) -> x.process(y)     // Cannot mix 'var' and manifest types in explicitly typed lambda expression

    从理论上讲,有一个lambda表达式可能就像上面的最后一行一样,它是半显式类型(或半隐式类型,取决于你的观点)。但是,它超出了此JEP的范围,因为它会深刻影响类型推断和重载决策。这是保持lambda表达式必须指定所有清单参数类型或不指定的限制的主要原因。我们还希望强制推断隐式类型化lambda表达式的参数的类型是否相同无论是否var使用。我们可能会在未来的JEP中回到局部推断的问题。此外,我们不希望损害简写语法的简洁性,因此我们不允许使用以下表达式:

    var x -> x.foo()


    查看全部
  • JEP 321:HTTP客户端(标准)

    http://openjdk.java.net/jeps/321

    摘要

    通过JEP 110标准化JDK 9中引入的孵化 HTTP客户端API ,并在JDK 10中进行更新。

    目标

    除了JEP 110目标之外,这个JEP还将:

    • 考虑孵化的API收到的反馈,

    • java.net.http包中提供基于孵育的API 的标准化 API,和

    • 删除孵化的API。

    动机

    这个JEP的动机与JEP 110动机保持一致 。


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

举报

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

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

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