首页 > 其他 > 详细

jdk-1.8新特性学习笔记

时间:2018-08-12 21:23:16      阅读:202      评论:0      收藏:0      [点我收藏+]
问:局部内部类在访问他所在的方法中局部变量必须用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();
    }
}

技术分享图片

jdk-1.8新特性学习笔记

原文:http://blog.51cto.com/357712148/2158384

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!