原创 ConcurrentHashMap實現原理

  ConcurrentHashMap是Java併發包中提供的一個線程安全且高效的HashMap實現(若對HashMap的實現原理還不甚瞭解,可參考我的另一篇文章HashMap實現原理及源碼分析),ConcurrentHashMap在併發

原创 get/post 冪等性

理解HTTP冪等性 基於HTTP協議的Web API是時下最爲流行的一種分佈式服務提供方式。無論是在大型互聯網應用還是企業級架構中,我們都見到了越來越多的SOA或RESTful的Web API。爲什麼Web API如此流行呢?我

原创 TCP流量控制和擁塞控制

流量控制 - Flow Control 擁塞控制 - Congestion Control 1 慢啓動 - Slow Start 和 擁塞避免 - Congestion Avoidance 2 快重傳 - Fast Retra

原创 內部類筆記

這是我學習Java內部類的筆記1.爲什麼使用內部類?使用內部類最吸引人的原因是:每個內部類都能獨立地繼承一個(接口的)實現,所以無論外圍類是否已經繼承了某個(接口的)實現,對於內部類都沒有影響1.1.使用內部類最大的優點就在於它能夠非常好

原创 MySQL隔離級別和封鎖協議

    一直以來對數據庫的事務隔離機制的理解總是停留在表面,其內容也是看一遍忘一邊。這兩天決定從原理上理解它,整理成自己的知識。查閱資料的過程中發現好多零碎的概念如果串起來足夠寫一本書,所以在這裏給自己梳理一個脈絡,具體的內容參考引文

原创 Protobuf3教程

定義一個消息類型 指定字段類型 分配標識號 指定字段規則 添加更多消息類型 添加註釋 保留標識符(Reserved) 從.proto文件生成了什麼? 標量數值類型 默認值 枚舉 使用其他消息類型 導入定義 使用proto2消息類

原创 Linux下使用g++編譯C++

單個源文件生成可執行程序 下面是一個保存在文件 helloworld.cpp 中一個簡單的 C++ 程序的代碼: /* helloworld.cpp */ #include <iostream> int main(int argc

原创 Linux kill進程

  long long ago,曾有一個想法,就是完全脫離windows,使用linux生活、工作。以前迫於各種專業工具不支持linux,只能無奈的使用xp。最近工作內 容是android移植+單片機開發,android就不說了,必須

原创 SSH服務的安裝、啓動和卸載

1.查看ssh服務的狀態 輸入以下命令: sudo service sshd status 如果出現 Loaded: error (Reason: No such file or directory) 提示的話,說名沒有安

原创 網段劃分和IP地址範圍

將192.8.8.0~~~192.8.8.256 分爲儘可能 IP 數量 接近的4個網段,這四個網段的子網掩碼地址是多少,每一個子網可分配給主機的IP地址範圍是多少?1.C類地址192.168.8.0,默認情況下的子網掩碼是255.255

原创 SVN教程

1、Svn介紹 SVN全名Subversion,即版本控制系統。SVN與CVS一樣,是一個跨平臺的軟件,支持大多數常見的操作系統。作爲一個開源的版本控制系統,Subversion管理着隨時間改變的數據。這些數據放置在一箇中央資料檔案庫

原创 MySQL索引詳解

什麼是索引?1、索引索引是表的目錄,在查找內容之前可以先在目錄中查找索引位置,以此快速定位查詢數據。對於索引,會保存在額外的文件中。2、索引,是數據庫中專門用於幫助用戶快速查詢數據的一種數據結構。類似於字典中的目錄,查找字典內容

原创 InnoDB和MyISAM區別

區別:1. InnoDB支持事務,MyISAM不支持,對於InnoDB每一條SQL語言都默認封裝成事務,自動提交,這樣會影響速度,所以最好把多條SQL語言放在begin和commit之間,組成一個事務; 2. InnoDB支持外鍵,而M

原创 Python時間格式化

對於時間數據,如2016-05-05 20:28:54,有時需要與時間戳進行相互的運算,此時就需要對兩種形式進行轉換,在Python中,轉換時需要用到time模塊,具體的操作有如下的幾種: 將時間轉換爲時間戳 重新格式化時間 時間戳

原创 併發內存模型和volatile

       在多線程環境中,我們需要考慮的主要問題是:線程之間如何進行通信,在命令式編程中,線程之間的通信機制有兩種:共享內存和消息傳遞。在共享內存的併發模型裏,線程之間共享程序的公共狀態,線程之間通過寫-讀內存中的公共狀態來隱