『sort』:sort將文件/文本的每一行做爲一個單位,相互比較,比較原則是從首字符向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。html
sort(選項)(參數)
-k +<起始欄位>-<結束欄位>
這一命令時,若「只」根據本域的第n個字符進行排序,則使用-k n,n
。『cut』:cut命令用來顯示行中的指定部分,刪除文件中指定字段。java
『split』:能夠將一個大文件分割成不少個小文件linux
『join』:用來將兩個文件中,將指定欄位內容相同的行鏈接起來。git
返回目錄
正則表達式
『問題一』MySQL支持的SQL語法都有哪些?數據庫
『問題一解決』數組
SQL是結構化查詢語言,主要用於訪問和處理數據庫的計算機語言。架構
(1)MySQL的數據類型ide
MySQL的數據類型大體分爲如下幾類,數值類型、字符串類型、日期和時間類型。oop
(2)建立數據庫
在建立數據庫以前,必須先建立數據庫,在MySQL中,建立數據庫的代碼以下:
create database wuzydb default character set utf8
以上代碼建立了wuzydb數據庫,並設置編碼爲utf8。
(3)建立表
表必須在數據庫中建立,因此在建立表以前,需調用use wuzydb
;
建立表:create table 表名(字段 字段類型...)
(4)對錶中數據進行增刪改查
①insert
插入:insert into 表名(字段1,字段2...)values(值1,值2...)
②select
查找:select * from 表名
(查詢全部數據);select 字段1,字段2...from 表名
(查詢某幾個字段的數據)
③update
修改:update 表名 set 字段1=值1,字段2=值2...
④delete
刪除:deleta from 表名
學習正則表達式的過程當中,運行測試代碼時出現了「Red Bar」,以下:
運行結果顯示,"\"Hello\"".matches("([\"'])[^\"']*\1")
爲false。哪裏出錯了呢?
把regex複製到正則表達式測試器
上運行,結果是匹配的:
那麼,問題只能出在這行代碼上,而不是正則表達式自己。只有一種可能,就是沒有正確使用Java中的轉義字符,致使程序不能正確匹配。
再返回去看程序中的正則表達式,發現忽略了最後一個轉義符。()
表示將括號裏的分組,後面的\1
表示反向引用第一組,而在Java中,\
自己就是轉義符,表示忽略\
後面的內容,因此,要想使用「反向引用」這個含義,必須再次使用\
進行轉義。再次運行,發現斷言正確,說明咱們的分析是正確的。
在學習命令行時,參考資料常用/etc/passwd
文件進行演示,那麼,/etc/passwd
以及/etc/shadow
是什麼文件呢:
查閱相關資料瞭解到,在Linux操做系統中, /etc/passwd文件中的每一個用戶都有一個對應的記錄行,記錄着這個用戶的一下基本屬性。咱們經過命令行cat /etc/passwd
查看/etc/passwd
文件內容:
咱們能夠看到,/etc/passwd中一行記錄對應着一個用戶,每行記錄又被冒號(:)分隔爲7個字段,其格式和具體含義以下:用戶名:口令:用戶標識號:組標識號:註釋性描述:主目錄:登陸Shell
/etc/shadow文件格式與/etc/passwd文件格式相似,一樣由若干個字段組成,字段之間用「:」隔開。但須要注意的是,/etc/shadow文件只有系統管理員纔可以進行修改和查看:
/etc/shadow文件中的記錄行與/etc/passwd中的一一對應,它由pwconv命令根據/etc/passwd中的數據自動產生。文件中字段主要含義爲:登陸名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌
A .Path
B .DirectoryStream
C .FileStore
D .FileSystem
『考點』:FileSystem
的getRootDirectorie
方法能夠取出文件系統根目錄信息。對NIO各個方法還不夠熟悉。
A .不匹配
B .'Hello'
C ."World"
D .'Hello',"World"
『考點』:.*
是貪婪量詞,會盡可能匹配更多;而本題中的.*?
是懶惰量詞,儘可能匹配少。因此匹配結果爲'Hello'
和"World"
兩個。另外,反向引用 \1 表明第一個()中的匹配內容。
A ."rat".matcher("r.t")
B ."r.t".matcher("rat")
C .Pattern.compile("rat").matcher("r.t")
D .Pattern.compile("r.t").matcher("rat")
『考點』:課本P491提到,java.util.regex.Pattern
實例是正則表達式在JVM中的表明對象,需經過compile()
方法來取得。在取得Pattern
實例後,可使用matcher()
方法指定要比較的字符串。
A .for(int i = 0; i < names.length; i++)
B .for(String name : names)
C .for(int i = 0; i < names.length(); i++)
D .none of these will correctly process each element(以上都不能遍歷)
E .all of these will correctly process each element(以上都能遍歷)
『考點』:長度length
是成員變量,不是方法,因此不能加括號。C錯誤。
結對對象:20145202馬超
結對學習內容:解決對方學習過程當中遇到的問題
本週學習最大的收穫來自於實驗和正則表達式的學習。實驗的內容很豐富,在夯實基礎的同時,也加深咱們對知識的理解和掌握。
學習過程當中遇到很多問題,畏難情緒時常讓我產生退縮的念頭。不過,唾手可得的知識真的有價值嗎?我看未必。
以本週正則表達式的學習爲例,一個很是簡單的正則表達式用Java程序運行起來卻不符合預期,帶着疑惑請教老師,老師建議我先在regextester上跑通再運行程序。但是把程序中的正則表達式複製過去倒是匹配的,仔細想了想,明白出錯的緣由在於忽略了Java中的轉義符。
這個問題本能夠直接回答我錯誤在哪裏,老師卻提供給我一種方法而不只僅是一個答案。摸索的過程雖然比直接獲得答案來的艱難,但授人以魚不如授人以漁,從此再遇到類似的問題,就均可以自行解決了。
墨非定律告訴咱們: 若是你認爲事情會向壞的方向發展,那麼事情必定會那樣。因此,毫不說「不可能」,不斷挑戰自我才能更快地成長。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 16/16 | 1/1 | 18/18 | 初步認識了Java |
第二週 | 219/235 | 1/2 | 28/46 | 學習了Java的基本語法知識 |
第三週 | 766/1001 | 1/3 | 23/69 | 瞭解對象與參考的關係,以及封裝的概念與實現 |
第四周 | 984/1985 | 1/4 | 18/87 | 學習了繼承與多態的關係,以及接口的多態操做 |
第五週 | 866/2851 | 1/5 | 12/99 | 學習了異常處理,學會使用Collection收集對象 |
第六週 | 664/3515 | 1/6 | 15/114 | 認識字節流和字符流的繼承架構,學習線程與並行API |
第七週 | 469/3984 | 1/7 | 13/127 | 認識Date與Calender |
第八週 | 315/4299 | 1/8 | 15/142 | 學習了NIO、日誌、正則表達式等內容,複習第六章「繼承與多態」和「Linux 目錄結構及文件基本操做」 |
第九周 | 553/4852 | 1/9 | 20/142 | 學習了數據庫、反射與類加載器、自定義泛型枚舉與註釋等內容,複習經常使用命令join、cut、split和sort |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
計劃學習時間:15小時
實際學習時間:20小時
(有空多看看現代軟件工程課件:軟件工程師能力自我評價表)