java 重難點


Java 重難點:

 

1、Map類型的對象中的鍵值 支持轉義字符  

import java.io.*;
import java.util.*;
class test  
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Map<String,String> map = new HashMap<String,String>();
        map.put("aa", "good\n\n\n\n\n");
        System.out.println(map.get("aa"));
        System.out.println("test");
    }
}

輸出結果如下所示:

 

2、JSON字符串中 Boolean 類型值的存取

import java.io.*;
import java.util.*;
class test  
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Map map = new HashMap();
        map.put("aa", "good\n\n\n\n\n");
        map.put("bool", true);
        if((Boolean)map.get("bool")) {
            System.out.println("正確");
        } else {
            System.out.println("錯誤");
        }
        System.out.println(map.get("aa"));
        System.out.println("test");
    }
}

輸出結果:

 

3、mvn倉庫 

  http://www.mvnrepository.com/artifact/net.sf.json-lib/json-lib/2.2.3

 4、Log4j

  log4j.properties 配置:

# Root logger option
log4j.rootLogger=DEBUG, stdout, file
 
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
 
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\log4j.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

上述配置文件配置了控制台輸出 和 文件輸出(C:\\log4j.log),%-5p 配置了日志記錄優先級(DEBUG 或 ERROR等),$c{1} 配置了 通過Logger.getLogger(AppClass.class) 信息, %L 配置了日志記錄請求的行號, %m%n 配置日志記錄后添加換行符

log4j測試代碼:

package com.w3cschool.ide;
 
import org.apache.log4j.Logger;
 
public class App{
 
  final static Logger logger = Logger.getLogger(App.class);
 
  public static void main(String[] args) {
 
    App obj = new App();
    obj.runMe("w3cschool");
 
  }
 
  private void runMe(String parameter){
 
    if(logger.isDebugEnabled()){
      logger.debug("This is debug : " + parameter);
    }
 
    if(logger.isInfoEnabled()){
      logger.info("This is info : " + parameter);
    }
 
    logger.warn("This is warn : " + parameter);
    logger.error("This is error : " + parameter);
    logger.fatal("This is fatal : " + parameter);
 
  }
 
}

 

import org.apache.log4j.Logger;

public class App {

  final static Logger logger = Logger.getLogger(App.class);

  public static void main(String[] args) {

    App obj = new App();

    try {
      obj.divide();
    } catch (ArithmeticException ex) {
      logger.error("Sorry, something wrong!", ex);
    }
  }

  private void divide() {
    int i = 10 / 0;

  }

}

 

log4j.propertis 放在 WEB-INF/classes 目錄下,需要在 web.xml 配置文件中添加配置

<context-param>
     <param-name>log4jConfigLocation</param-name>
     <param-value>/WEB-INF/classes/log4j.properties</param-value>
 </context-param>

 

5、return 語句 

return語句后不能再寫有效語句,否則編譯報錯。

多重return語句返回:

import java.io.*;
import java.util.*;
class test  
{
    static int a = 1;
    public static void main (String[] args) throws java.lang.Exception
    {
        for(int i=0;i<1;i++) {
            System.out.println(getInt());
        }
    }
    
    private static int getInt() {
        try {
            a = a/0;
            return 1;
        } catch(Exception e) {
            System.out.println(a);
            return ++a;
        } finally {
            System.out.println(a);
            return a++;
        }
    }
}

最后,返回結果是:

分析: 優先級方面,finally中的return語句、catch中的return語句、try中的return語句的優先級逐漸降低,高優先級的return語句會覆蓋掉低優先級的return語句

             return ++a; 會先將a值+1,然后將+1后的值保存起來工返回。如果還有其他代碼的話,繼續進行其他代碼,最后返回保存的返回值。

    return a++; 會先將a值保存在返回值的區域,然后進行+1操作。隨后返回保存的舊值。

    如果try語句中有運行錯誤,那么try語句塊中該錯誤之后的代碼都不再運行,即使有return語句,也不執行

 

6、


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM