原创 java/c++跨語言base64加密解密

一定要用java原生的java.util.Base64,才能保證在c++可以正確decode! 比如: 在java用這個encode:java.util.Base64.getEncoder().encodeToString(testBy

原创 scala/java/c++使用murmur3計算hash值保持跨語言之間一致

目標:在java/scala中對word計算出無符號數字(uint64)的hash值,與c++中計算的hash值一樣   方案: 因爲java沒有uint64,而c++的murmur3是用的uint64,所以java這邊直接asLong會

原创 分佈式緩存hazelcast的一些原理分析

1.下面以一個客戶端創建和發請求的過程來分解描述。 public static void main(String[] args) { ClientConfig clientConfig = new ClientConfig();

原创 大多數垃圾收集器的名稱列表

1.serial單線程,新生代用複製算法,老年代使用標記整理算法。2.parallel是serial的多線程版本。3.cms是新生代複製,老年代用標記清除,清除後還不夠用才啓動整理。4.g1則繼承了cms的低停頓的好處的前提下,儘量規避它

原创 tcp協議相關問題答疑

1.爲什麼四次揮手而不是三次揮手?爲何不能像握手時候一樣server把ack和fin(syn)用同一步發過去?答:原因是揮手第二步(server給client發ack)之時,server這邊可能還有數據沒有對外傳輸完。所以等傳輸完了再進行

原创 排序算法

謝謝真實的歸宿http://blog.csdn.net/hguisu/article/details/7776068 雖然以下代碼是抄他的,但是我改成了java版本的,跟他並不一樣。並且我有修復它裏面一些bug。 插入排序(直接插入排序V

原创 JAVA線程安全相關數據結構使用建議

什麼是線程安全的數據結構?       簡單的說就是不同線程可以訪問同一份數據時,它們對這份數據的訪問是無序的隨機的,是你不可控的。比如說你的房間誰都可以進來,但是你不確定他們誰先來誰後來或者可能同時來。你想讓整件事更有秩序在你的掌控之中

原创 安裝openresty失敗的解決

官網上的安裝步驟如下: tar -xzvf openresty-VERSION.tar.gz cd openresty-VERSION/ ./configure make sudo make install 但是我進行到configure

原创 HashMap源碼分析

通俗解析 hashMap的put方法 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) {

原创 同步、異步、阻塞、非阻塞

老張在燒一壺水。 1.老張把水壺放到爐子上之後,打開火,然後一直坐在旁邊盯着水壺,直到水開。這叫同步、阻塞。 2.老張突然發現一直盯着很浪費時間,於是他就到隔壁房間去看電視,隔一會兒過來看一眼。這叫同步,

原创 使用awk對某列去重並且可保留其他列

同事說需要統計日誌中按url的path去重之後的結果,結果中要保留參數。相同url不同參數的,只保留第一行。 理論上各種命令都是流式處理,一行一行的處理。每道命令都相當於一個過濾器。比如你要按某列去重,則事先把數據cut到只剩你需要去

原创 java實現大數減法算法

public static char[] subTract(int[] a,int[] b){ int cLength = b.length; char sign = '+'; // 長度大,肯定正數 if

原创 virtualbox剪貼板失效問題的解決

1.確認一下,虛擬機設置裏面的【常規】-【高級】-【共享粘貼板】選擇的是【雙向】,如果不是要改過來。 2.打開任務管理器, 殺掉 VBoxTray.exe 3.執行C:\WINDOWS\system32\VBoxTray.exe 現在你就

原创 springMVC源碼分析 從DispatcherServlet說起

1.SpringMVC的Controller能夠接受請求,是因爲使用了DispatcherServlet作爲所有請求的入口,事先要把這個Servlet配置到web.xml,並且把想走SpringMVC的請求的url(用通配符方式比如*.

原创 定長隊列,新元素會把舊元素擠掉

/** * 定長隊列,新元素會把舊元素擠掉 * Created by wanghongji on 17-11-24. */ public class CircleArrayBlockingQueue<E> extends Array