-
2021-02-28 14:38:28
一、接口中定义常量:
由于java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量。public interface Constants{
String name = "111";
}
public class read{
public static void main(String[] args){
System.out.println("Class Constants's name = " + Constants.name);
}
}
由于引用了一个static final 的字段,编译器已经将interface Constants中name的内容编译进了class read中,而不是对其引用。因此只有重新编译class read,interface Constants中name发生的变化才能在class read中反映。
二、类中定义public class Constants{
private static final String name = "111";
public static String getName(){
return name;
}
}
public class read{
public static void main(String[] args){
System.out.println("Class Constants's name = " + Constants.getName());
}
}
class read中是对Constants class的getName()方法的引用,当常量name的值改变时我们只需对class Constants中的常量做修改并重新编译,无需编译class read。
我们可以使用jdk提供的反编译工具javap反编译read.class看个究竟,输入:javap -c read即可查看两种方式的不同。
更多相关内容 -
java中定义常量方法介绍
2020-09-04 23:10:03java中只有static和非static变量,这个属于每个类的,如果需要全局变量比如PI(3.14...),可以写一个类Math,定义static变量PI,调用Math.PI就可以使用了,这样就达到我们使用全局变量的目的了 -
Java常量定义方法汇总
2021-03-04 03:24:56Java常量定义方法汇总时间:2017-06-13来源:华清远见JAVA学院实际工作开发中,我们经常会使用到常量。那么Java常量如何定义呢?Java常量定义的规范是什么?定义Java常量又有哪些注意事项呢?今天华清Java学院小编整理...Java常量定义方法汇总
时间:2017-06-13 来源:华清远见JAVA学院
实际工作开发中,我们经常会使用到常量。那么Java常量如何定义呢?Java常量定义的规范是什么?定义Java常量又有哪些注意事项呢?今天华清Java学院小编整理了一份Java常量定义方法汇总,和大家一起来讨论下这些问题。
Java常量定义方法汇总
Java常量定义规范
所有单词的字母都是大写,如果有多个单词,那么使用下划线连接即可。
Java常量定义方法一:采用接口(Interface)中变量默认为static final的特性
interface ConstantInterface {
String SUNDAY = "SUNDAY";
String MONDAY = "MONDAY";
String TUESDAY = "TUESDAY";
String WEDNESDAY = "WEDNESDAY";
String THURSDAY = "THURSDAY";
String FRIDAY = "FRIDAY";
String SATURDAY = "SATURDAY";
}
Java常量定义方法二:采用了Java 5.0中引入的Enum类型
enum ConstantEnum {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
Java常量定义方法三:采用了在普通类中使用static final修饰变量的方法。
class ConstantClassField {
public static final String SUNDAY = "SUNDAY";
public static final String MONDAY = "MONDAY";
public static final String TUESDAY = "TUESDAY";
public static final String WEDNESDAY = "WEDNESDAY";
public static final String THURSDAY = "THURSDAY";
public static final String FRIDAY = "FRIDAY";
public static final String SATURDAY = "SATURDAY";
}
Java常量定义方法四:类似方法三,但是通过函数来获取常量。
class ConstantClassFunction {
private static final String SUNDAY = "SUNDAY";
private static final String MONDAY = "MONDAY";
private static final String TUESDAY = "TUESDAY";
private static final String WEDNESDAY = "WEDNESDAY";
private static final String THURSDAY = "THURSDAY";
private static final String FRIDAY = "FRIDAY";
private static final String SATURDAY = "SATURDAY";
public static String getSunday() {
return SUNDAY;
}
public static String getMonday() {
return MONDAY;
}
public static String getTuesday() {
return TUESDAY;
}
public static String getWednesday() {
return WEDNESDAY;
}
public static String getThursday() {
return THURSDAY;
}
public static String getFirday() {
return FRIDAY;
}
public static String getSaturday() {
return SATURDAY;
}}
public class TestConstant {
static final String day = "saturday";
public static void main(String[] args) {
System.out.println("Is today Saturday?");
System.out.println(day.equalsIgnoreCase(ConstantInterface.SATURDAY));
System.out.println(day.equalsIgnoreCase(ConstantEnum.SATURDAY.name()));
System.out.println(day.equalsIgnoreCase(ConstantClassField.SATURDAY));
System.out.println(day.equalsIgnoreCase(ConstantClassFunction
.getSaturday()));
}}
首先定义全局变量似乎有违Java的面向对象的封装特性,增加的耦合。所以佳的方法是避免定义全局变量。如果是参数等,可以写入配置文件。如果实 在是必须的,方法二是为推荐的。方法三是大家都能想到的,非常的直观。方法一和方法三本质上一样。方法四提供了灵活性,具体参考引用。
Java常量定义的基本注意事项
在Java语言中,主要是利用final关键字(在Java类中灵活使用Static关键字)来进行Java常量定义。当常量被设定后,一般情况下就不允许再进行更改。在定义常量时,需要注意如下内容:
一是Java常量定义的时候,就需要对常量进行初始化。
也就是说,必须要在常量声明时对其进行初始化。跟局部变量或者成员变量不同。当在常量定义的时候初始化过后,在应用程序中就无法再次对这个常量进行赋值。如果强行赋值的话,数据库会跳出错误信息,并拒绝接受这一个新的值。
二是final关键字使用的范围。
这个final关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。如数组就是一个对象引用。为此可以使用final关键字来定义一个常量的数组。这就是Java语言中一个很大的特色。一旦一个数组对象被final关键字设置为常量数组之后,它只能够恒定的指向一个数组对象,无法将其改变指向另外一个对象,也无法更改数组(有序数组的插入方法可使用的二分查找算法)中的值。
三是需要注意常量的命名规则。
不同的语言,在定义变量或者常量的时候,都有自己一套编码规则。这主要是为了提高代码的共享程度与提高代码的易读性。在Java常量定义的时候,也有自己的一套规则。如在给常量取名的时候,一般都用大写字符。在Java语言中,大小写字符是敏感的。之所以采用大写字符,主要是跟变量进行区分。虽然说给常量取名时采用小写字符,也不会有语法上的错误。但是,为了在编写代码时能够一目了然的判断变量与常量,好还是能够将常量设置为大写字符。另外,在常量中,往往通过下划线来分隔不同的字符。而不想对象名或者类名那样,通过首字符大写的方式来进行分隔。这些规则虽然不是强制性的规则,但是为了提高代码友好性,方便开发团队中的其他成员阅读,这些规则还是需要遵守的。
总之,Java开发人员需要注意,被定义为final的常量需要采用大写字母命名,并且中间好使用下划线作为分隔符来进行连接多个单词。在定义final的数据不论是常量、对象引用还是数组,在主函数中都不可以改变。否则的话,会被编辑器拒绝并提示错误信息。
通过以上对Java常量定义知识的梳理,相信大家对Java常量如何定义已经十分清楚了。
想了解更多Java常量知识的人,又看了
-
java常量定义总结 转载
2021-02-12 18:33:04一、常量定义的基本注意事项在Java语言中,主要是利用final关键字(在Java类中灵活使用Static关键字)来进行Java常量定义。当常量被设定后,一般情况下就不允许再进行更改。在定义常量时,需要注意如下内容:一是Java...一、常量定义的基本注意事项
在Java语言中,主要是利用final关键字(在Java类中灵活使用Static关键字)来进行Java常量定义。当常量被设定后,一般情况下就
不允许再进行更改。在定义常量时,需要注意如下内容:
一是Java常量定义的时候,就需要对常量进行初始化。也就是说,必须要在常量声明时对其进行初始化。跟局部变量或者成员变量不同
。当在常量定义的时候初始化过后,在应用程序中就无法再次对这个常量进行赋值。如果强行赋值的话,数据库会跳出错误信息,并拒绝接
受这一个新的值。
二是final关键字使用的范围。这个final关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。如数组
就是一个对象引用。为此可以使用final关键字来定义一个常量的数组。这就是Java语言中一个很大的特色。一旦一个数组对象被final关键
字设置为常量数组之后,它只能够恒定的指向一个数组对象,无法将其改变指向另外一个对象,也无法更改数组(有序数组的插入方法可使
用的二分查找算法)中的值。
三是需要注意常量的命名规则。不同的语言,在定义变量或者常量的时候,都有自己一套编码规则。这主要是为了提高代码的共享程度
与提高代码的易读性。在Java常量定义的时候,也有自己的一套规则。如在给常量取名的时候,一般都用大写字符。在Java语言中,大小写
字符是敏感的。之所以采用大写字符,主要是跟变量进行区分。虽然说给常量取名时采用小写字符,也不会有语法上的错误。但是,为了在
编写代码时能够一目了然的判断变量与常量,最好还是能够将常量设置为大写字符。另外,在常量中,往往通过下划线来分隔不同的字符。
而不想对象名或者类名那样,通过首字符大写的方式来进行分隔。这些规则虽然不是强制性的规则,但是为了提高代码友好性,方便开发团
队中的其他成员阅读,这些规则还是需要遵守的。
总之,Java开发人员需要注意,被定义为final的常量需要采用大写字母命名,并且中间最好使用下划线作为分隔符来进行连接多个单
词。在定义final的数据不论是常量、对象引用还是数组,在主函数中都不可以改变。否则的话,会被编辑器拒绝并提示错误信息。
二、Final关键字与static关键字同时使用
由于Java是面向对象的语言,所以在Java常量定义的时候还有与其它编程语言不同的地方。如一段程序代码从编辑到最后执行,即使需
要经过两个过程,分别为代码的装载与对象的建立。不同的过程对于常量的影响是不同的。
1).不使用static修饰情况:
例如: final long CURRENT_TIME=System.currentTimeMillis();
默认情况下,定义的常量是在对象建立的时候被初始化。如果在建立常量时,直接赋一个固定的值,而不是通过其他对象或者函数
来赋值,那么这个常量的值就是恒定不变的,即在多个对象中值也是相同的。但是如果在给常量赋值的时候,采用的是一些函数或者对象(
如生成随机数的Random对象),那么每次建立对象时其给常量的初始化值就有可能不同。可见,使用final的Java常量定义并不是恒定不变的
。
2).使用static修饰情况:
例如:static final long CURRENT_TIME=System.currentTimeMillis();
这个是一个静态的概念。即当利用这个关键字来修饰一个变量的时候,在创建对象之前就会为这个变量在内存中创建一个存储空间
。以后创建对对象如果需要用到这个静态变量,那么就会共享这一个变量的存储空间。也就是说,在创建对象的时候,如果用到这个变量,
那么系统不会为其再分配一个存储空间,而只是将这个内存存储空间的地址赋值给他。如此做的好处就是可以让多个对象采用相同的初始变
量。当需要改变多个对象中变量值的时候,只需要改变一次即可。从这个特性上来说,其跟常量的作用比较类似。不过其并不能够取代常量
的作用
-
java系统常量定义的几种方式
2019-05-06 16:39:421、接口定义 public interface ConstantCode ...看似正好符合常量的使用规范,但是接口的意义是可以被实现,而实现一个只有常量的接口没有实际意义,所以这种方式不推荐使用。 2、final clas...1、接口定义
public interface ConstantCode { public final static String OK = "ok"; }
接口的成员变量只能是常量,默认修饰符 public static final
看似正好符合常量的使用规范,但是接口的意义是可以被实现,而实现一个只有常量的接口没有实际意义,所以这种方式不推荐使用。
2、final class
public final class ConstantCode { private ConstantCode(){}; public final static String OK = "ok"; }
类定义成final且定义一个private的构造方法,防止其被继承和其实例化
3、枚举
public enum ConstantCode { OK(200, "ok"); Integer code; String name; // 构造方法 ConstantCode(Integer code, String name) { this.code = code; this.name = name; } public static String getName(Integer code) { for (ConstantCode evenEnum : ConstantCode.values()) { if (evenEnum.getCode().equals(code)) { return evenEnum.getName(); } } return null; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
System.out.println(ConstantCode.getName(200)); 得到结果: ok
-
Java中常量定义的几种方式
2021-02-12 09:18:04编程中使用常量的优点:常量提取出来有利于代码阅读,而且下次再做这种判断不用手写或复制并且提高代码的复用率,方便修改,直接通过...1、Interface定义常量接口常量,写起来方便,看着简洁。 在接口中可以通过内... -
JAVA常量
2021-01-07 09:32:47Java 的整型常量值主要有如下 3 种形式。 十进制数形式【……】 54、-67、0 八进制数形式【0……】 Java 中的八进制常数的表示以 0 开头 0125 表示十进制数 85 -013 表示十进制数 -11 十六进制数形式【0x…… / 0X... -
Java常量的定义
2021-01-20 03:44:48一、接口中定义常量: 由于java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量。 public interface Constants{ String name = 111; } public class read{ public ... -
JAVA中定义常量方法
2021-02-12 09:17:53JAVA中定义常量方法(2013-01-28 14:30:19)标签:it一、常量定义的基本注意事项。在Java语言中,主要是利用final关键字(在Java类中灵活使用Static关键字)来定义常量。当常量被设定后,一般情况下就不允许再进行更改。... -
Java变量常量声明和定义原理解析
2020-08-25 04:44:10主要介绍了Java变量常量声明和定义原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
Java常量定义需要注意事项及static作用(复习)
2021-02-12 19:24:38不过在Java常量定义的时候,跟其他语言有所不同。其有自己的特色。在这篇文章中,主要针对Java语言中定义常量的注意事项进行解析,帮助各位程序开发人员更好的掌握常量的定义与管理工作。一、常量定义的基本注意事项... -
Java常量:Java常量的定义和分类
2019-06-28 17:13:10下面我们来系统地认识一下 Java 中的常量值,以及定义常量的方法。 常量值 常量值又称为字面常量,它是通过数据直接表示的,因此有很多种数据类型,像整型和字符串型等。下面一一介绍这些常量值。 整型常量... -
Java中的常量和变量概念及定义.docx
2019-11-20 10:28:38初步整理的java常量变量的概念,十分粗浅,只是将简单的概念整理了出来,在使用过程中还需要慢慢累积和理解其中的更深含义 -
JavaConstants:测试Java中常量的各种定义和使用方法
2021-01-29 19:52:35Java常量接口反模式 这篇文章最初发布在我的博客上: : 您如何在Java中定义和使用常量? Internet上的大多数建议具有以下意见: 为类中的常量声明public static final 不要将接口用于常量 定义常量的最常见方法... -
java中定义常量的方法、性能以及注意事项
2021-02-12 18:33:07不过在Java常量定义的时候,跟其他语言有所不同。其有自己的特色。在这篇文章中,主要针对Java语言中定义常量的注意事项进行解析,帮助各位程序开发人员更好的掌握常量的定义与管理工作。一、常量定义的基本注意事项... -
在Java中定义常量两种常见策略
2021-03-06 13:49:46有些人使用整数或字符串来定义常量,而另一些人则使用枚举。我还遇到了在它们自己的接口中定义的常量——在接口中,使用常量的类必须实现接口。这种策略通常被称为接口常量设计模式。在本文中,我们将了解在Java中... -
在Java中定义常量字符串?
2021-03-08 02:11:34我有一个常量字符串列表,需要在Java程序中的不同时间显示它们。在C语言中,我可以在代码顶部定义以下字符串:#define WELCOME_MESSAGE"Hello, welcome to the server"#define WAIT_MESSAGE"Please wait 5 seconds"#... -
Java 常量都可以定义在哪里?
2019-03-04 16:12:441、常量提取出来有利于代码阅读,而且下次再做这种判断不用手写或复制,直接通过常量类就能得到,能够避免有的地方是username,有的地方是name来判断同一个逻辑含义相同变量问题。 不过我觉得提取出来并不会有利于... -
Java中定义常量方法及建议(Class/Interface)
2021-02-28 15:11:45Class定义常量方法(推荐方法)//final修饰符public final class Constants {//私有构造方法private Constants() {}public static final int ConstantA = 100;public static final int ConstantB = 100;......}采用... -
Java中定义Map常量,List常量
2021-02-12 22:42:22一般的方式的使用静态代码块。比如:public final static Map map = new HashMap();static {map.put("key1", ...}下面为一种简单定义Map常量的方式public final static Map NAV_ITEM_ADPTER = new HashMap() {{put... -
静态定义常量
2016-11-06 21:59:30java 定义静态常量 -
如何在Java中定义常量
2021-02-12 20:22:24围绕JAVA中的常量主题似乎存在很多混淆,有的人使用整数或字符串来定义常量,而有的人则使用枚举。我还遇到了在自己的接口中定义的常量 —— 使用常量的类必须实现接口。该策略通常被称为界面常量设计模式。在本文中... -
Java中定义常量的几种方法
2019-05-12 20:09:04Interface定义常量方法 Class定义常量方法 这两者有什么区别呢? 1.代码简洁 2. interface 中定义常量方法生成的 class 文件比第一种方法的更小 为什么小呢? 我们都知道 interface 没有继承 Object,Object 是... -
java常量的声明使用定义等
2021-03-01 07:19:21在定义常量的时候要注意的问题:常量要在定义时赋值常量定义之后就不能再改变它的值常量使用final关键字来定义Java里有六个特殊常量NaN, Inf, -Inf, null, true, falsejava常量定义的例子final double d = 1... -
java map常量定义
2018-11-22 20:36:00Java中定义Map常量,List常量 一般的方式的使用静态代码块。比如: 1 2 3 4 5 publicfinalstaticMap map =newHashMap(); static... -
java常量和变量的定义
2020-06-23 11:24:29java常量的分类 常量分类 说明 举例 字符串常量 用字符串括起来的多个字符 “happy”、“大佬” 整数常量 不带小数的数字 1,20,300,4000 小数常量 带小数的数字 1.1,2.2,30.0 字符常量 只有一个字符的... -
JAVA java学习(19)——————java 常量、常量值(字面常量)、常量定义、常用转义字符
2020-10-24 08:32:25在 Java 中使用 final 关键字来修饰常量。 虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。 常量值 常量值又称为字面常量,它是通过数据直接表示的,因此有很多种数据类型,像整型和字符串型... -
Java中定义常量几种方式
2017-08-20 22:51:18在开发中定义常量是很常见的事,但常量定义有哪几种方式可选?各种定义方式有什么优缺点?咱们就用这篇小文来梳理下^_^ 1.通过接口Interface来定义(不推荐) 定义方式如下: 我们可以这样使用它...