我问这个,因为最后&非final有相同的范围,所以为什么VARIABLE被添加为 java中的最终变量..&当一些变量只在某个范围内访问时,将一些变量添加为final会有什么影响。
public void game()
{
final String str = "a" ;
//String str ="a" ;
class hollow
{
public void game ()
{
System.out.println(str);
}
}
}
答案 0 :(得分:0)
最终和内部课程http://en.wikipedia.org/wiki/Final_%28Java%29#Final_variables
当在方法体内定义匿名内部类时, 在该方法范围内声明为final的所有变量都是 可以从内部类中访问。一旦它被分配, 最终变量的值不能改变。这允许Java 编译器在运行时和存储中“捕获”变量的值 作为内部类中的字段的副本。一旦外部方法有 终止并且其堆栈框架已被删除,原始变量 已经消失,但内在阶级的私人副本仍然存在于班级自己的中 存储器中。