java學習(二十四)

1、用linux命令,統計文檔中出現字符串的次數。

  • grep -c  '要統計的字符串'   fileName
  • zgrep -c  '要統計的字符串'   fileName(服務器端常有很多壓縮過的日誌文件,爲了避免解壓文件,可以使用zgrep,zcat等命令查找、查看壓縮文件中的信息)
  • grep '要統計的字符串' fileName | wc -l

2、static關鍵字

  • static是一個修飾符,用於修飾成員。(成員變量,成員函數)static修飾的成員變量 稱之爲靜態變量或類變量。
  • static修飾的成員被所有的對象共享。
  • static優先於對象存在,因爲static的成員隨着類的加載就已經存在。
  • static修飾的成員多了一種調用方式,可以直接被類名所調用,(類名.靜態成員)。
  • static修飾的數據是共享數據,對象中的存儲的是特有的數據。

成員變量和靜態變量的區別

  • 生命週期的不同

成員變量隨着對象的創建而存在隨着對象的回收而釋放。

靜態變量隨着類的加載而存在隨着類的消失而消失。

  • 調用方式不同

成員變量只能被對象調用。

靜態變量可以被對象調用,也可以用類名調用。(推薦用類名調用)

  • 別名不同

成員變量也稱爲實例變量。

靜態變量稱爲類變量。

  • 數據存儲位置不同

成員變量數據存儲在堆內存的對象中,所以也叫對象的特有數據。

靜態變量數據存儲在方法區(共享數據區)的靜態區,所以也叫對象的共享數據。

靜態使用時需要注意的事項

  • 靜態方法只能訪問靜態成員。(非靜態既可以訪問靜態,又可以訪問非靜態)
  • 靜態方法中不可以使用this或者super關鍵字。
  • 主函數是靜態的

3、Linux性能調優,如何發現及診斷問題

命令 vmstat:首先檢查 cpu,cpu 使用率要提升而不是降低。(CPU)

命令 Top(CPU)

命令 iostat(IO)

CPU 負載高怎麼定位(排查過程):

執行top -c ,顯示進程運行信息列表。鍵入P (大寫p),進程按照CPU使用率排序
top -Hp 10765 ,顯示一個進程的線程運行信息列表。鍵入P (大寫p),線程按照CPU使用率排序(進程10765內,最耗CPU的線程PID爲10804,一般超過80%就是比較高的,80%左右是合理情況。)
將線程PID轉化爲16進制:printf “%x” 10804。(10804對應的16進制是0x2a34,當然,這一步可以用計算器。)
jstack 10765 | grep ‘0x2a34’ -C5 --color

4、智力題:燒一根不均勻的繩子,從頭燒到尾是要1個小時.現在有若干條材質相同的繩子 問如何用燒繩的方法來計時一個小時15分鐘.

1根兩頭燒,一根一頭燒。當兩頭燒的燒完的時候就是半小時,此時立刻點燃那根一頭燒的另一頭,燒完就是45分鐘。這根也燒完的時候立刻點燃第三根的兩頭,燒完就是75分鐘。

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