java规范(二)
2024-10-17 00:29:59
常量命名
不允许使用任何魔法值(未定义的常量)直接出现在代码中
反例:String key="Id#taobao_"+tradeId;
cache.put(key, value);
Id#就是魔法值
- long或Long初始赋值时,不能以小写l结尾,而应该是大写L。避免误会
long s=2l
亲,你看出来这是几吗 - 不要使用一个常量类维护全部常量。不容易维护。根据常量的功能分开维护
常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包
内共享常量、类内共享常量。
1) 跨应用共享常量:放置在二方库中,通常是 client.jar 中的 const 目录下。
2) 应用内共享常量:放置在一方库的 modules 中的 const 目录下。
反例:易懂变量也要统一定义成应用内共享常量,两位攻城师在两个类中分别定义了表示
“是”的变量:类 A 中:public static final String YES = "yes";
类 B 中:public static final String YES = "y";
A.YES.equals(B.YES),预期是 true,但实际返回为 false,导致产生线上问题。
3) 子工程内部共享常量:即在当前子工程的 const 目录下。
4) 包内共享常量:即在当前包下单独的 const 目录下。
5) 类内共享常量:直接在类内部 private static final 定义。
如果变量值仅在一个范围内变化用 Enum 类。如果还带有名称之外的延伸属性,必须 使用 Enum 类,下面正例中的数字就是延伸信息,表示星期几。
正例:public Enum{ MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5),
SATURDAY(6), SUNDAY(7);}
最新文章
- 说说 js String
- JAVA中的GC机制详解
- UI中一些不常用的控件UIActivityIndicatorView、UIProgressView、UISegmentedControl、UIStepper、UISwitch、UITextView、UIAlertController
- SU Demos-02Filtering-04Sugabor
- 程序员书单_HeadFirst系列
- [Flex] ButtonBar系列——arrowKeysWrapFocus属性如果为 true,则使用箭头键在组件内导航时,如果击中某一端则将折回。
- URAL 2048 History 蔡勒公式
- 问题-WIN7 ..\Bin\InitCC32.exe";.进程无法访问(拒绝访问)
- UBUNTU 下设置全局 path变量
- spark Association failed with [akka.tcp:sparkMaster@ip:7077]
- for语句之侦查队挑选人、猴子吃桃、5个小朋友算年龄、1 () 2 () 3 ()4 = 4;问括号里我要填 (- 或 +)问题
- 关于开发微信小程序后端linux使用xampp配置https
- Mac OS Eclipse 调试快捷键不好使(失效)的情况
- samba企业级实战应用详解-技术流ken
- LODOP中预览界面查看打印机的可打区域具体值
- assert的使用
- linux下用php将doc、ppt转图片
- Maven实战(四)——基于Maven的持续集成实践
- mysql数据库优化总结 有图 有用
- 【java并发编程实战】第八章:线程池的使用
热门文章
- 查询01_DML锁和DDL锁的处理
- Python创建cvs文件,包含标签和图片数据
- Java性能调优
- IBM Power PC安装sysbench 执行mysql基准测试 --- sysbench安装
- OJ提交题目中的语言选项里G++与C++的区别(转)
- Python操作Excel之xlwt
- Xcode 7 调试野指针利器 Address sanitizer
- 查看Oracle加锁情况及解锁方法
- Jmeter plugin jp@gc - PerfMon Metrics Collector
- java线程内存模型,线程、工作内存、主内存