A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Acejin 中级黑马   /  2015-8-7 11:13  /  642 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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的值!

2 个回复

倒序浏览
在局部变量前加修饰符final,此时局部变量就会存在堆中,当引用类结束时,资源释放。只有加上static修饰时,才是真正的全局变量,无法被改变。
回复 使用道具 举报
风华正茂 来自手机 中级黑马 2015-8-7 12:15:31
藤椅
学习了,楼主辛苦了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马