原创 Spring Cloud Zuul 在版本Edgware.RELEASE斷路超時配置無法生效問題

搭建Zuul工程時,用的SpringCloud版本爲Edgware.RELEASE(沒上更高的版本,因爲部署環境tomcat和jdk的限制,更高的怕不兼容)。在改網關斷路器的超時時間時,試了各種姿勢,從zuul本身到ribbon到hyst

原创 (轉載一篇對JDK動態代理原理說的很透徹的文章)細說JDK動態代理的實現原理

轉載一篇解釋JDK動態代理實現原理很清楚的文章。原文地址http://blog.csdn.net/mhmyqn/article/details/48474815。 看到很多博文講JDK動態代理時,只是抓着JDK提供的Proxy類(創建

原创 堆排序的Java實現(用最大堆實現從小到大排序)

堆排序原理和示意圖不多說了,網上各種有。總結下其最核心的思想: (1)自底向上,自右向左遍歷建堆。這裏的底不是指最後一個節點,而是最後一個非葉子節點。每個非葉子節點與其左兒子與右兒子(假如有的話)相比,如果父節點小,那麼將左右兒子中較大的

原创 一篇對僞共享、緩存行填充和CPU緩存講的很透徹的文章

轉載至http://geek.csdn.net/news/detail/114619 看了很多網上講解java僞共享、緩存行填充和CPU緩存的MESI等等,零零碎碎,目前感覺就這篇文章講的最清楚,忍不住轉載下。 原文如下:

原创 避坑必看:很詳盡的MyBatis返回自增主鍵實驗(包括插入或更新SQL語句insert on duplicate key update的自增主鍵返回情況)

目錄 1. 實驗對比維度 (1)單純的insert和insert on duplicate key update (2)selectKey和useGeneratedKeys (3)@Param和parameterType (4)單個和批量

原创 mysql5.7在windows7下my.ini文件加載路徑及數據位置修改

更新:現在上MySQL官網裝個mysql installer統一對mysql軟件管理配置,遷移數據也很方面。進mysql installer裏面對mysql server進行reconfigure,就有數據庫存儲位置的改變。比下面老式的手

原创 (實驗)Java一個線程用synchronized嵌套鎖多個對象時調用wait()只釋放wait函數關聯的所對象還是釋放所有鎖對象

實驗是在JDK1.8下做的。 題目起的比較拗口,其實用代碼說明起來更簡單,如下所示: public class MultiSynchronizedTest { private static Object lock1 = ne

原创 Spring Cloud下配置eureka.instance.instance-id使得服務實例在eureka界面增加顯示版本號

     SpringCloud體系裏的,服務實體向eureka註冊時,註冊名默認是“IP名:應用名:應用端口名”,即${spring.cloud.client.ipAddress}:${spring.application.name}:

原创 Sunday算法的一種Java實現(Leetcode28. Implement strStr())

Leetcode第28題Implement strStr()。即尋找目標字符串中模式字符串第一次出現的位置。 這類字符串匹配查找的問題,無外乎KMP,BM,Sunday算法。KMP太燒腦,BM和Sunday算法本質上是一樣的,但是Sun

原创 採用Java阻塞IO對已經到達的socket流實現非阻塞完整讀取(一個簡單的java http server實現)

最近寫服務器時想到一個問題:用Java Bio(即Socket)寫服務器,怎麼一次性完整讀取已經到達的Socket流。 對這個需求有很多角度的設定,也有很多解法。我們來一一具化這個需求: (1) 解法:依賴http協議的conten

原创 MySQL left join on 左表連接字段爲null的返回結果

寫個博客備忘用... MySQL 左連接(右連接類似)查詢,例 select * from A left join B on A.id = B.id where... A表是會返回所有符合where條件的記錄,B表不滿足A.id=B.i

原创 線上環境JVM問題排查常用指令

線上和測試環境的JVM一般運行在linux服務器上,沒有界面,遇到問題時需要用指令工具進行排查。這方面的學問博大精深,而且實戰重於理論,這篇文章僅僅當作日常問題排查的筆記,方便自己查閱,各方面的細節網上有很多文章進行過深入探討。 1. T

原创 一種基數排序的Java實現

基數排序,原理不多說了,網上各種有,適用於輸入數據量n遠大於數據最高位數m的情況。 給出一種簡單實現,不太想寫特別底層的邏輯,中間依賴下TreeMap。 package com.jxshen.example.algorithm.sor

原创 用Intellij+Maven搭建Tomcat源碼開發環境步驟

編程的實踐性非常強,光看不練事倍功半,就像設計模式,除了看各種書籍記下23種設計模式,還需要在實際工作中非常“刻意”的去運用,纔會加深理解,否則根本不知道爲何要誕生某一種設計模式。 對於成熟的開源框架、容器的學習,除了看源碼之外,在實踐

原创 如何在MySQL的存儲過程中書寫批量的用戶權限/授權語句

網上單獨關於MySQL用戶權限或者存儲過程的文章有不少,但是關於在存儲過程中如何書寫用戶授權語句,尤其是批量授權的資料卻很少。 爲什麼筆者會遇到在存儲過程中書寫批量用戶授權語句的需求,是因爲筆者在日常開發中承擔了一部分簡單的運維職責(筆者