首先看示例:

  1. /**
  2. * Method One
  3. */
  4. interface ConstantInterface {
  5. String SUNDAY = "SUNDAY";
  6. String MONDAY = "MONDAY";
  7. String TUESDAY = "TUESDAY";
  8. String WEDNESDAY = "WEDNESDAY";
  9. String THURSDAY = "THURSDAY";
  10. String FRIDAY = "FRIDAY";
  11. String SATURDAY = "SATURDAY";
  12. }
  13. /**
  14. * Method Two
  15. */
  16. enum ConstantEnum {
  17. SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
  18. }
  19. /**
  20. * Method Three
  21. */
  22. class ConstantClassField {
  23. public static final String SUNDAY = "SUNDAY";
  24. public static final String MONDAY = "MONDAY";
  25. public static final String TUESDAY = "TUESDAY";
  26. public static final String WEDNESDAY = "WEDNESDAY";
  27. public static final String THURSDAY = "THURSDAY";
  28. public static final String FRIDAY = "FRIDAY";
  29. public static final String SATURDAY = "SATURDAY";
  30. }
  31. /**
  32. * Method Four
  33. * http://www.ibm.com/developerworks/cn/java/l-java-interface/index.html
  34. */
  35. class ConstantClassFunction {
  36. private static final String SUNDAY = "SUNDAY";
  37. private static final String MONDAY = "MONDAY";
  38. private static final String TUESDAY = "TUESDAY";
  39. private static final String WEDNESDAY = "WEDNESDAY";
  40. private static final String THURSDAY = "THURSDAY";
  41. private static final String FRIDAY = "FRIDAY";
  42. private static final String SATURDAY = "SATURDAY";
  43. public static String getSunday() {
  44. return SUNDAY;
  45. }
  46. public static String getMonday() {
  47. return MONDAY;
  48. }
  49. public static String getTuesday() {
  50. return TUESDAY;
  51. }
  52. public static String getWednesday() {
  53. return WEDNESDAY;
  54. }
  55. public static String getThursday() {
  56. return THURSDAY;
  57. }
  58. public static String getFirday() {
  59. return FRIDAY;
  60. }
  61. public static String getSaturday() {
  62. return SATURDAY;
  63. }
  64. }
  65. public class TestConstant {
  66. static final String day = "saturday";
  67. public static void main(String[] args) {
  68. System.out.println("Is today Saturday?");
  69. System.out.println(day.equalsIgnoreCase(ConstantInterface.SATURDAY));
  70. System.out.println(day.equalsIgnoreCase(ConstantEnum.SATURDAY.name()));
  71. System.out.println(day.equalsIgnoreCase(ConstantClassField.SATURDAY));
  72. System.out.println(day.equalsIgnoreCase(ConstantClassFunction
  73. .getSaturday()));
  74. }
  75. }

方法一采用接口(Interface)的中变量默认为static final的特性。

方法二采用了Java 5.0中引入的Enum类型。

方法三采用了在普通类中使用static final修饰变量的方法。

方法四类似方法三,但是通过函数来获取常量。

首先定义全局变量似乎有违Java的面向对象的封装特性,增加的耦合。所以最佳的方法是避免定义全局变量。如果是参数等,可以写入配置文件。如果实在是必须的,方法二是最为推荐的。方法三是大家都能想到的,非常的直观。方法一和方法三本质上一样。方法四提供了灵活性,具体参考引用【1】。

转载于:https://www.cnblogs.com/architects/p/4552412.html

如何让在JAVA中定义常量池相关推荐

  1. 好好说说Java中的常量池之Class常量池

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

  2. 好好说说Java中的常量池之Class常量池 1

    转载自   好好说说Java中的常量池之Class常量池 在Java中,常量池的概念想必很多人都听说过.这也是面试中比较常考的题目之一.在Java有关的面试题中,一般习惯通过String的有关问题来考 ...

  3. Java中整数常量池的概念

    Java中整数常量池的概念: java中为了提高程序的执行效率,将[-128, 127]之间256个整数所有的包装对象提前创建好了,类加载时就已经创好了,放在了一个方法区的"整数常量池&qu ...

  4. stringbuilder调用tostring常量池_彻底弄懂java中的常量池

    作者:tracy_666链接:https://www.jianshu.com/p/55f65dac1b4b JVM常量池主要分为Class文件常量池.运行时常量池,全局字符串常量池,以及基本类型包装类 ...

  5. java中定义常量必须使用的关键字是_可以单独使用final关键字在Java中定义常量吗?...

    常量变量是其值固定的变量,程序中仅存在一个副本.声明常量变量并为其分配值后,就无法在整个程序中再次更改其值. 与其他语言不同,java不直接支持常量.但是,您仍然可以通过声明变量static和fina ...

  6. Java中的常量池(字符串常量池、class常量池和运行时常量池)

    简介: 这几天在看Java虚拟机方面的知识时,看到了有几种不同常量池的说法,然后我就去CSDN.博客园等上找资料,里面说的内容真是百花齐放,各自争艳,因此,我好好整理了一下,将我自认为对的理解写下来与 ...

  7. JAVA中定义常量的几种方式

    1.最古老的 //未处理 public static final Integer PROCESS_STATUS_UNTREATED = 0; //已接收 public static final Int ...

  8. JAVA提示定义常量_如何在Java中定义常量(Constant)

    首先看示例: /** * Method One */ interface ConstantInterface { String SUNDAY = "SUNDAY"; String ...

  9. 在Java中定义常量

    方法一采用接口(Interface)的中变量默认为static final的特性. 方法二采用了Java 5.0中引入的Enum类型. 方法三采用了在普通类中使用static final修饰变量的方法 ...

最新文章

  1. 如何开启PostGreSQL的远程访问端口?
  2. python去掉数字最后的零_python – 如何消除额外的负号,将数字四舍五入为零时,以numpy为单位?...
  3. 2011/5/18工作笔记
  4. 力扣(LeetCode)258. 各位相加
  5. Java中父类的私有数据和静态数据在内存中是如何存储的?
  6. 网络监控系统中如何选择工业交换机?
  7. 百度之星初赛(A)——T5
  8. 公司新来的小可爱,竟然把内存搞崩了!
  9. android studio学习----通过github的URL怎么导入新的工程
  10. netif_receive_skb 函数解析
  11. 加密货币的天堂? 盘点 7 大对加密货币免税的国家!
  12. 移动段开发前景真的凉了么?
  13. F28335学习(二)EPWM
  14. perfmon android 7.1,Perfmon - 脚本自动监控
  15. 中图分类法----Q 生物科学
  16. 社区购物、社区买菜小程序源码
  17. server酱php推送代码,多种语言调用Server酱推送微信模板消息
  18. 字节跳动 Java 岗一二三面全经过分享
  19. Longest Commen Prefix
  20. 每日一博 - 3D架构图 cloudcraft

热门文章

  1. JVM调优:栈上分配和线程本地分配TLAB
  2. Linux top指令
  3. Linux shell脚本中的命令正确写法
  4. Adapter适配器设计模式
  5. jvm一个线程的成本
  6. KDDockWidgets源码编译及安装
  7. java命令运行class文件提示错误:找不到或无法加载主类
  8. python改变字符串类型_python – Sklearn将字符串类标签更改为int
  9. c 语言epc编码如何解开,EPC编码结构
  10. linux下var权限是什么?,linux – 在/ var / www中处理Apache 2用户www-data权限的最佳方法是什么?...