日誌APIhtml
1.java.util.logging包提供了日誌功能相關類與接口,使用日誌的起點是logger類,Logger類的構造函數標示爲protected,不是java.util.logging同包的類不能直接以new建立,必許使用Logger的靜態方法,如:Logger logger = Logger.getLogger("cc.openhome.Main")
。java
2.取得Logger的方式:Logger logger = Logger.getLogger("Main.class.getName")
。小程序
3.名稱空間層級相同的Logger,父Logger組態會相同,每一個Logger處理完本身的日誌動做後,會向父Logger傳播,讓父Logger也能夠處理日誌。
api
指定日誌層級數組
1.Logger與Handler默認都會先依據Level過濾信息,若是沒有作任何修改,取得的Logger實例之父Logger組態,就是Logger.GLOBAL-LOGGER-NAME
空間名稱Logger實例的組態。架構
2.在沒有任何組態設定的狀況下,默認取得的Logger實例,層級必須大於或等於Logger.GLOBAL-LOGGER-NAME
名稱空間logger實例設定的Level.INFO,纔可能輸出信息。能夠經過setLevel()指定Level實例,能夠用Level內組建的幾個靜態成員來指定:函數
·Level.OFF(Integer.MAX_VALUE) ·Level.SEVERE(1000) ·Level.WARNING(900) ·Level.INFO(800) ·Level.CONFIG(700) ·Level.FINE(500) ·Level.FINER(400) ·Level.FINEST(300) ·Level.ALL(Integer.MIN_VALUE)
3.Handler可經過setLevel()設定信息, 如下顯示的信息不只要將Logger的層級設定爲Level.INFO,也要講Handler的層級設定爲Level.INFO。
學習
Handler、Formatter與Filter編碼
1.Handler負責日誌輸出,標準API提供了幾個操做類:線程
·MemoryHandler不會格式化日誌信息,信息會暫存於內存緩衝區,直至超過大小纔將信息輸出至指定的目標Handler。 ·StreamHandler可自行指定信息輸出時使用的OutputStream。 ·ConsoleHandler建立時,會自動指定OutputStream爲System.err。 ·SocketHandler建立時能夠指定主機位置與端口。
2.Logger能夠使用addHandler()新增Handler實例,使用removeHandler()移除Handler。
3.在創建FileHandler指定模式字符串時,能夠使用「%h」來表示用戶的根目錄,還能夠使用「%t」取得系統暫存目錄,或者使用「%g」自動爲文檔編號。
4.Handler是負責輸出,Formatter負責格式化,而信息過濾是交由Filter。
5.Logger與Handler默認只會根據層級過濾信息。
使用logging.properties
1.能夠改變Logger組態能夠經過logging.properties。
國際化
1.在不修改應用程序狀況下,根據不一樣用戶直接採用不一樣語言、日期格式等,這樣的設計考慮稱爲國際化,簡稱i18n。使用ResourceBundle
1.對於往後可能變更的文字信息,能夠考慮將信息移至程序以外,使用ResourceBundle來作信息綁定。
2..properties
文檔必須放置在CLASSPATH的路徑設定下,文檔中撰寫的是鍵/值配對,以後在程序中能夠使用鍵來取得配對。
使用Locale
1.國際化的三個標準是地區(Locale)信息、資源包(Resource bundle)與基礎名稱(Base name)。
2.地區信息表明了特定的地理、政治或文化區,由一個語言編碼(由兩個小寫字母表示)與可選的地區編碼(由兩個大寫字母表示)來指定。地區信息的對應類是Locale,如Locale locale=new Locale("zh","TW");
。
3.資源包中包括了特定地區的相關信息。
4.表明同一組信息但不一樣地區的各個資源包會共享相同的基礎名稱。
簡介
1.規則表示式主要用於字符、字符串格式比較,包含字面意義字符與元字符。字面意義字符是指按照字面意義比較的字符,元字符是不按照字面意義比較,在不一樣情境有不一樣意義的字符。
2.若是你有一個字符串,能夠使用String的split()方法,他會返回切割後各個子字符串組成的String數組。
3.字面意義字符
(1)字母和數字在規則表示式中都是按照字面意義比較的,有些字符以前加上\以後會被當作元字符。
(2)元字符在規則表示式中有特殊意義,比較標點時能夠在每一個符號前加上。
(3)「X或Y」能夠用X|Y表示,「X或Y或Z」能夠用[XYZ]表示。
4.字符類
(1)規則表示式中,多個字符能夠分歸在一塊兒,成爲一個字符類,會比較文字中是否有任一個字符符合字符類中某個字符。字符類中能夠再有字符類。
(2)歸類字符的方式之一是將字符放於[]中。「1到5任意數字出現」表示爲[1-5]。
(3)字符類中能夠使用^做爲字符類元字符,[^]則爲反字符類。「a、b、c之外的字符」表示爲[^abc]。
5.貪婪、逐步、獨吐量詞
(1){n}是貪婪量詞表示法的一種,表示前面的量詞出現n次,會盡量找出長度最長的符合文字。
(2)在貪婪量詞表示法後加上?,將會成爲逐步量詞,會盡量找出長度最短的符合文字。
(3)在貪婪量詞表示法後加上+,將會成爲獨吐量詞,沒有任何文字符合。
6.邊界比較
(1)使用\b標出單詞邊界。
7.分組與參考
(1)使用{}來將規則表示式分組,除了做爲子規則表示式以外,還能夠搭配量詞使用。
(2)分組回頭參考時,是在\後加上分組計數。Pattern與Matcher
1.在程序中使用表示式,必須先針對規則表示式作剖析、驗證等動做,肯定規則表示式語法無誤,對字符串進行比較。
2.java.util.regex.Pattern實例是規則表示式在JVM中的表明對象,Pattern的構造函數被標示爲private,必須經過Pattern的靜態方法compile()來取得。
StringJoiner、Arrays新增API
1.String,join()、StringJoiner
(1)String新增join()靜態方法能夠指定每一個字符串間以逗號分隔進行鏈接。
2.Arrays
(1)Arrays上新增parallelPrefix()、parallelSetAll()與parallelSort()方法。Stream相關API
1.Files上有lines()、list()、walk()等方法。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 150/150 | 1/2 | 15/15 | 學會搭建Java環境,學會寫Hello World小程序 |
第二週 | 350/500 | 1/3 | 20/35 | 掌握IDE的使用方法,學會Java的基本語法規則 |
第三週 | 400/900 | 1/4 | 35/70 | 學會代碼託管,學習了類類型、面向對象、函數等知識 |
第四周 | 990/1890 | 1/5 | 40/110 | 學會使用wc統計代碼行數,學會將多個class文件放在一個包內 |
第五週 | 992/2882 | 1/6 | 30/140 | 瞭解Java的異常處理,學習Collection和Map架構 |
第六週 | 1486/4368 | 2/8 | 30/170 | 瞭解串流設計和線程,完成第一次實驗 |
第七週 | 408/4776 | 2/10 | 15/185 | 瞭解Date及其相關知識,完成第二次實驗 |
第八週 | 246/5022 | 2/12 | 15/200 | 瞭解通用API等相關知識,完成第三次實驗 |