Java NIO 由如下幾個核心部分組成:
Channels
Buffers
Selectors
Channles包括:
ReadableByteChannel
WritableByteChannel
Buffers包括:
ByteBuffer
CharBuffer
DoubleBuffer
FloatBuffer
IntBuffer
LongBuffer
ShortBuffer
Selector容許單線程處理多個 Channel。若是應用打開了多個鏈接(通道),但每一個鏈接的流量都很低,使用Selector就會很方便。html
java.nio.file.Files 與 java.nio.file.FileVisitor 使得您能夠在文件系統中漫步,在特定目錄深度查詢文件或者目錄,並可對每一個查詢結果執行用戶實現的回調方法。
java.nio.file.Path 與 java.nio.file.WatchService 容許 「 註冊 」 來監視特定目錄。若是在目錄中發生了文件建立、修改或者刪除操做,監視目錄的應用程序將收到通知。
java.nio.attribute.AttributeView 容許查看此前對於 Java 用戶隱藏的文件和目錄屬性。這些屬性包括文件全部者及組權限,訪問控制列表(ACL),以及擴展文件屬性。
NIO.2 提供了 FileVisitor 的實現接口:java.nio.file.SimpleFileVisitor。該類以基礎方式獲取:對於 Failed() 方法,它只是從新引起該異常,而且對於其餘方法,它會繼續下去而根本不作任何事!它的做用在於,可使用匿名類來替代您所但願替代的方法;剩下的方法會按默認方式實現。FileVisitor 的實現,應當爲其訪問的每一個目錄和文件打印消息,並給出從其 BasicFileAttributes 中獲取的文件大小。
DecimalFormat類
DecimalFormat類 包含一個模式 和一組符號
符號含義:
0 一個數字
一個數字,不包括 0
. 小數的分隔符的佔位符
, 分組分隔符的佔位符
; 分隔格式。java
一、日誌工具類(logger):一般,大部分的日誌框架都會定義一個主要的日誌輸出的工具類,開發者只須要聲明該類,便可實現大部分的日誌輸出操做
二、日誌輸出級別(Level):日誌輸出的級別,意味着該日誌的重要程度,大部分的日誌框架的級別會分爲:Debug(調試模式),Info,warn,error,fatal,其中,根據級別的大小排序,debug>info>warn>error>fatal。級別的大小,將會影響日誌的輸出,將級別設置的越高,輸出的信息將會越多
三、日誌輸出格式(format):日誌輸出的格式,一般能夠進行自定義,經過自定義的格式,輸出的詳細效果將不一樣
四、日誌輸出的方式:即將日誌輸出到哪?常見的輸出方式包括如:控制檯,文本文件,數據庫等
五、日誌分割:日誌文件若以文件的方式進行輸出的話,會存在文件大小問題,因此須要對日誌進行分割,分割的方式能夠分爲按大小,按日期等。
Handler:輸出介質
MemoryHandler不會格式化日誌信息,信息會暫存於內存緩衝區,直到超過緩衝區大小,纔將信息輸出至指定的目標Handler。
StreamHandler可自行指定信息輸出時使用的Outputstream實例,它與子類都會使用指定的Formatter格式化信息。
ConsoleHandler建立時,會自動指定Outputstream爲System。err,因此日誌信息會顯示在控制檯。
FileHandler建立時會創建日誌輸出時使用的FileOutputStream,文檔位置與名稱可使用模式字符串指定。
SocketHandler建立時能夠指定主機位置與端口,內部將自動創建網絡聯機,將日誌信息傳送至指定的主機。
addHandler()新增Hnadler實例。
removeHandler()移除Handler實例。
Handler是負責輸出,格式化是交由Formatter,而信息過濾是交由Filter。Handler有默認的isLoggable()操做,會先依據Level過濾的信息,再使用指定的Filter過濾信息。git
字符與元字符
字符類
貪婪、非貪婪、獨佔量詞
邊界比較
錨點
分組與反向引用正則表達式
logger類
經過Logger類的靜態方法Logger.getRootLogger獲得RootLogger。全部其餘的loggers是經過靜態方法Logger.getLogger來實例化並獲取的。數據庫
private static Logger logger = Logger.getLogger(Test.class.getName()); Logger logger = Logger.getRootLogger(); logger.debug("This is debug message."); // 記錄info級別的信息 logger.info("This is info message."); // 記錄error級別的信息 logger.error("This is error message.");
Level類
編程
ResourceBundle類
getBundle(String)
獲取恰當的資源束子類。
getBundle(String, Locale)
獲取恰當的資源束子類。
getKeys()
返回鍵的枚舉。
getObject(String)
從資源束獲取一個對象。
getString(String)
從資源束獲取一個對象。
getStringArray(String)
從資源束獲取一個對象。
handleGetObject(String)
從資源束獲取一個對象。
setParent(ResourceBundle)
設置該束的父類束。api
Pattern類和Matcher類
il.regex是一個用正則表達式所訂製的模式來對字符串進行匹配工做的類庫包。它包括兩個類:Pattern和Matcher Pattern 一個Pattern是一個正則表達式經編譯後的表現模式。 Matcher 一個Matcher對象是一個狀態機器,它依據Pattern對象作爲匹配模式對字符串展開匹配檢查。 首先一個Pattern實例訂製了一個所用語法與PERL的相似的正則表達式經編譯後的模式,而後一個Matcher實例在這個給定的Pattern實例的模式控制下進行字符串的匹配工做。網絡
問題1:
對於正則表達式的細則不夠了解架構
問題1解決方案:
詳細可參考:正則表達式語法規則框架
問題2:
對於國際化基礎概念不夠清晰
問題2解決方案:
同計算機編程有關的國際化是設計和編寫應用程序以即可以在全球或多國環境中使用的過程。國際化程序可以支持不一樣的語言以及不一樣格式的日期、時間、貨幣和其它值,而無須軟件修改。這一般涉及「軟編碼」或將文本組件同程序代碼分離而且可能涉及可插入代碼模塊。
問題1:
問題1解決方案:
for語句成分不完整,添加完整後運行成功
問題2:
問題2解決方案:
運行過程出現問題,還沒有解決
錯題1及緣由,理解狀況
vi中哪條命令是不保存強制退出?
q!
錯題2及緣由,理解狀況
JDK8中定義的通用函數接口,從行爲上分爲()類型:
A .
Consumer
B .
Function
C .
Predicate
D .
Supplier
答案爲ABCD
錯題3及緣由,理解狀況
JDK8 中新時間API中,用於度量時間的類爲Duration和Period
錯題4及緣由,理解狀況
須要人類能理解的時間,建議使用Date類的toString(). 說法是錯誤的。
錯題5及緣由,理解狀況
下面哪些類的對象會包含「東部標準時間」的信息
ZonedDateTime
錯題6及緣由,理解狀況
當應用到實例變量時,____可見性修飾符強制執行封裝
private
教材學習中的問題和解決過程, 一個問題加1分
代碼調試中的問題和解決過程, 一個問題加1分
基於評分標準,我給本博客打分:XX分。得分狀況以下:xxx
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 6/6 | 1/4 | 20/20 | |
第二週 | 334/340 | 1/5 | 18/38 | |
第三週 | 570/900 | 1/6 | 22/60 | |
第四周 | 544/1358 | 1/7 | 30/90 | |
第五週 | 731/2089 | 1/8 | 30/90 | 瞭解了java中的架構,排序,以及異常處理 |
第七週 | 541/3558 | 2/10 | 30/90 | 瞭解了JDK8新的時間日期API |
第八週 | 430/3877 | 1/11 | 30/90 | 學習了NIO、NIO2與通用API |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
計劃學習時間:25小時
實際學習時間:20小時
改進狀況:
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)