是否应该将记录器声明为静态?通常,我已经看到记录器的两种类型的声明:
受保护的日志日志=新的Log4JLogger(aClass.class);
要么
专用静态日志log = new Log4JLogger(aClass.class);
应该使用哪一个?两者的优缺点是什么?
static
是每个课程一个参考。非静态是每个实例一个引用(+初始化)。因此,在某些情况下,如果您有大量实例,则后者会对内存产生重大影响。切勿在经常使用的物体上使用非静电物品。我总是使用静态版本。(应该大写 LOG
)
private static final Log log
是小写。记录器不是常量,记录器是静态最终对象(可以更改)。我个人经常使用logger
。