首页 > 编程语言 >Java编程规范-常量定义

Java编程规范-常量定义

时间:2025-01-22 21:31:35浏览次数:1  
标签:Java 常量 编程 Long constant YES 共享 定义

常量定义规范

  1. 【强制】常量不允许任何魔法值(即未经定义的常量)直接出现在代码中。
    反例:

    String key = "Id#taobao_" + tradeId;  
    cache.put(key, value);
    
  2. 【强制】long 或者 Long 初始赋值时,必须使用大写的 L,不能是小写的 l,小写容易跟数字 1 混淆,造成误解。
    说明:Long a = 2l; 写的是数字的 21,还是 Long 型的 2?

  3. 【推荐】不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护。如:缓存相关的常量放在类:CacheConsts 下;系统配置相关的常量放在类:ConfigConsts 下。
    说明: 大而全的常量类,非得使用查找功能才能定位到修改的常量,不利于理解和维护。

  4. 【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。
    1) 跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。
    2) 应用内共享常量:放置在一方库的 modules 中的 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. 【推荐】如果变量值仅在一个范围内变化,且带有名称之外的延伸属性,定义为枚举类。下面正例中的数字就是延伸信息,表示星期几。
    正例:
    public Enum { MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6), SUNDAY(7);}

标签:Java,常量,编程,Long,constant,YES,共享,定义
From: https://www.cnblogs.com/aeolian/p/18683818

相关文章

  • Go学习:多个变量或常量定义
    目录1.不同类型变量的声明(定义)2. 不同类型常量的声明(定义)1.不同类型变量的声明(定义)传统方法//不同类型变量的声明(定义)   varaint   varbfloat64    a,b=10,3.14packagemainimport"fmt"funcmain(){ //不同类型变量的声明(定义......
  • Spring-AOP(面向切面编程)
    Spring-AOP(面向切面编程)面向切面编程(AspectOrientedProgramming-AOP)是面向对象编程(ObjectOrientedProgramming-OOP)的一种补充,二者是互补的编程范式。在OOP中,关键单元是类,而在AOP中关键单元则是横切关注点。面向对象编程关注于将现实世界中的实体抽象为对象,并通过对象......
  • Java的控制流程
    Java的控制流程1.Scanner对象Java.util.Scanner是Java5的新特性,我们可以通过Scanner类来获取用户的输入。基本语法:Scanners=newScanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取我们一般需要使用hasNext()与hasNextLine()判断......
  • 【Java安全】基础汇总
    一、JAVA安全1.1java的序列化和反序列化Java序列化是指把Java对象转换为字节序列的过程ObjectOutputStream类的writeObject()方法可以实现序列化Java反序列化是指把字节序列恢复为Java对象的过程ObjectInputStream类的readObject()方法用于反序列化。1、序列化:将......
  • Java初学者笔记-11、反射注解动态代理
    Junit单元测试针对最小的功能单元:方法,编写测试代码对其进行正确性测试。Junit单元测试框架:可以用来对方法进行测试,它是第三方公司开源出来的(很多开发工具已经集成了Junit框架,比如IDEA)。可以灵活的编写测试代码,可以针对某个方法执行测试,也支持一键完成对全部方法的自动化测试,且各......
  • [2924]基于JAVA的豆制品生产销售智慧管理系统的设计与实现
    毕业设计(论文)开题报告表姓名学院专业班级题目基于JAVA的豆制品生产销售智慧管理系统的设计与实现指导老师(一)选题的背景和意义在当前信息化、智能化的大背景下,企业运营管理方式的创新和升级显得尤为重要。豆制品生产销售行业作为民生基础产业,其生产与销售过程涉及到众多......
  • 全面解析 Java 流程控制语句
    Java学习资料Java学习资料Java学习资料在Java编程中,流程控制语句是构建程序逻辑的关键部分,它决定了程序的执行顺序和走向。通过合理运用这些语句,开发者能够实现各种复杂的业务逻辑,让程序更加灵活和智能。顺序结构顺序结构是程序中最基本的执行结构,它按照代码书写的......
  • Java 面向对象基础全面解析
    Java学习资料Java学习资料Java学习资料在Java编程领域,面向对象编程(OOP)思想是构建复杂且高效程序的基石。它将现实世界中的事物抽象为程序中的对象,通过一系列特性,让程序更具模块化、可维护性与扩展性。一、面向对象编程思想(一)OOP概念面向对象编程是一种编程范式,它......
  • 链表(双向环形链表)Java版
    双向环形链表(一个哨兵)双向环形链表介绍双向环形链表的特点应用场景代码实现双向环形链表介绍双向环形链表是双向链表的一种特殊形式,其特点是链表的头节点和尾节点相互连接,形成一个环。相较于普通双向链表,环形结构使得链表可以在任意节点上循环遍历,非常适合某些场景,例......
  • 链表(双向链表)Java版
    双向链表(有哨兵节点)双向链表介绍双向链表的特点应用场景代码解析Java代码双向链表介绍双向链表(DoublyLinkedList)是一种链式存储结构,每个节点不仅包含数据,还包含两个指针,分别指向前驱节点和后继节点。它相比单向链表有更高的灵活性,因为可以从任意节点向前或向后遍历......