java收集

一、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替换掉.

 


你可能感兴趣的:(java,log4j,框架)