原创 Java CopyOnWriteArray

package concurrent; import java.util.Arrays; import java.util.concurrent.CopyOnWriteArrayList; import java.util.co

原创 Java HashCode 詳解

1: HashCode 存在主要是爲了配合基於散列的集合一起使用,例如,hashMaP,hashSet,hashTable 等 2: HashCode設計時最重要的原則之一就是同一個對象一定要產生相同的has

原创 設計模式-架構-類庫的區別

下面我打算用一個比方來詮釋我的理解 我類比的例子是蓋房子,我先從設計模式說起。人類從住山洞到現在的住高樓大廈中間的居住形態經歷了無數次的演變,不同的 人用自己的智慧詮釋了對居住環境的理解,並且由於有了文字這些經驗都被記錄下

原创 Java -Dfile.encoding=UTF-8 遭遇亂碼

Java -Dfile.encoding=UTF-8 遭遇亂碼問題的來龍去脈 這兩天寫了一個 Java 程序來玩,結果又遭遇了以前遇到過很多次的亂碼問題,具體描述一下: 在 Mac 系統裏面,常用的 Java 程序啓動方式有

原创 java volatile 詳解

package concurrent; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Lock; impo

原创 學習JDK 源碼的體會

今天學習 jdk 源碼,看到了類 Integer 的實現,有一點比較有感觸 final static int [] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 999999

原创 Java 併發容器

package concurrent; import java.util.Collections; import java.util.Vector; /* * @author: wjf * @version: 2016年3月2

原创 架構設計-網關服務器

對比下面這兩種架構設計的區別。 下面這種使用網關服務器的架構設計的優點在哪呢? 借用知乎王明雨知友的一個比喻: 把服務器想象成飯店,沒有網關服務器的情況,就如同每一個廚師服務一桌顧客,從點菜開始到炒菜到上菜到收銀,有n個

原创 Java 使用軟引用有效避免OOM 問題

package reference; import java.lang.ref.SoftReference; import java.lang.ref.WeakReference; /* * @author: wjf * @v

原创 How to become a google software engineer

You can follow me and fork my rep https://github.com/codlife https://github.com/codlife/google-interview-universi

原创 Spark Broadcast 廣播變量

廣播變量 A broadcast variable. Broadcast variables allow the programmer to keep a read-only variable * cached on each

原创 Java runnable和 thread

具體解釋請看註釋 package concurrent; /* * @author: wjf * @version: 2016年3月27日 下午1:54:41 */ public class TestRunnable {

原创 java concurrent 編程實踐

首先說一下 lock 和 synchronized 的區別: 1:lock 是 java 語言的一個藉口,synchronized 是 java 的關鍵字,是語言特性 2:synchronized 在 發生異常時,可以自動釋放鎖

原创 Java ConcurrentHashMap 詳解

一:概覽 衆所周知,hashmap 才用了按key 分段存儲的方式,然而hashMap 使用synchronized 加鎖的方式,就會鎖住整個map 而轉爲併發設計的concurrentHashMap 卻可以只鎖住key 所在

原创 Java 自動裝箱 拆箱

/* * == 兩端如果存在算數表達式,則判斷值是否相等,否則判斷對象是否相等,-128-127 相等,否則 不相等 * Double 不相等,Boolean 相等 * equ