ITPub博客

首页 > IT职业 > IT生活 > jdk-1.8新特性学习笔记

jdk-1.8新特性学习笔记

IT生活 作者:dav2100 时间:2021-09-09 10:10:54 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();    }}


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4479/viewspace-2817716/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: svg使用小计
请登录后发表评论 登录
全部评论

注册时间:2019-10-17

  • 博文量
    176
  • 访问量
    17570