Java常量

Java常量简介

在程序中存在大量的数据来代表程序的状态,其中有些数据在程序运行过程中值不能发生改变,这些数据在程序中被叫做常量。当然在实际的程序中,可以根据数据在程序运行中是否发生改变,来选择应该是使用变量代表还是常量代表。
Java中用final修饰的成员变量表示常量,值一旦给定就无法改变!

作用

常量代表程序运行过程中不能改变的值。
常量在程序运行过程中主要有2个作用:
 1. 代表常数,便于程序的修改(例如:圆周率的值)
 2. 增强程序的可读性(例如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其数值分别是1、2、3和4)
常量的语法格式和变量类型,只需要在变量的语法格式前面添加关键字final即可。在Java编码规范中,要求常量名必须大写。

语法

Java常量的语法格式如下:
final 数据类型 常量名称 = 值;
final 数据类型 常量名称1 = 值1, 常量名称2 = 值2,……常量名称n = 值n;
示例代码如下:
final double PI = 3.14;
final char MALE=‘M’,FEMALE=‘F’;
在Java语法中,常量也可以首先声明,然后再进行赋值,但是只能赋值一次。

示例代码如下:
final int UP;
UP = 1;

类型

Java静态常量

在项目中,一般都有很多静态常量,静态常量往往由于访问效率比较高。不过一般会把他们放在哪呢

一:放到Interface,因为 Java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量

二:放到文件,如Properties文件

三:放到Class,使用final String 。


第一跟第三种,会产生如下的问题:

那就是在Class 或者Interface定义的字符串常量 A = “a”  如果被其他类B使用了

这个时候如果想修改 A = “A”  则被之前被使用的其他类B必须重新编译才能生效

原因:常量,编译器是直接把常量赋给了B的使用处,并不是变量。所以对于常量A改变了, B使用A是不知道的。


解决方法:

private static final String a= "a";
        public static String getA(){
                return a;
        }

B使用的时候 就调用getA()函数,不过这样其实就比直接使用变量低效了一点点

Java局部常量

放到Class里面使用final的的类型


版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。