内部类访问的外部变量需要使用final修饰解释原因
来源:互联网 发布:mac os 开机密码 编辑:程序博客网 时间:2024/06/03 21:07
因为生命周期的原因。方法中的局部变量,方法结束后这个变量就要释放掉,final保证这个变量始终指向一个对象。
首先,内部类和外部类其实是处于同一个级别,内部类不会因为定义在方法中就会随着方法的执行完毕而跟随者被销毁。问题就来了,如果外部类的方法中的变量不定义final,那么当外部类方法执行完毕的时候,这个局部变量肯定也就被GC了,然而内部类的某个方法还没有执行完,这个时候他所引用的外部变量已经找不到了。如果定义为final,java会将这个变量复制一份作为成员变量内置于内部类中,这样的话,由于final所修饰的值始终无法改变,所以这个变量所指向的内存区域就不会变
首先,内部类和外部类其实是处于同一个级别,内部类不会因为定义在方法中就会随着方法的执行完毕而跟随者被销毁。问题就来了,如果外部类的方法中的变量不定义final,那么当外部类方法执行完毕的时候,这个局部变量肯定也就被GC了,然而内部类的某个方法还没有执行完,这个时候他所引用的外部变量已经找不到了。如果定义为final,java会将这个变量复制一份作为成员变量内置于内部类中,这样的话,由于final所修饰的值始终无法改变,所以这个变量所指向的内存区域就不会变
0 0
- 内部类访问的外部变量需要使用final修饰解释原因
- 为什么内部类访问的外部变量需要使用final修饰
- 为什么内部类访问的外部变量需要使用final修饰
- 为什么内部类访问的外部变量需要使用final修饰
- 为什么内部类访问的外部变量需要使用final修饰
- 局部内部类访问外部变量为什么需要使用final修饰
- 使用匿名内部类,隐式调用外部变量,外部变量需要final修饰
- 为什么内部类访问局部变量需要加final修饰?
- “局部内部类只能访问被final修饰的局部变量”的解释
- 内部类中访问的局部变量需用final修饰的原因
- 匿名内部类使用外部的局部变量时为什么一定要final修饰
- 为什么匿名内部类只能访问final修饰的变量
- 匿名内部类访问方法成员变量需要加final的原因及证明
- 关于jdk1.8中内部类访问局部变量不再需要添加final修饰符的新特性
- JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?
- JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?
- 内部类使用final外部变量
- 【面试对宝典40题的解释】匿名内部类访问外部类中的局部变量必须是final属性
- Ubuntu14.04利用byzanz制作gif格式动画
- 利用RCurl实现爬虫实战
- 软件工程的一些基本概念总结(北邮版本)
- sgu278:Fuel(线性规划)
- 日语学习之沪江N3基础 20150622 -4
- 内部类访问的外部变量需要使用final修饰解释原因
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第十五课:Cocos2D-X事件处理1-7
- Struts的中文filter
- YTUOJ-在数组中查找数字【数组】
- leetcode 14: Swap Nodes in Pairs
- Java序列化Serializable初识(2)——与SignedObject结合使用
- Qt一个错误的解决方法
- 51nod 1165 整边直角三角形的数量
- test