建议 2:莫让常量蜕变成变量

说起来,感觉有点胡扯呢?常量中添加final和static怎么可能发生改变呢?不能够进行二次复制吧!
下面,我们可以就这段程序一块看一下。

public class Client {   
    public static void main(String[] args) {
        System.out.println("常量会变哦:" + Const.RAND_CONST);
    }
}

/*接口常量*/
interface Const{
    //这还是常量吗?
    public static final int RAND_CONST = new Random().nextInt();
}

RAND_CONST是常量吗?他的值会发生变化吗?答案是肯定的,并且这种定义方式也是极其不可取的,常量就是常量,在编译期间就应该确定他的值,而不是在运行期间再对其进行改动。否则,一方面程序的可读性会很差;一方面谁知道在执行过程这种会发生什么幺蛾子呢?
甭想着常量会变的这个功能来实现序列号算法、随机种子生成,除非是项目中的唯一解决方案(不能够吧!),所以常量还是作为常量使用吧!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值