java 重难点
Java 重難點:
?
1、Map類型的對象中的鍵值 支持轉(zhuǎn)義字符
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");} }輸出結(jié)果如下所示:
?
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");} }輸出結(jié)果:
?
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 配置了日志記錄優(yōu)先級(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++;}} }最后,返回結(jié)果是:
分析: 優(yōu)先級方面,finally中的return語句、catch中的return語句、try中的return語句的優(yōu)先級逐漸降低,高優(yōu)先級的return語句會覆蓋掉低優(yōu)先級的return語句
? ? ? ? ? ? ?return ++a; 會先將a值+1,然后將+1后的值保存起來工返回。如果還有其他代碼的話,繼續(xù)進(jìn)行其他代碼,最后返回保存的返回值。
return a++; 會先將a值保存在返回值的區(qū)域,然后進(jìn)行+1操作。隨后返回保存的舊值。
如果try語句中有運行錯誤,那么try語句塊中該錯誤之后的代碼都不再運行,即使有return語句,也不執(zhí)行。
?
6、
轉(zhuǎn)載于:https://www.cnblogs.com/maxiaoshuai/p/6970341.html
總結(jié)
- 上一篇: mysql MHA高可用架构安装
- 下一篇: 阿里云总裁胡晓明:保护客户数据隐私是阿里