原创 httpclient模擬登陸,不支持https的問題

最近在寫一個小項目,需要去51job和智聯上抓取個人簡歷,所以就需要模擬登錄。。真真是折騰了一番啊,不過對於http倒是多了一點了解。不多說,先copy代碼,還要接着去寫呢。 import java.security.cert.X509C

原创 epoll poll select區別

select : 1.每次調用 select(),都需要把 fd 集合從用戶態拷貝到內核態,這個開銷在 fd 很多時會很大,同時每次調用 select() 都需要在內核遍歷傳遞進來的所有 fd,這個開銷在 fd 很多時也很大。 2.單個進

原创 TCP粘包和常用解決方案

0、現象 1、產生的原因 根因:無消息保護邊界。面向流的。 具體原因: 1、nagle算法 爲了提高發送效率 2、mtu限制 數據鏈路層限制,導致發送端拆包 3、recvbuf 接收端緩衝區。或者進程處理不及時會導致粘包 2、解

原创 Lock和synchronized的選擇

總結來說,Lock和synchronized有以下幾點不同:   1)Lock是一個接口,而synchronized是Java中的關鍵字,synchronized是內置的語言實現;   2)synchronized在發生異常時,會自

原创 如何停止JAVA線程

1. 使用退出標誌終止線程     當run方法執行完後,線程就會退出。但有時run方法是永遠不會結束的。如在服務端程序中使用線程進行監聽客戶端請求,或是其他的需要循環處理的任務。在這種情況下,一般是將這些任務放在一個循環中,如while

原创 進程通信方式

# 管道( pipe ):管道是一種半雙工的通信方式,數據只能單向流動,而且只能在具有親緣關係的進程間使用。進程的親緣關係通常是指父子進程關係。# 有名管道 (named pipe) : 有名管道也是半雙工的通信方式,但是它允許無親緣關係

原创 多線程vs多進程

多線程的最主要優點是:共享數據方便(都在一個地址空間,不需要IPC);可移植性好。    多進程的最主要優點是:可靠性較高(進程間彼此隔絕,一個進程被OOXX不會影響其他進程);能夠在外部監控(因爲進程是操作系統分配資源的對象)。    

原创 java爲什麼使用nio

Java中普通的I/O功能  一般體現在 1.文件讀寫、2.網絡傳輸、3.字節流輸入/輸出  應用場景。而Java中的 NIO 提高了原有I/O的性能。 Java的NIO包含以下特性:   1.內存映射到文件   2.文件鎖定   3

原创 悲觀鎖和樂觀鎖

悲觀鎖(Pessimistic Lock), 顧名思義,就是很悲觀,每次去拿數據的時候都認爲別人會修改,所以每次在拿數據的時候都會上鎖,這樣別人想拿這個數據就會block直到它拿到鎖。傳統的關係型數據庫裏邊就用到了很多這種鎖機制,比如行鎖

原创 java異常處理機制

Thorwable類是所有異常和錯誤的超類,有兩個子類Error和Exception,分別表示錯誤和異常。其中異常類Exception又分爲 運行時異常RuntimeException)和非運行時異常,這兩種異常有很大的區別,也稱之爲不檢

原创 樂觀鎖與CAS操作

AtomicInteger來研究在沒有鎖的情況下是如何做到數據正確性的? 這裏舉例說明一個方法:getAndIncrement public final int getAndIncrement() {         for (;;) {

原创 關於java線程的interrupt方法的使用總結

首先要說明的就是Lock,通過查看Lock的源碼可知,Lock是一個接口: 1 2 3 4 5 6 7 8 public interface Lock {     void lock();     

原创 HashMap存儲機制及擴容

首先要說的是hashmap的底層數據結構是數組+鏈表的結構。hashmap中有一個entry內部類,內部類有幾個屬性:key,value,hash,next。 hashmap中的數組其實也就是entry數組。 hashmap的初始容量是

原创 Collections分析之SynchronizedList

Collections中有SynchronizedList方法 @ThreadSafe   class GoodListHelper <E> {       public List<E> list = Collections

原创 where 條件加鎖分析

  本文前提 where提取 Index key Index Filter Table Filter 有什麼用? 參考文章   本文前提 基於InnoDB存儲引擎 當前讀     where提取 提取爲三部分:Index Key, In