原创 雙重檢查鎖定與延遲初始化

在java程序中,有時候可能需要推遲一些高開銷的對象初始化操作,並且只有在使用這些對象時才進行初始化。此時程序員可能會採用延遲初始化。但要正確實現線程安全的延遲初始化需要一些技巧,否則很容易出現問題。比如,下面是非線程安全的延遲初始化對

原创 解決.gitignore無法忽略部分文件

解決.gitignore無法忽略部分文件   在使用git時,有時忘了寫.gitignore文件。即先執行了諸多git add,git commit,git push等,然後加上了.gitignore文件。此時會發現.gitignore沒

原创 Compressed Sparse Column format(CSC)

CSR(Compressed Sparse Row format)和CSC(Compressed Spare Column format)都是一種稀疏矩陣的存儲格式。這裏分別給出實例: 假設有如下矩陣: ⎡⎣⎢⎢⎢⎢⎢⎢13600040

原创 Thrift 生成私有的成員變量

Thrift 生成私有的成員變量 1 編譯安裝 ./configure && make ./make install 2 測試是否安裝正確 thrift –help Usage: thrift [options] file Optio

原创 Ubuntu 安裝scipy錯誤解決辦法

在ubuntu 14.04使用pip3 install scipy時報錯: numpy.distutils.system_info.NotFoundError: no lapack/blas resources found 百度了一圈,都

原创 Tachyon--以內存爲核心的開源分佈式存儲系統

原文:http://geek.csdn.net/news/detail/51168 Tachyon是一個以內存爲核心的開源分佈式存儲系統,也是目前發展最迅速的開源大數據項目之一。Tachyon爲不同的大數據計算框架(如Apache S

原创 Java靜態屬性和方法的繼承問題

今天在看《Head First設計模式》的工廠方法時,文中提到簡單工廠方法採用靜態方法的不足:不能通過繼承來改變創建方法的行爲。平時沒有注意到這一點,查了些資料和做了些實驗,特此記錄下來。 Parent.java類 public clas

原创 理解PCA和SVD

這篇文章推導的很好,由於複製過來太難看,所以這裏記錄個網址。 http://www.fuzihao.org/blog/2015/12/04/%E7%90%86%E8%A7%A3PCA%E5%92%8CSVD/

原创 Scala繼承與Java的區別

在之前的筆記Java靜態屬性和方法的繼承問題中,通過具體的實驗證明,在子類中重寫父類的字段時並沒有覆蓋父類的字段,只是隱藏了父類的字段。而在scala中則不同,scala子類的同名字段會重寫且覆蓋父類的同名字段,這裏做了個簡單實驗,並記錄

原创 Spark RPC閱讀筆記(初稿)

閱讀代碼的版本爲2.0.0-SNAPSHOT。在最新的Spark源碼中,RPC統一採用了Netty作爲傳輸框架。主要由RpcEnv,RpcEndpoint和RpcEndpointRef組成,他們之間的關係圖如下: RpcEnv必須由R

原创 共享內存

共享內存     共享內存是被多個進程共享的一部分物理內存。共享內存是進程間共享數據的一種最快的方法,一個進程向共享內存區域寫入了數據,共享這個內存區域的所有進程就可以立刻看到其中的內容。原理圖如下: 共享內存的實現分爲兩個步驟

原创 HashMap的containskey源碼分析

HashMap作爲util包中比較常用的一個數據結構,充分理解內部代碼的邏輯是有很必要的,這裏做一個對HashMap 的containsKey函數的源碼分析筆記。 containsKey的代碼如下: /** * Returns