java的final关键字是否在static之类的方法中存储变量?
这里是Java新手。我正在将我的iPhone应用程序移植到Android上。从我所读到的内容来看,final
关键字几乎等同于static
。但是在一个方法中它的工作原理是一样的吗
例如在Objective-C中的一个方法static Class aClass = [[aClass alloc] init];
将不会再次被重新分配,也不会在方法结束时被释放
Java中的某个方法是否会像final Class aClass = new aClass();
你也这么做吗
# 1 楼答案
不会。当块退出时,块局部变量超出范围,并且在堆栈上进行逻辑(通常是物理)分配
# 2 楼答案
Java在这方面并不像
Objective C
,而final
更像const
,因为它表示引用可能不会被更改。在您的示例中,当块结束时,final
变量将有资格进行垃圾收集,因为它不再可访问。我想你需要一个字段变量,比如请注意,按照惯例,Java类名以大写字母开头
# 3 楼答案
你混淆了Final和Static的含义
Final表示变量的值在最初声明后不能更改
静态意味着可以访问和更改变量,而无需事先实例化类
也许下面的代码会让这一点更清楚
# 4 楼答案
必须在类范围内声明变量,以便能够在方法之外访问它