继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

jdk-1.8新特性学习笔记

慕勒551688
关注TA
已关注
手记 250
粉丝 39
获赞 133

问:局部内部类在访问他所在的方法中局部变量必须用final修饰为什么?
答:因为当调用这个方法时,局部变量如果没有用final修饰,他的生命周期和方法的生命周期是一样的,这个局部变量也会消失,那么如果局部类对象还没有马上消失想用这个局部变量,就没有了。如果用final修饰会在类加载的时候进入常量池,即使方法弹栈,常量池的常量还在,也可以继续使用。

@Test    public void jdk18(){        Demo d = new Demo();        System.out.println("-------1.8-新特新-------");        d.print();        Inter.method();//        Demo d = new Demo();          d.run();    }}interface Inter {    public default void print() {        System.out.println("Hello World");    }    public static void method() {        System.out.println("static method");    }}class Demo implements Inter {    public void run() {        int num = 10;                           //JDK8,前面的final可以省略        class Inner {            public void fun() {                System.out.println(num);            }        }        Inner i = new Inner();        i.fun();    }}


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP