黑马程序员技术交流社区
标题:
final的常量不是恒定不变的!
[打印本页]
作者:
Acejin
时间:
2015-8-7 11:13
标题:
final的常量不是恒定不变的!
import static java.lang.System.*;
import java.util.*;
public class FinalStaticData {
private static Random rand = new Random(); // 实例化一个Random类对象
// 随机产生0~10之间的随机数赋予定义为final的a1
private final int a1 = rand.nextInt(10);
// 随机产生0~10之间的随机数赋予定义为static final的a2
private static final int a2 = rand.nextInt(10);
public static void main(String[] args) {
FinalStaticData fdata = new FinalStaticData(); // 实例化一个对象
// 调用定义为final的a1
out.println("重新实例化对象调用a1的值:" + fdata.a1);
// 调用定义为static final的a2
out.println("重新实例化对象调用a1的值:" + fdata.a2);
// 实例化另外一个对象
FinalStaticData fdata2 = new FinalStaticData();
out.println("重新实例化对象调用a1的值:" + fdata2.a1);
out.println("重新实例化对象调用a2的值:" + fdata2.a2);
}
}
如果将随机数赋予定义为final的常量,可以做到每次运行程序是改变a1的值!
作者:
章浩
时间:
2015-8-7 12:10
在局部变量前加修饰符final,此时局部变量就会存在堆中,当引用类结束时,资源释放。只有加上static修饰时,才是真正的全局变量,无法被改变。
作者:
风华正茂
时间:
2015-8-7 12:15
学习了,楼主辛苦了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2