一、log.isDebugEnabled())的作用
在使用log4j,common-log这样的log框架时,发现很多代码中这样写
if (log.isDebugEnabled()) {
log.debug( "xxxx ");
}
我很奇怪,为什么要与log.isDebugEnabled()?既然log.debug()在没有指定输出级别为DEBUG时不会有输出,为什么还要在前面加一个isDebugEnabled()的判断?
答复:
为了效率,如果上述那个代码那么简单是没有必要的 但是如果这样
if (log.isDebugEnabled()) {
log.debug(buildFullString());
}
如果这个buildFullString效率不太高,那么如果直接写log.debug(buildFullString());的话 虽然它不会打印语句,但是buildFullString还是被执行了,这样就白费了功夫 所以加上isDebugEnabled就可以避免执行buildFullString了
这个方法一般用在认为buildFullString这个函数效率不太高的情况下
二、创建map对象就赋值;
final Map<String, String> configMap = new HashMap<String, String>() {
{
put("serviceid", "KFMP0987CSDP");
put("aspid", "testaspid");
put("url", "http://si.asust.adc/do");
}
};
实例:
public class MapInit {
public static void main(String[] args) {
Map<String,String> maps = new HashMap<String, String>(){
private static final long serialVersionUID = 1L;
{
put("a","A");
put("b","B");
}
};
for(Entry<String,String> entry:maps.entrySet()){
System.out.println(entry.getKey()+"\t"+entry.getValue());
}
System.out.println("-----");
for(String str : maps.keySet()){
System.out.println(str+" \t"+maps.get(str));
}
}
}
三、getSession(true)和getSession(),有什么区别
Returns the current HttpSession associated with this request or, if if there is no current session and create is true, returns a new session.
If create is false and the request has no valid HttpSession, this method returns null.
Parameters:
true - to create a new session for this request if necessary; false to return null if there's no current session
Returns:
the HttpSession associated with this request or null if create is false and the request has no valid session;
request.getSession(true):就是当没有得到当前session时,就新创建一个session;而
request.getSession(false)或request.getSession():当没有得到当前session就返回为null。
但实际用起来好像 getSession(true)有时会自动创建一个新的session,而把原来的session替换掉.