文档章节

JAVA关于常量

zchuanzhao
 zchuanzhao
发布于 2015/09/29 23:12
字数 362
阅读 20
收藏 0
项目代码中经常会需要定义一些常量字符串。比如一些默认取值。 定义常量字符串的方法,首先想到的就是定义一个类属性,如: public static final String CONST = "1"; 调用的时候,当然就是: String cont1 = ConstantTest.CONST; 但是这种方法有个问题。万一哪一天,常量的取值变化了,比如上文中的CONST取值变成了"2",那么常量的定义就要变成: public static final String CONST = "2"; 但是仅仅这样就够了么?不够。如果不对引用到这个常量的类进行重新编译,那么,下面的语句输出的仍然是"1": String cont1 = ConstantTest.CONST; System.out.println(cont1); 这是因为: java在编译String cont1 = ConstantTest.CONST;这个语句时,得到的结果实际是 String cont1 = "1"; 如果仅仅修改public static final String CONST = "2";而不对String cont1 = ConstantTest.CONST;所在类重新编译,那么后者的.class文件中仍然是String cont1 = "1";而不是修改后所期望的String cont1 = "2"; 这是我在项目中遇到的一个问题:一个看似不会变化,实际也一年多没有变过的值居然变了。然后所有引用了这个常量字符串的类都要重新编译、并更新对应的class文件。很受伤。 替代方案可以是用枚举类来定义常量,或者是把常量放到.properties文件中去。都可行。

© 著作权归作者所有

zchuanzhao

zchuanzhao

粉丝 50
博文 244
码字总数 145913
作品 1
福州
程序员
私信 提问
好好说说Java中的常量池之Class常量池

在Java中,常量池的概念想必很多人都听说过。这也是面试中比较常考的题目之一。在Java有关的面试题中,一般习惯通过String的有关问题来考察面试者对于常量池的知识的理解,几道简单的String面...

HollisChuang's Blog
2018/10/21
0
0
My java——JVM(内存域)三

续 My java——JVM(内存)二 写了一点JVM内存的一些操作的方法,和引出内存的分类。 是呀,java内存是我们在java编程中很少考虑到的,也没用真正的管理过。也许都知道JVM有自己的垃圾回收机...

tngou
2013/03/18
260
1
《成神之路-基础篇》JVM——JVM内存结构(已完结)

Java内存模型,Java内存管理,Java堆和栈,垃圾回收 本文是《成神之路系列文章》的第一篇,主要是关于JVM的一些介绍。 持续更新中 参考文章: Java虚拟机的内存组成以及堆内存介绍 Java堆和栈...

2018/05/05
0
0
关于Java常量定义的一点思考

前言 最近在分析httpclient(v4.2)源码的时候,发现了一个比较有意思的事情,那就是关于java中如何定义常量的问题。我想在Java中定义常量并使用常量是非常非常常见的,那么如此常见的问题,又...

算法与编程之美
2013/05/31
5.2K
5
为什么interface的变量必须是public final static的

public 感觉是因为Java对接口的要求是所有类都可以实现接口,不能对接口进行包什么的限制,所以只能是public了 static 因为接口不能实例化,所以只能是静态的 final 为什么接口成员应该是常量...

swearyd457
2013/10/10
41
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
2.2K
15
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
38
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部