首页 > 技术文章 > Java常量(七)

animo-2020 2020-03-11 15:48 原文

所谓常量,我们可以理解为是一种特殊的变量,它的值被设定后,在程序的整个运行过程中不允许改变。

(在这里要注意常量和常量值是不同的概念,常量值是常量的具体和直观的表现形式,常量是形式化的表现。通常在程序中既可以直接使用常量值,也可以使用常量。)

程序中使用常量可以提高代码的可维护性。

例如:在项目开发时,我们需要指定用户的性别,此时可以定义一个常量SEX,赋值为 "男",在需要指定用户性别的地方直接调用此常量即可,避免了由于用户的不规范赋值导致程序出错的情况。

 

定义常量

常量与变量类似,也需要初始化,即在声明常量的同时要赋予一个初始值。常量一旦初始化就不可以被修改。

语法格式为:final dataType Name = value

其中,final是定义常量的关键字,dataType指明常量的数据类型,Name是常量的名称,value是初始值。

常量有3种类型:静态常量、成员常量和局部常量。

代码第4行是声明静态常量,在final之前用public static修饰。public static修饰的常量作用域是全局的,不需要创建对象就可以访问它,在类外部访问形式为HelloJava.PI,这种常量在编程中使用很多。

代码第5行是声明成员常量,作用域类似于成员变量,但不能修改。

代码第7行是声明局部常量,作用域类似于局部变量,但不能修改。

在定义常量时,需要注意如下内容:

在定义常量时就需要对该常量进行初始化。

final 关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。

为了与变量区别,常量取名一般都用大写字符。

当常量被设定后,一般情况下不允许再进行更改,如果更改其值将提示错误。

 

常量值

常量值又称为字面常量,它是通过数据直接表示的,因此有很多种数据类型,像整型和字符串型等。

整型常量值

Java的整型常量值主要有如下3种形式:

十进制数形式:如54、-67、0。

八进制数形式:Java中的八进制常数的表示以0开头,如0125表示十进制数85,-013表示十进制数-11。

十六进制数形式:Java中的十六进制常数的表示以0x或0X开头,如0x100表示十进制数256,-0x16表示十进制数-22。

整型(int)常量默认在内存中占32位,是具有整数类型的值,当运算过程中所需值超过32位长度时,可以把它表示为长整型(long)数值。长整型类型则要在数字后面加L或1,如697L,表示一个长整型数,它在内存中占64位。

实型常量值

Java的实型常量值主要有如下两种形式:

十进制数形式:由数字和小数点组成,且必须有小数点,如 12.34、-98.0。

科学记数法形式:如1.75e5或32&E3,其中e或E之前必须有数字,且e或E之后的数字必须为整数。

Java 实型常量默认在内存中占64位,是具有双精度型(double)的值。如果考虑到需要节省运行时的系统资源,而运算时的数据值取值范围并不大且运算精度要求不太高的情况,可以把它表示为单精度型(float)的数值。

单精度型数值一般要在该常数后面加F或f,如69.7f,表示一个float型实数,它在内存中占32位(取决于系统的版本高低)。

布尔型常量值

Java的布尔型常量只有两个值,即false(假)和true(真)。

字符型和字符串常量值

Java的字符型常量值是用单引号引起来的一个字符,如 'e'、E'。需要注意的是,Java 字符串常量值中的单引号和双引号不可混用。双引号用来表示字符串,像 "11"、"d" 等都是表示单个字符的字符串。

注意:这里表示字符和字符串的单引号和双引号都必须是英语输入环境下输入的符号。

 

除了以上所述形式的字符常量值之外,Java 还允许使用一种特殊形式的字符常量值来表示一些难以用一般字符表示的字符,这种特殊形式的字符是以\开头的字符序列,称为转义字符。

Java中常用的转义字符:

推荐阅读