一般Java常量命名规范
- Java中的常量名称一般用全大写,比如美团,阿里等公司均有相关要求,详情参考阿里巴巴Java开发手册.pdf
一个特殊的例子——Logger
特殊写法
Spring中Logger对象的名称使用的是小写
1
private static final Logger logger= LoggerFactory.getLogger(BeanFactory.class);
其他很多公司或者开源工具的代码也跟着这样用,比如美团的RPC开源框架
mtthrift
Logger对象使用final的原因
- 定义成static final,logger变量不可变,读取速度快
- static 修饰的变量是不管创建了new了多少个实例,也只创建一次,节省空间,如果每次都创建Logger的话比较浪费内存;final修饰表示不可更改,常量
- 将域定义为static,每个类中只有一个这样的域。而每一个对象对于所有的实例域却都有自己的一份拷贝,用static修饰既节约空间,效率也好。final 是本 logger 不能再指向其他 Logger 对象
为什么不适用大写
- Spring开发者有自己的编程规范
- 常量引用不用大写?
private
修饰的常量不用大写?- Logger太特殊了,使用特殊定义,仅此一个,别无其他