随便打开一个 spring 的 源文件,比如 PathMatchingResourcePatternResolver.class
里面是这样定义logger 的
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private static final Log logger = LogFactory.getLog(PathMatchingResourcePatternResolver.class);
- 这是一个类变量,静态的,内存地址一旦分配就不变了
- 私有的,只能在这个类的内部使用
- final 不能被二次赋值
这样的好处是:
一个这个类只有一个logger,所有这个类的实例均使用这个logger ,这个logger不会产生被二次赋值之类的低效操作