20145209 2016-2017-2 《Java程序设计》第8周学习总结
20145209 2016-2017-2 《Java程序設計》第8周學習總結
教材學習內容總結
1.java.util.logging包提供了日志功能相關類與接口。
2.使用日志的起點是Logger類,Longer類的構造函數標示為protected,不同包的類藥取得Loger實例必須使用它的靜態方法getLogger(),取得實例后可以使用log()方法輸出信息。
3.取得Longger: Logger logger=Logger.getLogger("cc.openhome.Main"); 通過Logger實例的getParent()取得父Logger實例,可以使用intValue()取得內含int值,Logger本身可以通過setLevel()設定Level實例。
Handler與Formatter
1.負責日志輸出的是Handler實例。
2.MemoryHandler不會格式化日志信息,信息會暫存于緩沖區,直到超出大小,才將信息輸出至指定目標Handler。
3.ConsoleHandler:創建時會會自動指定OutputStream為System.err,日志信息會顯示在控制臺。
4.FileHandler:創建時會建立日志輸出是需要的FileOutPutStream,文檔位置與名稱可以使用模式字符串指定。
5.SocketHandler:創建時可以指定主機位置與端口,內部將自動建立網絡聯機,將日志信息傳送至指定主機。
6.Logger可以使用addHandler()新增Handler實例,使用removeHandler()移除Handler。
Handler\Formatter\Filter
如果java.util.logging包中提供的Handler成果都不符合需求,可以繼承Handler類,操作抽象方法publish()、flush()、close()方法來自定義Handler。
國際化基礎
1.ResourceBundle的靜態getBundle()方法會取得一個ResourceBoundle的實例,自動找到對應的.properties文檔,使用getString()指定鍵來取得文檔中的對應值,以后要改變信息就只要改變.properties文檔中的值就可以。
2.國際化的三個重要概念是地區信息、資源包與基礎名稱。
3.使用String的split()方法,可以根據某個字符或字符串切割已有字符串,然后它會返回切割后的各子字符串組成的String數組。
4.規則表示式基本包括兩種字符:字面意義字符與原字符。 國際化基礎
國際化的三個標準:
a.地區(Locale)信息
b.資源包(Resource bundle)
c.基礎名稱(Base name)。
地區信息的對應類是Locale,在建立Locale實例時,可以指定語言編碼與地區編碼。
針對大型數組的平行化操作,新版jdk中,在Arrays上新增如下一些方法:
1.parallelPrefix()方法可以指定XXXBinaryOperator實例,執行類似Stream的reduce()方法。
2.parallelSetAll()方法用來對數組進行初始化或全面重新設置每個索引元素。
3.parallelSort()方法可以將指定的數組分為子數組并以平行化當時分別排序。
教材學習中的問題和解決過程
- 問題1:正則表達式的用法是什么?
java中提供正則表達式功能的類在java.util.regex包下,有兩個類:Pattern 和 Matcher。正則表達會先被編譯為Pattern類,然后創建匹配器,由匹配器進行匹配,典型的調用順序為:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
也可以調用
while(m.find()){System.out.println(m.group());}如果有捕獲組可以用m.group(i)來提取相應的捕獲組,其中i為捕獲組的序號,0表示整體。
我們可以看到其實用法是很簡單,最重要的步驟還在于寫出正確的正則表達式,下面是幾種常用的表達式:
這些表達式有很多是javascript的,很多語言中都有正則表達式的實現,寫法也略有不同,不過如果理解了的話,表面上的不同也不會有什么障礙,我們可以根據它來寫滿足我們自己需要的表達式。
匹配中文字符的正則表達式: [\u4e00-\u9fa5]
匹配雙字節字符(包括漢字在內):[^\x00-\xff]
匹配空行的正則表達式:\n[\s| ]*\r
匹配HTML標記的正則表達式:/<(.)>.</\1>|<(.*) />/
匹配首尾空格的正則表達式:(^\s)|(\s$)
匹配Email地址的正則表達式:\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*
匹配網址URL的正則表達式:http://([\w-]+.)+[\w-]+(/[\w- ./?%&=]*)?
只能輸入數字和英文的:
只能輸入數字的:
只能輸入全角的:
只能輸入漢字的:
上周考試錯題總結
- 下面哪些Linux 命令可以ASCII碼和16進制單字節方法輸出Hello.java的內容?
A .od -b -tx1 Hello.java
B .od -tcx1 Hello.java
C .od -tc -tx1 Hello.java
D .od -tbx1 Hello.java
正確答案: B C
- 下面哪些類的對象會包含“東部標準時間”的信息)
A .Instant
B .LocalDate
C .LocalDateTime
D .LocalTime
E .ZonedDateTime
正確答案: E
- 下面哪些內容會出現在Period對象中?
A .Year
B .Month
C .Day
D .Hour
E .Minute
F .Second
正確答案: A B C
評分標準
- 不使用Markdown不加分
- 有語法錯誤的不加分(鏈接打不開,表格不對,列表不正確...)
- 排版混亂的不加分
- 缺少“教材學習中的問題和解決過程”的不加分
- 缺少“代碼調試中的問題和解決過程”的不加分
- 代碼托管不能打開的不加分
- 缺少“結對及互評”的不能打開的不加分
- 缺少“上周考試錯題總結”的不能加分
- 缺少“進度條”的不能加分
- 缺少“參考資料”的不能加分
教材學習中的問題和解決過程, 一個問題加1分
代碼調試中的問題和解決過程, 一個問題加1分
- 一周提交次數少于20次的不加分
- 周五前發博客的加1分
- 感想,體會不假大空的加1分
- 排版精美的加一分
- 進度條中記錄學習時間與改進情況的加1分
- 有動手寫新代碼的加1分
- 課后選擇題有驗證的加1分
- 代碼Commit Message規范的加1分
- 錯題學習深入的加1分
- 點評認真,能指出博客和代碼中的問題的加1分
- 結對學習情況真實可信的加1分
- 有抄襲的扣至0分
- 代碼作弊的扣至0分
- 遲交作業的扣至0分
點評模板:
- 博客中值得學習的或問題:
- xxx
- xxx
- ...
- 代碼中值得學習的或問題:
- xxx
- xxx
- ...
基于評分標準,我給本博客打分:XX分。得分情況如下:xxx
參考示例
學習進度條
| 目標 | 5000行 | 30篇 | 400小時 | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 300/500 | 2/4 | 18/38 | |
| 第三周 | 500/1000 | 3/7 | 22/60 | |
| 第四周 | 300/1300 | 2/9 | 30/90 |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
參考:軟件工程軟件的估計為什么這么難,軟件工程 估計方法
計劃學習時間:10小時
實際學習時間:5小時
改進情況:
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)
參考資料
Java學習筆記(第8版)
- 《Java學習筆記(第8版)》學習指導
...
轉載于:https://www.cnblogs.com/liuyiyang/p/6719865.html
總結
以上是生活随笔為你收集整理的20145209 2016-2017-2 《Java程序设计》第8周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP转义Json里的特殊字符的函数
- 下一篇: 容器生态系统 (续) - 每天5分钟玩转