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. 【推荐】如果变量值仅在一个范围内变化用 Enum 类。如果还带有名称之外的延伸属性,必须使用 Enum 类,下面正例中的数字就是延伸信息,表示星期几。

正例: public Enum{ MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5),SATURDAY(6), SUNDAY(7);}

java常量定义规范相关推荐

  1. Java开发实用必备的几款插件,java常量定义规范

    一.网络编程基础回顾 1. Socket Socket本身有"插座"的意思,不是Java中特有的概念,而是一个语言无关的标准,任何可以实现网络编程的编程语言都有Socket.在Li ...

  2. java常量定义方法_Java常量定义方法汇总

    Java常量定义方法汇总 时间:2017-06-13     来源:华清远见JAVA学院 实际工作开发中,我们经常会使用到常量.那么Java常量如何定义呢?Java常量定义的规范是什么?定义Java常 ...

  3. java 常量定义_Java中常量定义的几种方式

    编程中使用常量的优点: 常量提取出来有利于代码阅读,而且下次再做这种判断不用手写或复制并且提高代码的复用率,方便修改,直接通过常量类就能得到.不过我觉得提取出来并不会有利于代码性能提升,因为常量分配在 ...

  4. java定义常量数组_java常量定义总结 转载

    一.常量定义的基本注意事项 在Java语言中,主要是利用final关键字(在Java类中灵活使用Static关键字)来进行Java常量定义.当常量被设定后,一般情况下就 不允许再进行更改.在定义常量时 ...

  5. java常量声明_java常量的声明使用定义等

    java常量的声明使用定义等.什么是java常量?java常量的命名规则是什么? 使用java常量的优点有哪些? java常量属于变量的特殊形式.在定义常量的时候要注意的问题: 常量要在定义时赋值 常 ...

  6. java 静态常量定义_Java常量定义需要注意事项及static作用(复习)

    在任何开发语言中,都需要定义常量.在Java开发语言平台中也不例外.不过在Java常量定义的时候,跟其他语言有所不同.其有自己的特色.在这篇文章中,主要针对Java语言中定义常量的注意事项进行解析,帮 ...

  7. java常量和变量的定义

    java基础语法 3.1.关键字总结表 ​ 3.2.常量 ​ 常量的意思是在程序执行的过程中不能改变的量 java常量的分类 常量分类 说明 举例 字符串常量 用字符串括起来的多个字符 "h ...

  8. 阿里巴巴对Java编程【常量定义】的规约

    转载自 阿里巴巴对Java编程[常量定义]的规约 常量定义 1. [强制]不允许任何魔法值 ( 即未经定义的常量 ) 直接出现在代码中. 反例: String key  = " Id # t ...

  9. java 常量接口_java接口定义常量研究

    背景 和同事讨论到,在接口中定义常量的问题,引发了争论,即,假如在接口中定义变量,是否需要用static来限定的问题,或者说用static和不用static会有什么区别. 引论 package spr ...

最新文章

  1. ubuntu如何设置环境变量,方便log输出路径?(shell文件)
  2. 计算机组成计算题中的术语,计算机组成原理习题——日常记录
  3. java 继承 模型_java – 画布形状模型的继承与组合?
  4. migrate和syncdb的区别(转载)
  5. PMP-PMBOK-培训(3)Introduction to Project Process Groups and Initiating a Project
  6. 机器学习爬大树之(GBDT原理)--回归篇
  7. 什么样的领导最有魅力?
  8. HALCON:与C++交互
  9. 手机linux服务器控制,手机上如何远程控制Linux服务器?
  10. matlab均值编程,均值滤波与matlab编程
  11. 蓝桥杯--模拟1 AcWing 1241. 外卖店优先级
  12. docx4j 对比word
  13. idea中git版本回退
  14. 杰瑞·卡普兰:人工智能的本质是自动化 而非智能化
  15. Linux驱动视频教程推荐,隆重推荐:linux驱动基础开发系列免费教程独家版本
  16. Http系列---Http status code 状态码
  17. 软件测试30K*16(总包50W+)入职offer,一位字节跳动女测试开发的自述
  18. java wmf_java解析WMF文件
  19. uboot通过u盘烧写linux内核,向Flash中烧写uboot和linux操作系统
  20. 【前端学习之路】ES6新特性 Promise基本方法 、async函数(阮一峰老师、小马哥_老师 课程笔记)

热门文章

  1. 转:闭上嘴巴,张开耳朵,打开思维
  2. KT148A语音芯片420s秒的语音空间是什么意思,mp3文件支持多大
  3. 店宝宝:威马汽车进驻拼多多 线上卖车是门好生意吗
  4. 用matlab对基带信号进行调频,(很实用很好)用MATLAB实现信号调制与解调调频调相等.doc...
  5. 前端实现在线预览文件
  6. BP神经网络(经验公式)
  7. java第二类斯特林数编程代码,Luogu1655 小朋友的球 (组合数学,第二类斯特林数,高精)...
  8. 地图投影的N种姿势(转载)
  9. 机器学习python库--seaborn
  10. 计算机英语中职教材,中职计算机英语说课教案(20201012115544)