为啥我的局部内部类可以访问非final的局部变量?
今天看书的时候看到了局部内部类,书上说局部内部类可以访问局部变量,但是必须是final的。因为局部变量在方法调用之后就消失了,使用final声明的话该局部变量会存入堆中,和内部类有一样的声明周期。但是我写了一个局部内部类,竟然可以访问非final的局部变量,请问这是什么回事呢。ps:我的jdk是8 难道和这个有关系?
public class jubuneibulei {
public void p(int a, int b){
class te{
void print(){
System.out.println(a);
}
}
new te().print();
}
public static void main(String[] args) {
new jubuneibulei().p(111, 222);
}
}
...全文
相关推荐
详解Java的闭包
主要介绍了详解Java的闭包,作者从Lambda和默认方法等重要特性深入讲解,极力推荐!需要的朋友可以参考下
java常见面试题集
这是java常见的面试题集。希望给基础不怎么好的好好看一看,我最近面试遇到过很多上面的题。
JAVA面试题目
经典的JAVA基础面试题目,非常适合初学者,通过前辈们面试的经验总结出来的,个人觉得还很好,基本上涵盖了
2014年Java最全面试题以及答案.
2014年Java最全面试题以及答案。包括java基础,J2EE,JSP SSH
java面试宝典2012版
java程序员常出的面试问题解决,包括javase,数据库,web,ssh三大框架的问题还有一些算法的描述


Java SE
