Linux命令相關java
1. 文件個數查找: find -type f -print|wc -l ; 查找某個文件: find /xxx/xx -name "filename"; 2. 文件行數查看: 2.1查看文件前5行:head -5 /xxx/xx/filename; 2.2查看文件後幾行:tail -5 /xx/xx/filename; 2.3查看新加入到文件中的內容:tail -f /xx/xx/filename; 3.查找系統內匹配某個字符的文件信息(例如tomcat): ps -ef | grep tomcat 4.查詢當前所在的路徑 :pwd 5.強制終止進程命令: kill -9 pid (終止number=pid號的進程) 6.顯示當前登陸用戶名:whoami或者id -un 7.顯示用戶使用過的命令: history 8.查看磁盤空間使用狀況 :df -hl 9.在file.txt中搜索包含有」hello」的行並計算其行數。 grep "hello" file.txt|wc -l 10:字符分隔 awk: awk 用來從文本文件中提取字段。缺省地,字段分割符是空格,可使用-F指定其餘分割符。cat file.txt | awk -F, '{print $1 "," $3 }'這裏咱們使用,做爲字段分割符,同時打印第一個和第三個字段。若是該文件內容以下: Adam Bor, 34, IndiaKerry Miller, 22, USA命令輸出結果爲:Adam Bor, IndiaKerry Miller, USA
windows命令相關
查看某個端口被哪一個進程佔用,並殺掉進程
查看:netstat -ano //獲得全部端口使用狀況,可得到被佔用端口的pid
查看端口號:netstat -ano | findstr "80" //查看21號端口被佔用狀況
查看具體進程使用:tasklist | findstr "2804" //查看任務列表中pid對應的進程名稱
**面試
網絡相關算法
3.1http和https的區別windows
HTTP 的 URL 以 http:// 開頭,而 HTTPS 的 URL 以 https:// 開頭 HTTP 是不安全的,而 HTTPS 是安全的 HTTP 標準端口是 80 ,而 HTTPS 的標準端口是 443 在 OSI 網絡模型中,HTTP 工做於應用層,而 HTTPS 工做在傳輸層 HTTP 無需加密,而 HTTPS 對傳輸的數據進行加密 HTTP 無需證書,而 HTTPS 須要認證證書
HTTP工做原理:數組
瀏覽器打開一個 TCP 鏈接 瀏覽器發送 HTTP 請求到服務器端 服務器發送 HTTP 迴應信息到瀏覽器 TCP 鏈接關閉
SSL的原理:瀏覽器
驗證服務器端 容許客戶端和服務器端選擇加密算法和密碼,確保雙方都支持 驗證客戶端(可選) 使用公鑰加密技術來生成共享加密數據 建立一個加密的 SSL 鏈接 基於該 SSL 鏈接傳遞 HTTP 請求
3.2 cookie和session的區別
通俗的將,Cookie是訪問某些網站之後在本地存儲的一些網站相關的信息,下次再訪問的時候減小一些步驟。另一個更準確的說法是:Cookies是服務器在本地機器上存儲的小段文本並隨每個請求發送至同一個服務器,是一種在客戶端保持狀態的方案。tomcat
Cookie的主要內容包括:名字,值,過時時間,路徑和域,可經過抓包工具查看安全
Session是存在服務器的一種用來存放用戶數據的類HashTable結構。服務器
當瀏覽器 第一次發送請求時,服務器自動生成了一個HashTable和一個Session ID用來惟一標識這個HashTable,並將其經過響應發送到瀏覽器。當瀏覽器第二次發送請求,會將前一次服務器響應中的Session ID放在請求中一併發送到服務器上,服務器從請求中提取出Session ID,並和保存的全部Session ID進行對比,找到這個用戶對應的HashTable。通常這個值會有一個時間限制,超時後毀掉這個值,默認是20分鐘。
Session的實現方式和Cookie有必定關係。session id存在Cookie中,而後每次訪問的時候將Session id帶過去就能夠識別了
很容易看出來最明顯的不一樣是一個在客戶端一個在服務端。由於Cookie存在客戶端因此用戶能夠看見,因此也能夠編輯僞造,不是十分安全。cookie
3.3 post和get的區別
GET在瀏覽器回退時是無害的,而POST會再次提交請求。
GET產生的URL地址能夠被Bookmark,而POST不能夠。
GET請求會被瀏覽器主動cache,而POST不會,除非手動設置。
GET請求只能進行url編碼,而POST支持多種編碼方式。
GET請求參數會被完整保留在瀏覽器歷史記錄裏,而POST中的參數不會被保留。
GET請求在URL中傳送的參數是有長度限制的,而POST沒有。
對參數的數據類型,GET只接受ASCII字符,而POST沒有限制。
GET比POST更不安全,由於參數直接暴露在URL上,因此不適合用來傳遞敏感信息。
GET參數經過URL傳遞,而POST放在Request body中。
算髮相關
冒泡法排序
package testdemo; import java.awt.List; import java.util.ArrayList; import java.util.Arrays; public class Testjisuan { @SuppressWarnings("unchecked") public static void main(String[] args){ //冒泡法排序,將數組從小到大排列輸出 int[] at= new int[]{4,3,5,78,3,7,13,56}; int len=at.length; System.out.println("數組的長度爲:"+len); //String aString = Arrays.sort(at); System.out.println("數組使用Arrays類的從小到大排序爲:"+Arrays.toString(at)); int tmp=0; for(int i=0;i<len-1;i++) { for(int j=i+1;j<len;j++){ if(at[i]>at[j]) { tmp =at[i]; at[i]=at[j]; at[j]=tmp; } } } //輸出數組 System.out.println("該數組從小到大排列順序爲:"+Arrays.toString(at)); } }
字符串逆序輸出
package test; import java.util.ArrayList; import java.util.Arrays; public class teststr { public static void main(String[] args) { String st="hello,word!"; int len =st.length(); ArrayList newstr= new ArrayList(); for(int j= len-1;j>=0;j--){ newstr.add(st.charAt(j)); } System.out.println("改字符串從尾到頭輸入顯示爲:"); for(int k=0;k<len;k++) System.out.print(newstr.get(k)); } }
輸出結果
約瑟夫環
package testdemo; import java.util.ArrayList; import java.util.Scanner; import com.melloware.jintellitype.Main; public class YoSess { @SuppressWarnings({ "rawtypes", "resource" }) public static void main(String[] args){ //生成約瑟夫環的數組 ArrayList ls= new ArrayList(); //從鍵盤得到輸入值 Scanner sc1= new Scanner(System.in); int total=sc1.nextInt(); int out = sc1.nextInt(); //往數組中初始化值 for(int i=0;i<total;i++){ ls.add(i+1); } // int i=-1; int cut=0; System.out.println("出局的數據順序爲:"); while(ls.size()!=0){//當數組中還有數據時,從頭開始日後數 ++i; if(i==ls.size()){//當數到頭時,又從頭開始數 i=0; } ++cut; if(cut==out){ //當數到須要出局的數據時作處理 System.out.print(ls.get(i)+","); ls.remove(i); cut=0; i--; } } } }
輸出:
快速排序
package com.quicksort; import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int[] a = {1, 2, 4, 5, 7, 4, 5 ,3 ,9 ,0}; System.out.println(Arrays.toString(a)); quickSort(a); System.out.println(Arrays.toString(a)); } public static void quickSort(int[] a) { if(a.length>0) { quickSort(a, 0 , a.length-1); } } private static void quickSort(int[] a, int low, int high) { //1,找到遞歸算法的出口 if( low > high) { return; } //2, 存 int i = low; int j = high; //3,key int key = a[ low ]; //4,完成一趟排序 while( i< j) { //4.1 ,從右往左找到第一個小於key的數 while(i<j && a[j] > key){ j--; } // 4.2 從左往右找到第一個大於key的數 while( i<j && a[i] <= key) { i++; } //4.3 交換 if(i<j) { int p = a[i]; a[i] = a[j]; a[j] = p; } } // 4.4,調整key的位置 int p = a[i]; a[i] = a[low]; a[low] = p; //5, 對key左邊的數快排 quickSort(a, low, i-1 ); //6, 對key右邊的數快排 quickSort(a, i+1, high); } }
後續還會追加,也歡迎你們講遇到的面試題回覆下,我來總結查找答案**