小编rbh*_*sar的帖子

为什么要为logger.debug()使用额外的if条件?

可能重复:
在log4j中,在记录改进性能之前检查isDebugEnabled吗?

我见过人们使用log4j的方式如下:

if(logger.isDebugEnabled())
{
    logger.debug(" message ");
}
Run Code Online (Sandbox Code Playgroud)

但是,我检查了logger.debugAPI 的文档,发现它debug在记录消息之前检查是否已启用.在那种情况下,写出额外的if是什么意思?

只是写不一样

logger.debug(" message ");
Run Code Online (Sandbox Code Playgroud)

java log4j

12
推荐指数
2
解决办法
1873
查看次数

为什么Entry接口定义了equals和hashCode等方法?

我看到java.util.Map.Entry接口有以下方法:

boolean equals(Object o);
int hashCode();
Run Code Online (Sandbox Code Playgroud)

Entry当从Object类继承相同的方法时,为什么上面的方法是接口的一部分?

谢谢和问候,拉胡尔

java equals hashmap hashcode

4
推荐指数
1
解决办法
120
查看次数

如何将char []转换为byte []而不创建任何中间String

可能重复:
将char数组转换为字节数组,然后再返回

我有一个密码,char[]我想要这个密码,byte[]而不创建任何密码String.请建议最好的方式.

java arrays string bytearray char

2
推荐指数
1
解决办法
2686
查看次数

toStringBuilder导致问题

我正在运行多线程导入,运行大约1-2个小时.并在导入之前,将数据放入表中.我正在查

if(debug.isEnabled())
 logger.debug("Object="+MyObject);
Run Code Online (Sandbox Code Playgroud)

其中MyObject使用ToStringBuildertoString方法.

java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Arrays.copyOfRange(Arrays.java:2694)
        at java.lang.String.<init>(String.java:203)
        at java.lang.StringBuffer.toString(StringBuffer.java:561)
        at org.apache.commons.lang3.builder.ToStringBuilder.toString(ToStringBuilder.java:1063)
Run Code Online (Sandbox Code Playgroud)

我认为toStringBuilder导致了这个问题.我对么?如果是,有什么方法可以解决这个问题?

java apache-commons

2
推荐指数
1
解决办法
391
查看次数

标签 统计

java ×4

apache-commons ×1

arrays ×1

bytearray ×1

char ×1

equals ×1

hashcode ×1

hashmap ×1

log4j ×1

string ×1