原创 如何高效的管理參考文獻

Chrome + Kopernio + EndNote 寫作過程中不免要閱讀大量的文獻,尤其是英文的。對於閱讀過的文章,有些選手選擇在瀏覽器裏添加書籤,有些會下載下來在本地建文件夾分門別類的保存。這樣的做法固然可取,但是當你在寫作過程

原创 使用Nginx 反向代理,通過域名直接訪問Tomcat 8080端口

環境爲騰訊雲的CentOS 7.5 64位 ①安裝nginx [root@VM_0_14_centos ~]# yum install nginx -y ②修改配置文件 進入默認配置文件的目錄 [root@VM_0_14_centos

原创 SpringMVC接收Form表單中的數組數據

昨天學校項目裏要做個功能,是要在前端定義一條折線端,然後提交到後臺存進數據庫裏。 折線段的話其實就是不定數量的一些點座標,第一反應就是用Form提交一個Point 的List,後臺也用List接收,然而卻發現SpringMVC 不能直接接

原创 c3.js 提取form表單中的數據顯示圖線

c3.js 的數據源可以爲json,參考https://c3js.org/samples/data_json.html 方法一:根據form中的數據構建json對象 方法二:根據form中的數據拼接json格式字符串,然後 var js

原创 JDK源碼細節——Long與Integer的緩存問題

也是在道友的面經中看到這個問題,然後去查了一下,也自己去看了源碼覈實了一下,看的源碼版本是jdk1.8,以此做個記錄 創建長整型的包裝類Long的實例時,可以是 Long a = 100L;//自動裝箱 Long b = Long.va

原创 如何用多線程實現歸併排序

等我有時間了,一定要把《算法導論》啃完,這本書的印刷質量實在太好了,滑稽。 之前聽吳恩達老大說過Python裏面的Numpy包的矩陣運算就是多線程的,所以能做到的情況下儘量用矩陣運算代替循環,這樣能大大加快運算的速度。 爲了提高速度,如果

原创 爲什麼應該閱讀一下《併發編程實戰》

因爲: 本書作者都是Java Community Process JSR 166專家組(併發工具)的主要成員,並在其他很多JCP專家組裏任職。Brian Goetz有20多年的軟件諮詢行業經驗,並著有至少75篇關於Java開發的文章。

原创 JAVA線程本地存儲(ThreadLocal)

今天看書看到這麼一句話,“防止任務在共享資源上產生衝突的第二種方式是根除對變量的共享。線程本地存儲是一種自動化機制,可以爲使用相同變量的每個不同線程都創建不同的存儲”。(第一種方式就是進行同步控制,比如加鎖嘍) 那麼什麼是線程本地存儲,個

原创 深度優先搜索(DFS)

DFS是相對於BFS的另一箇中圖搜索算法, 其與BFS最大的不同在於它是深度優先, 它會優先順着一條路徑走到底,一旦某個節點鄰接的節點都被發現了,就會回溯到前面一個節點,直到這個點的鄰接節點都被發現,然後再回溯到前面一個節點,如此類推。

原创 Java後端架構師技術圖譜

當初覺得Java比C++寫起來舒服,走了這條路,然後發現除了語言還有一萬個東西要學! https://github.com/xingshaocheng/architect-awesome/blob/master/README.md

原创 Copy-On-Write 機制

“寫時複製”——要寫的時候複製一份副本,往副本里面寫,然後引用到這個副本,在引用到這個副本之前有讀操作的話,讀的還是之前的老版本,讀寫分離,寫不影響讀可以併發讀讀,讀寫,但是寫寫的時候還是衝突的,如果拷貝了N個副本,最後到底引用誰呢,引用

原创 在CentOS6.8上安裝mosquitto搭建MQTT服務

這裏使用的是安裝在VMWare上的CentOS6.8虛擬機,用戶是root ①首先安裝編譯工具和依賴庫 yum install gcc gcc-c++ yum install openssl-devel yum install c-ar

原创 廣度優先搜索(BFS)

BFS是一種圖搜索算法,當然這種思想也可以被借鑑到各種其他的算法中。 對於圖中的所有節點,我們選一個起始點s, 然後去發現(遍歷)所有從s 點出發能直接到達的點, 爲了記住這些點的狀態,用三種顏色來標記這些點, 白色:未發現 灰色:已發現

原创 動態規劃

等我有時間了,一定要把《算法導論》啃完,這本書的印刷質量實在太好了,就是燒腦子,滑稽。 適合應用動態規劃求解的最優化問題應該具備兩個要素: 最優子結構:一個問題的最優解包含其子問題的最優解; 子問題重疊:子問題的空間足夠小,問題的遞歸算法

原创 JAVA內存模型的祕密

提到Java內存模型,相信都會想到一張簡單的圖 堆和棧,棧是線程獨有的,堆是線程共享的。這句話一出來就說明這樣的設計跟併發脫不了關係。 在併發編程中,我們需要處理兩個關鍵問題:線程之間如何通信及線程之間如何同步(這裏的線程是指併發執行的