原创 深入淺出RocketMQ

基本架構     RocketMQ由name server,broker,producer,consumer四個組件構成,每個組件都沒有單點問題,整體架構圖如下:   每個組件的用途如下:     name server:提供輕量級服務

原创 深入理解G1

        G1是JVM歷史上具有里程碑意義的收集器,開創了垃圾收集可控暫停時間的停頓時間模型。從G1開始,垃圾收集器不再追求一次將整個堆清理乾淨,而是追求可控的STW時間,以及在STW時間內儘可能高的內存回收速率。早期闡述Java的

原创 深入理解RabbitMQ

目錄 一、RabbitMQ的基本概念 二、RabbitMQ集羣 一、RabbitMQ的基本概念     RabbitMQ是一款功能豐富的傳統消息隊列,代表性的功能包括:消息持久化、消息確認、死信隊列、消息消費端限流,豐富的功能特性是選擇R

原创 了不起的ZGC

        ZGC是隨着Java11發佈的新一代垃圾收集器,它基於Page(和G1的Region等價,官方資料稱爲Page)內存佈局,以低延遲爲設計目標,我們先看一下官方的測試成績:         ZGC的設計思路很接近Azul的

原创 深入淺出RabbitMQ

目錄 一、RabbitMQ的基本概念 二、RabbitMQ集羣 一、RabbitMQ的基本概念     RabbitMQ是一款功能豐富的傳統消息隊列,代表性的功能包括:消息持久化、消息確認、死信隊列、消息消費端限流,豐富的功能特性是選擇R

原创 Arrays.asList返回的List與new ArrayList的區別

        前幾天寫代碼的時候用到將Set轉換爲List然後繼續進行操作,向裏面添加元素的時候報錯了,代碼邏輯類似下面: import java.util.Arrays; import java.util.HashSet; impo

原创 深入分析Java對象的建構順序

文章轉載自:這裏,版權歸博主youngto所有   對於下面的代碼,許多有經驗的程序員都沒能給出正確的答案。如果你能只看代碼給出的答案和文章末尾出給出大答案一致,那麼你已經掌握了Java對象的建構順序,中間的分析可以不用看了。 /**

原创 2012年總結

        2012年結束了,這一年幾乎是我這麼多年來最輕鬆的一年,很少的任務與事故,幾乎沒有加班。說心裏話,我不喜歡這種輕鬆,這種輕鬆給人不安全感。公司所處的行業處於冰凍期,公司在此期間沒有裁員,各部門間卻忙於爭吵,整個網站幾乎沒有

原创 求超越,計算小於等於N的素數個數

        最近兩天和羣裏的朋友討論計算小於等於N的素數的個數。最直接的算法就是對於每一個數i,計算i除以從2到i的平方根,任意一個能除盡都說明i不是素數。但這種算法效率很低,還有很大的改進空間,也有不同方式改進。         

原创 頻道struts2遠程執行漏洞

    struts2遠程執行漏洞,是個有相當久遠歷史的風險,其危害程度相當之大。網站的其他頻道在去年4月份之後web層全部改爲了spring mvc,只有我負責的這個頻道,由於事情繁多,一直沒改。在漏洞爆出之初,由於要構造的攻擊條件比較

原创 JSR133:線程規範翻譯

Java虛擬機支持多條線程同時執行。多線程在Java中通過Thread類表現。對用戶來說創建線程的唯一方式就是構造一個Thread類的對象;每個Java線程都和此類有關。通過調用Thread對象的start()方法來啓動線程。 當線程沒

原创 2012計劃

2012年已經開始一個月了,現在才做計劃,希望不算晚吧!更重要的是能夠落實,呵呵!! 根據老大的安排,2012年應該做的主要是兩件事:1、是網站的深度完善;2、是基於C/S體系的客戶端軟件。基於此,今年的學習目標有三大塊:一、java

原创 基礎正則表達式

正則表達式元字符含義,下列的這些僅用於複習或瞭解,正則表達式需要多練習才能精熟,:-). :就是點“.”,用於匹配任意一個單個的字符;\ :"\",用於對緊接於後它的字符進行轉義;[和]:表示一個字

原创 2011總結

2011年,我從5年左右企業開發全面轉入互聯網開發,這一年讓我大開眼界,甚至可以說是我這麼多年以來進步最大的一年。從知識面上來說,以前思考問題的切入點只有代碼,代碼之外的問題就不知道怎麼下手了,這一年對操作系統、web服務器、HTTP協

原创 需要學習或者加強的技術方向

工作幾年以來,尤其是轉入互聯網方向後,感覺需要學習的技術方向越來越多,自己薄弱的技術也越來越多,列一個學習列表,已完成的轉入已完成列表。待學習的:1、一門腳本語言python,shell(都包含正則表達式)