2.常量定义

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

//本例中同学 A 定义了缓存的 key,然后缓存提取的同学 B 使用了 Id#taobao 来提取,少了下划线,导致故障。
String key = "Id#taobao_" + tradeId;
cache.put(key, value);

(2) 【强制】在 long 或者 Long 赋值时,数值后使用大写的 L,不能是小写的 l,小写容易跟数字混淆,造成误解。
说明: Long a = 2l; 写的是数字的 21,还是 Long 型的 2。

(3)【推荐】不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。
说明: 大而全的常量类,杂乱无章,使用查找功能才能定位到修改的常量,不利于理解,也不利于维护。
正例: 缓存相关常量放在类 CacheConsts 下;系统配置相关常量放在类 ConfigConsts 下。

(4) 【推荐】常量的复用层次有五层:跨应用共享常量应用内共享常量子工程内共享常量包内共享常量类内共享常量

  • 跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。
  • 应用内共享常量:放置在一方库中,通常是子模块中的 constant 目录下。
    反例: 易懂变量也要统一定义成应用内共享常量,两位工程师在两个类中分别定义了“YES”的变量:类 A 中:public static final String YES = "yes";类 B 中:public static final String YES = "y";A.YES.equals(B.YES),预期是 true,但实际返回为 false,导致线上问题。
  • 子工程内部共享常量:即在当前子工程的 constant 目录下。
  • 包内共享常量:即在当前包下单独的 constant 目录下。
  • 类内共享常量:直接在类内部 private static final 定义。

(5)【推荐】如果变量值仅在一个固定范围内变化用 enum 类型来定义。
说明: 如果存在名称之外的延伸属性应使用 enum 类型,下面正例中的数字就是延伸信息,表示一年中的
第几个季节。

正例:

 public enum SeasonEnum {SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4);private int seq;SeasonEnum(int seq) {this.seq = seq;}public int getSeq() {return seq;}
}

阿里巴巴Java开发文档2020版学习-常量定义相关推荐

  1. python飞机大战概要设计_飞机大战游戏开发文档(Android版)

    飞机大战游戏 开发文档 (Android版) 课程名称:飞机大战游戏 课程类型:Android游戏编程精彩内容,尽在百度攻略:https://gl.baidu.com 姓名:苏均灿 学号:131342 ...

  2. 【校招VIP】线上实习 推推 书籍详情模块 Java开发文档周最佳

    [推推]主要是为校招设计的小说一更新就通知的项目,每个模块都具有亮点和难点,项目表现为手机网站应用,可嵌入小程序或APP中. 恭喜来自 四川师范大学 的 o0hana 同学获得本周线上实习[推推]第一 ...

  3. 【校招VIP】“推电影”第一期电影详情模块Java开发文档作业评审1

    前言:关于[推电影]免费在线实习项目 一.本项目是基于年轻人的喜好,更个性的电影推荐网站.筛选各分类的知名电影,并给出推荐理由和下载链接.另外,通过标签功能匹配个人喜好,实现个性化推送. 二.项目表现 ...

  4. anychat java开发文档_AnyChat视频云平台开发指南

    本帖最后由 佰锐科技-刘冬明 于 2017-9-13 11:59 编辑 简介: AnyChat视频云平台提供线上的音视频通信.多应用接入.即时通讯.全景录像.智能排队,直播.点播等服务.为您定制个性化 ...

  5. java 自动生成文档_[原]java开发文档的自动生成方式

    对于Java注释我们主要了解三种: // 注释一行 /* ...... */ 注释若干行 第三种,文档注释: /** ...... */ 注释若干行,并写入 javadoc 文档 通常这种注释的多行写 ...

  6. 阿里巴巴java开发手册(2020版)

    2020版 链接: https://pan.baidu.com/s/1Zls_FUBKfGksU1GR3BGGGA 密码:titz 2019版 链接:https://pan.baidu.com/s/1 ...

  7. java开发文档怎么写_程序员该不该写技术文档,怎么写文档,易懂又能提升自己...

    最近公司项目的调用量突然涨了一大波,很多系统都纷纷扛不住了,于是需要对系统进行优化,系统优化的第一步,便是梳理业务! 在这个过程中,经常出现了这样一些情况,发现数据库的某些字段,没有注释,也没有一定的 ...

  8. netty java开发文档_Netty简明教学文档

    写个简单点,比较小白的文档,言语比较接地气 Netty是什么? NIO的高层封装,NIO很难写,所以有了Netty,方便异步的操作 service的主要代码片段 public void run() t ...

  9. netty java开发文档_《Netty官方文档》设置开发环境

    原文链接 译者:dan   QQ:903585177 请注意:这个指南并不是用户指南,它是开发 Netty 本身的指南,而不是使用Netty 开发其他程序的指南. 使用64位操作系统 必须使用64位操 ...

  10. java 开发文档协作_Java 网络编程---分布式文件协同编辑器设计与实现

    目录: 第一部分:Java网络编程知识 (一)简单的Http请求 一般浏览网页时,使用的时Ip地址,而IP(Internet Protocol,互联网协议)目前主要是IPv4和IPv6. IP地址是一 ...

最新文章

  1. 周志华:“数据、算法、算力”,人工智能三要素在未来还要加上“知识”
  2. php引用地址,关于php的引用
  3. 病毒周报(100719至100725)
  4. C++ Primer 5th笔记(chap 19 特殊工具与技术)链接指示: extern “C“
  5. DataList用法
  6. [VSCode插件推荐] REST Client: 也许是比Postman更好的选择
  7. Mysql 中Sql控制流语句_DCL语句/控制流语句
  8. mysql容器重启数据是否丢失_docker容器重启 数据会丢吗
  9. 上传单.多个文件的函数封装
  10. 安装zabbix服务器端
  11. 数据库原理mysql_数据库原理:MySql的安装
  12. 背景图片,颜色变化脚本
  13. [转载] python模块的分类有哪些_整理了一份清单,常见Python问题的快速解答包
  14. java中vector和list_java中vector和list的区别
  15. 【C/C++】sizeof(结构体)的计算
  16. python爬百度贴吧_python爬虫-爬取百度贴吧帖子加图片
  17. Python中pass的使用
  18. OpenStreetMap初探(一)——了解OpenStreetMap
  19. 微软同步工具 for linux,使用SyncToy 同步Windows数据到linux
  20. ios 图片加载内存尺寸_iOS内存分析上-图片加载内存分析

热门文章

  1. ECS 云助手,实现云上运维自动化
  2. linux高级编程进程,linux高级编程(五、进程)
  3. 【PID优化】基于matlab粒子群和遗传算法PID控制器优化设计【含Matlab源码 1311期】
  4. 【路径规划】基于matlab改进的人工势场算法机器人避障路径规划【含Matlab源码 1151期】
  5. 【杆号识别】基于matlab铁路接触网系统杆号识别【含Matlab源码 1056期】
  6. 【电路仿真】基于matlab Simulink红绿灯车辆数量识别【含Matlab源码 378期】
  7. pytorch BCELoss()、KLDivLoss()的参数 及 “对于size_average、reduce、reduction参数的研究”
  8. html获取视频时长,js获取本地视频时间长度
  9. arm中用c语言编写的程序 出现数组的最后一行调用不到,C语言函数指针数组在ARM中断中的应用...
  10. iis7网站可用php吗,在IIS7下面添加对PHP网页的支持