Java——Logger变量命名规则


一般Java常量命名规范


一个特殊的例子——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太特殊了,使用特殊定义,仅此一个,别无其他