NO IMAGE

1、JVM類載入過程(JVM將.class檔案裡的類資訊載入進記憶體,並解析成對應的類物件的過程)
   載入– 將不同來源的.class檔案通過類載入器載入進記憶體
   驗證– 檢驗.class檔案是否符合JVM的規範(因為有的.class檔案可能不是通過javac編譯而來的)
   準備– 為類變數分配記憶體,並賦初值(基本型別的初值為0,引用型別的初值為null,常量的初值為程式碼中設定的值)
   解析– 將符號引用替換為直接引用(將方法名變數名類名替換為記憶體地址或者偏移量)
   初始化– 對類變數初始化,執行類構造器,只對static修飾的變數或語句進行初始化
   
2、Http協議
   瀏覽器訪問一個網址的步驟:
   1》搜尋瀏覽器的DNS快取,如果找到了網址的IP地址,直接訪問該IP地址
   2》第一步沒找到,搜尋作業系統的DNS快取,讀取硬碟中host檔案,裡面有域名到IP地址的對映關係
   3》前面兩部都沒找到,瀏覽器向寬頻運營商伺服器或者域名伺服器發起一個DNS解析請求
   4》拿到IP地址後,瀏覽器向該IP地址所在的伺服器建立TCP連線(三次握手)
   5》TCP連線建立完成後,瀏覽器就可以向伺服器傳送HTTP請求了
   6》伺服器接收請求後,根據路徑引數,經後臺處理返回請求的結果給瀏覽器
   7》瀏覽器顯示返回的結果
   8》如果瀏覽器沒有後續的請求,就會跟伺服器發起TCP斷開(四次揮手)
   HTTP請求由3個部分構成,狀態行,請求頭,請求正文
   狀態行包括:請求方式(GET,POST,PUT,DELETE),路徑(/books?name=123),協議(HTTP/1.1),各元素之間以空格分開
   請求頭包括:Cookie,Host,User-Agent,Connection等
   請求正文:傳送的資料,GET方式請求資料放在狀態行中,請求正文為空,POST方式請求資料放在請求正文中
   GET:一般用於資訊獲取,不會修改資源,GET請求中引數數量有限,請求可以被快取,可以被收藏為書籤
   POST:可能修改伺服器上的資源,請求可以被快取,不可以被收藏為書籤,安全性高
   
   HTTP響應包括3個部分:狀態行,響應頭,響應正文
   狀態行包括:協議(HTTP/1.1),狀態碼(200  OK)
   響應頭包括:Server,Date,Content-Length
   響應正文:伺服器返回的資料
   
3、TCP/IP協議(四層協議:網路介面層,網路層,傳輸層,應用層)
   TCP(傳輸控制協議):提供資料可靠傳輸,面向連線,傳輸效率低,支援的應用協議有:Telnet,FTP,SMTP
   UDP(使用者資料包協議):可靠性要求低,無連線,傳輸效率高,支援的應用協議有:NFS(網路檔案系統),SNMP(簡單網路管理協議),TFTP(通用檔案傳輸協議),DNS(主域名稱系統)
   TCP/IP協議與物理層和資料鏈路層無關
   OSI(七層):
   應用層:為作業系統或網路應用程式提供訪問網路服務的介面
   表示層:裝置固有資料格式和網路標準資料格式的轉換
   會話層:負責建立和斷開通訊連線(資料流動的邏輯通路),以及資料的分割等資料傳輸相關的管理
   傳輸層:管理兩個節點之間的資料傳輸,負責可靠傳輸
   網路層:地址管理和路由選擇,資料單位為packet,路由器工作在這一層
   資料鏈路層:互聯裝置之間傳送和識別資料幀,交換機工作在這一層
   物理層:資料單位為bit,中繼器,集線器,雙絞線工作在這一層
   
4、滑動視窗,擁塞視窗
   滑動視窗:接收方所建議的資料長度
   擁塞視窗:TCP傳送方雖然接收到了接收方建議的資料長度,但傳送方不知道傳輸路徑負載能力,因此TCP傳送方開始只發一小段資料,當收到ACK後,再增加每次傳送的資料,直到達到接收方的處理能力上限或者傳輸路徑的負載能力上限,
   傳送方每次傳送的資料長度就是擁塞視窗的大小