为什么在java中的内部类中使用final变量

时间:2013-03-05 12:02:32

标签: java

我问这个,因为最后&非final有相同的范围,所以为什么VARIABLE被添加为 java中的最终变量..&当一些变量只在某个范围内访问时,将一些变量添加为final会有什么影响。

public void game()
{
    final String str = "a" ;
        //String str ="a" ;

    class hollow 
    {
        public void game ()
        {
            System.out.println(str);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

最终和内部课程http://en.wikipedia.org/wiki/Final_%28Java%29#Final_variables

  

当在方法体内定义匿名内部类时,   在该方法范围内声明为final的所有变量都是   可以从内部类中访问。一旦它被分配,   最终变量的值不能改变。这允许Java   编译器在运行时和存储中“捕获”变量的值   作为内部类中的字段的副本。一旦外部方法有   终止并且其堆栈框架已被删除,原始变量   已经消失,但内在阶级的私人副本仍然存在于班级自己的中   存储器中。