開發第五天小記

一、內部類
放在類或方法內部的類

1:內部類被當成其外部類成員

  • 像外部類的成員變量一樣,故可以直接訪問外部類的私有數據;
  • 但外部類不能訪問內部類的實現細節,例如內部類的成員變量,得new 內部類就可以訪問了;
    2:static修飾一個內部類,
  • 則這個內部類就屬於外部類本身,而不屬於外部類的某個對象。

例如person這個類,private class run,則run屬於person共有的,即外部類本身;而 小明 = new
person,小明可能1歲,還不會run,即不屬於外部類的某個對象

  • 是類級別的,static關鍵字的作用是把類的成員變成類相關,而不是實例相關

類和實例區別參照上面的小明

3:靜態內部類,不能訪問外部類的實例成員,只能訪問外部類的類成員

二、curl和wget的區別和使用
https://www.jianshu.com/p/888376ac33ac

三、學習shell
shell命令
-eq           //等於
-ne           //不等於
-gt            //大於 (greater )
-lt            //小於  (less)
-ge            //大於等於
-le            //小於等於

我們經常會碰到這樣的問題,用 telnet/ssh 登錄了遠程的 Linux 服務器,運行了一些耗時較長的任務, 結果卻由於網絡的不穩定導致任務中途失敗。所以我們需要讓進行在後臺運行着。這裏有兩種途徑解決方法:要麼讓進程忽略 HUP 信號,要麼讓進程運行在新的會話裏從而成爲不屬於此終端的子進程。

  1. &
    可在結尾加上“&”來將命令同時放入後臺運行,這個熟悉Linux的人應該都會使用到的辦法。

上例中,新提交的進程的父 ID(PPID)爲1(init 進程的 PID),並不是當前終端的進程 ID。因此並不屬於當前終端的子進程,從而也就不會受到當前終端的 HUP 信號的影響了。
2. nohup
nohup 的用途就是讓提交的命令忽略 hangup 信號。其使用只需在要處理的命令前加上 nohup 即可,標準輸出和標準錯誤缺省會被重定向到 nohup.out 文件中。一般可在結尾加上“&”來將命令同時放入後臺運行,也可用">filename 2>&1"來更改缺省的重定向文件名。
3. setsid
可以是Linux下的一個命令,也可以是C等編程語言中的函數,其功能是一樣的。setsid函數將創建新的會話,並使得調用setsid函數的進程成爲新會話的領頭進程。調用setsid函數的進程是新創建會話中的惟一的進程組,進程組ID爲調用進程的進程號。
setsid函數調用還有個條件,即調用進程不爲一個進程的領頭進程。在我開頭的例子中剛好符合這一條件。shell(父)進程退出,使得子進程不可能是進程組的領頭進程。該會話的領頭進程沒有控制終端與其相連。滿足了守護進程沒有控制終端的要求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章