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分鐘。