Java常量定义注意事项

简介: 笔记

常量事实上是那些内容不能被修改的变量,常量与变量类似也需要初始化,即在声明常量的同时要赋 予一个初始值。常量一旦初始化就不可以被修改。它的声明格式为:

final 数据类型 变量名 = 初始值;

final关键字表示最终的,它可以修改很多元素,修饰变量就变成了常量。


在Java常量定义也需要注意以下的常见问题:

1:不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。

反例:String key = “Id#taobao_” + tradeId;

cache.put(key, value);


2:在 long 或者 Long 赋值时,数值后使用大写的 L,不能是小写的 l,小写容易跟数字 1 混淆,造成误解。


3:不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。

正例:缓存相关常量放在类 CacheConsts 下;系统配置相关常量放在类 ConfigConsts 下。


4:常量的复用层次有五层:跨应用共享常量、 内共享常量、类内共享常量。

1) 跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。

2) 应用内共享常量:放置在一方库中,通常是子模块中的 constant 目录下。

反例:易懂变量也要统一定义成应用内共享常量,两位攻城师在两个类中分别定义了表示 “是”的变量:

类 A 中:public static final String YES = “yes”;

类 B 中:public static final String YES = “y”;

A.YES.equals(B.YES),预期是 true,但实际返回为 false,导致线上问题。

3) 子工程内部共享常量:即在当前子工程的 constant 目录下。

4) 包内共享常量:即在当前包下单独的 constant 目录下。

5) 类内共享常量:直接在类内部 private static final 定义。


5:如果变量值仅在一个固定范围内变化用 enum 类型来定义。

正例:

public enum SeasonEnum {
  SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4);
  private int seq;
  SeasonEnum(int seq){
    this.seq = seq;
  }
}
相关文章
|
3天前
|
存储 Java 机器人
Java中的静态变量与静态方法:应用与注意事项
Java中的静态变量与静态方法:应用与注意事项
|
1天前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
5 1
|
4天前
|
安全 Java
探讨Java中静态变量在静态方法内部的使用及其注意事项
探讨Java中静态变量在静态方法内部的使用及其注意事项
7 1
|
6天前
|
安全 Java 网络安全
【认知革命】JAVA网络编程新视角:重新定义URL与URLConnection,让网络资源触手可及!
【6月更文挑战第22天】JAVA网络编程中,URL代表统一资源定位符,用于表示网络资源地址。通过`new URL("address")`创建URL对象,可解析和访问其组件。URLConnection是与URL建立连接的接口,用于定制HTTP请求,如设置GET/POST、超时及交换数据。
|
10天前
|
Java
在 Java 中,类是一种定义对象的模板,它包含数据成员(字段)和方法。
在 Java 中,类是一种定义对象的模板,它包含数据成员(字段)和方法。
|
22小时前
|
存储 Java 编译器
技术经验解读:一文带你搞懂java中的变量的定义是什么意思
技术经验解读:一文带你搞懂java中的变量的定义是什么意思
|
2天前
|
Java
Java常量总结
Java常量总结
|
3天前
|
存储 Java 数据库连接
Java基础之数据载体定义及场景
Java开发中,对象按角色分为:PO(持久化对象,对应数据库表),DTO(数据传输对象,跨层传输数据),VO(值对象,用于页面展示),RO(资源对象,如文件连接)。此外,还有Entity(ORM实体),BO(业务对象),DAO(数据访问对象),SO(服务对象),FO(外观对象),AO(应用对象),EO(实体对象)和TO(传输对象),它们在不同场景下负责不同的职责,促进代码组织和解耦。
10 0
|
6天前
|
存储 JSON 前端开发
JavaWeb中用来定义统一的响应结果的result类
JavaWeb中用来定义统一的响应结果的result类
11 0
|
13天前
|
Java 开发者
Java 面向对象编程实战:从类定义到对象应用,让你成为高手!
【6月更文挑战第15天】在Java中,掌握面向对象编程至关重要。通过创建`Book`类,展示了属性如`title`和`author`,以及构造方法和getter方法。实例化对象如`book1`和`book2`,并访问其属性。进一步扩展类,添加`pages`和`calculateReadingTime`方法,显示了类的可扩展性。在更大规模的项目中,如电商系统,可以定义`Product`、`User`和`Order`类,利用对象表示实体和它们的交互。实践是精通Java OOP的关键,不断学习和应用以提升技能。