为了账号安全,请及时绑定邮箱和手机立即绑定

jdk-1.8新特性学习笔记

标签:
Java

问:局部内部类在访问他所在的方法中局部变量必须用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();    }}


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消