社区
Java SE
帖子详情
关于[private static final logger logger]
mouer
2010-01-29 03:34:10
大家一般写日志的时候是否是:
private
static final
Logger logger = XXXXXXXX;
为什么要是static
为什么要是final
为什么为什么?
...全文
891
7
打赏
收藏
关于[private static final logger logger]
大家一般写日志的时候是否是: private static final Logger logger = XXXXXXXX; 为什么要是static 为什么要是final 为什么为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mouer
2010-01-29
打赏
举报
回复
恩..应该是这样了..
挺简单的问题,想歪了,真2,谢谢各位
老外的BLOG上有篇文章写的不错,关于这个的
http://www.nofluffjuststuff.com/blog/scott_leberknight/2007/03/loggerisnotstaticfinal.html
wenjjing2lianee
2010-01-29
打赏
举报
回复
将域定义为static,每个类中只有一个这样的域.而每一个对象对于所有的实例域却都有自己的一份拷贝.
用static修饰既节约空间,效率也好.
final 是本 logger 不能再指向其他 Logger 对象
wzju64676266
2010-01-29
打赏
举报
回复
static 修饰的变量是不管创建了new了多少个实例,也只创建一次,节省空间,如果每次都创建Logger的话比较浪费内存;final修饰表示不可更改,常量
Defonds
2010-01-29
打赏
举报
回复
[Quote=引用楼主 mouer 的回复:]
大家一般写日志的时候是否是:
privatestatic final Logger logger = XXXXXXXX;
为什么要是static
为什么要是final
为什么为什么?
[/Quote]
看情况了。static 是加载即创建实例。使用的时候可以直接拿来;final 是本 logger 不能再指向其他 Logger 对象。
Bird_fro
2010-01-29
打赏
举报
回复
定义成static final,logger变量不可变,读取速度快
SuperBoo
2010-01-29
打赏
举报
回复
得色
SuperBoo
2010-01-29
打赏
举报
回复
[Quote=引用37楼 ediy的回复:]
这到底是为什么------------------
[/Quote]
private
static
final
Logg
er
logg
er
=xxx 之为什么用
static
和
final
??
private
static
final
Logg
er
logg
er
=
Logg
er
Factory.get
Logg
er
(ShiroConfig.class); 我们经常这样创建日志实例,那么为什么要用
static
还有
final
呢?? 1.定义成
static
final
,
logg
er
变量不可变,读取速度快 2.
static
修饰的变量是不管创建了new了多少个实例,也只创建一次,节省空间,如果每次都创建
Logg
er
的话比较浪费内存;
final
修饰表示不可更改,常量 3.将域定义为
static
,每个类中只有一
private
static
final
Logg
er
logg
er
= LogManag
er
.get
Logg
er
();
private
static
final
Logg
er
logg
er
= LogManag
er
.get
Logg
er
();
为什么创建日志对象
logg
er
一定要用
private
static
final
修饰
当创建日志对象的时候,大家都习惯用
private
static
final
修饰:
private
static
final
Logg
er
logg
er
=
Logg
er
Factory.get
Logg
er
(xxxx.class); 为啥呢?说一下自己的理解: get
Logg
er
()方法的参数应是当前类的字节码对象,在打印日志信息时,才会显示日志信息是由当前类打印 1.
private
当前日志对象
logg
er
只能在本类中使用,防止被其他类调用。 2.
static
将日志对象定义成静态,在类被加载时,该日志对象
日志
logg
er
为啥要用
private
static
final
修饰?
日志
logg
er
为啥要用
private
static
final
修饰?
Java定义
Logg
er
为什么要用
static
和
final
?
private
static
final
Logg
er
logg
er
=
Logg
er
Factory.get
Logg
er
(ShiroConfig.class); (1)出于资源利用的考虑,
Logg
er
的构造方法参数是Class,决定了
Logg
er
是根据类的结构来进行区分日志,所以一个类只要一个
Logg
er
就可以了,故
static
(2)
final
表示一种编程习惯,表示该类的
Logg
er
只是记录该类的信息,否则日志会无法提供可以令人信服的记录 定义成
static
final
,
logg
er
变量不可变,读取速度快
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章