原创 jvm調優的常見指令和參數

1.指令 1.jps命令用於查詢正在運行的JVM進程。 2.jstat可以實時顯示本地或者遠程JVM進程中類的裝載、內存、垃圾收集、JIT編譯等數據。 3.jinfo用於查詢當前運行的JVM的屬性和參數值。 4.jmap用於顯示當前Jav

原创 Http的request和response的協議組成

1.request請求組成: 它由四部分組成即:請求行,請求頭部,空行,請求數據 2.response響應組成: 它也由四部分組成即:狀態行,消息報頭,空行,響應正文。     參考文章:https://juejin.im/post/5e

原创 談談對http緩存的理解

http每次獲取響應數據是根據請求頭部標籤來判斷是從緩存直接取數據,還是重新從服務器去拿。 1.http的緩存分類: 1.強制緩存:需要服務器參與判斷,當第一次發送請求時,服務器會返回緩存過期時間,那下次請求時,請求時間如果小於到期時間,

原创 http1.1爲什麼要使用長連接

http1.0是短連接,http1.1纔有長連接的,而且長連接是指TCP長連接,一個TCP連接可以傳送多個請求和響應,避免了頻繁建立和銷燬連接,降低消耗和延遲。 注意長連接並不是永久連接,如果一段時間內沒有http請求,長連接就會斷掉。

原创 如何安全停止一個線程任務

1.終止線程: 1.使用violate boolean變量退出標誌,使線程正常退出,即線程執行完run方法體後,正常退出(推薦)。 2.使用interrupt() 嘗試終止線程,但是不一定成功。 3.使用stop()強制終止線程。不安全的

原创 TCP傳輸爲什麼可靠?

1.確認和重傳:接收方收到數據後會進行確認,發送方一段時間沒有收到確認信息,就會重傳。 2.數據校驗:數據合理分片和排序。TCP會對數據分片,接收方會將數據按順序緩存,接收完畢後,會對數據進行重新排序,之後在提交給應用層。 3.流程控制:

原创 線程死鎖的四個條件

1.死鎖是如何發生的? 當線程A獨佔鎖a,嘗試獲取鎖b,而線程B獨佔鎖b,嘗試獲取鎖a時,因爲線程AB互相持有對方想要的鎖,而陷入死鎖。 2.造成死鎖的四個條件 1.互斥:某種資源一次只允許一個進程訪問,即該資源一旦分配給了某個進程,其他

原创 Https如何防範中間人攻擊

1.什麼是中間人攻擊? 在手機或者電腦和服務器建立連接的時候,攻擊者通過工具或者技術手段將自己位於兩端之間,獲取數據,進行監聽活動的就是中間人攻擊。 2.有哪幾種攻擊: 1.嗅探,監聽獲取連接數據包。 2.數據包注入,將惡意數據包注入常規

原创 Synchronized 的原理

Synchronized代碼塊是由一對monitorenter(持有monitor對象)/monitorexit(釋放monitor對象)指令實現的,monitor對象是同步的基本實現。而synchronized方法,JVM使用ACC_S

原创 1.爲什麼TCP要經過三次握手,四次揮手?

1.重要標誌位 ACK: TCP協議規定,只有ACK=1時有效,連接建立之後所有報文中ACK必須等於1; SYN:在連接建立時用來同步序號,當SYN=1,ACK=0時,說明這是一個連接請求報文。如果服務器同意連接,那麼返回的響應報文中SY

原创 Https請求慢的解決辦法

1.不要使用DNS解析(域名轉化爲IP),直接訪問IP; 2.解決https連接無法複用的問題: 基於TCP長連接,從移動端建立一條自己的長連接通道。通道的建立是基於TCP協議。基於TCP的socket編程,難度較大且複雜,需要自己定製協

原创 Java中有哪幾種常見的設計模式

Java中一般認爲有23種設計模式,分別是: 1.創建型模式,五種:工廠方法模式,抽象工廠模式,單例模式,建造者模式,原型模式; 2.結構型模式,七種:適配器模式,裝飾器模式,代理模式,外觀模式,橋接模式,組合模式,享元模式。 3.行爲型

原创 安卓權限管理,爲啥在清單裏面註冊權限,就可以使用App,反之不能

1.安卓安全架構的中心設計點是:在默認情況下,任何應用都沒有權限執行對其他應用,操作系統,和用戶產生不利影響的任何操作。這就包括讀取用戶信息,訪問互聯網等。 2.由於每一個安卓應用都是在進程沙盒裏面運行的,因此他們必須顯式共享資源和數據。

原创 Linux進程和線程的區別

進程和線程的主要差別是操作系統不同的系統資源管理方式。進程有獨立的地址空間,一個進程崩潰了,在保護機制下,不會影響到其他進程。但是線程只是進程中不同的執行路徑,而且線程有自己的堆棧和局部變量,但是沒有單獨的地址空間,一個線程崩潰了,進程也

原创 Https有哪些響應碼,分別代表什麼意思?

1**信息:服務器收到請求,請繼續執行操作; 2**成功:服務器成功收到請求,並且在進行處理; 3**重定向:需進一步操作完成請求; 4**客戶端出錯:請求語法出錯或者無法完成請求; 5**服務器出錯:服務器在處理請求的過程中出錯了。