摘要: 探索HTTP/2系列的第四篇文章,解讀了HTTP/2流的狀態,以及狀態之間的轉化。(2016.10.09最后更新) 閱讀全文
原創
摘要: 在本系列的第一篇文章中已經介紹了HTTP 2協議,本文則將簡述用于HTTP/2頭部壓縮的HPACK協議。(2016.10.01最后更新) 閱讀全文
摘要: 目前支持HTTP/2的服務器端與客戶端實現已有不少,本文分別以Jetty和curl作為服務器端和客戶端,描述了HTTP/2測試環境的搭建過程。本文還將使用這個測試環境去展示Jetty在實現HTTP/2時的一個局限和一個Bug。(2016.09.22最后更新) 閱讀全文
摘要: HTTP/2的協議包含著兩個RFC:Hypertext Transfer Protocol Version 2 (RFC7540),即HTTP/2;HPACK: Header Compression for HTTP/2 (RFC7541),即HPACK。RFC7540描述了HTTP/2的語義,RFC7541則描述了用于HTTP/2的頭部壓縮的格式。本文只涉及HTTP/2協議,本系列的后續文章將會涉及HPACK協議。(2016.10.13最后更新) 閱讀全文
摘要: 本文是Play OpenJDK的第二篇,介紹了如何突破JDK不允許自定義的包名以"java."開頭這一限制。這一技巧對于基于已有的JDK向java.*中添加新類還是有所幫助的。(2015.11.02最后更新) 閱讀全文
摘要: 計劃使Play OpenJDK成為一組介紹如何使用并參與OpenJDK項目的系列文章。本文是該系列的第一篇文章,它基于OpenJDK 8的源代碼介紹了構建一個屬于自己的JDK方法。(2015.10.30最后更新) 閱讀全文
摘要: 本文是Java并發基礎實踐系列中的一篇,介紹了最簡單的死鎖場景,并使用jstack產生的thread dump來查找死鎖。(2013.12.29最后更新) 閱讀全文
摘要: 本系列的第三篇文章將以實現一個極簡單的查找最大數的任務為例,分別給出了四個版本:1.順序執行;2.基于傳統的Thread.join();3.基于并發工具包的Future;4.基于JDK 7引入的Fork/Join框架。(2013.10.25最后更新) 閱讀全文
摘要: 在本系列的上一篇中講述了三種退出并發任務的方式,但都是基于JDK 5之前的API。本篇將介紹使用由JDK 5引入的java.concurrent包中的API來退出任務。(2013.10.08最后更新) 閱讀全文
摘要: 計劃寫一個"Java并發基礎實踐"系列,算作本人對Java并發學習與實踐的簡單總結。本文是該系列的第一篇,介紹了退出并發任務的最簡單方法。(2013.09.25最后更新) 閱讀全文
摘要: Oracle OpenWorld 2013(上海)已經結束,我全程參與了此次技術大會。本文是我參會的所見、所聞、所思與所感,有文,有圖,且無碼。(2013.08.03最后更新) 閱讀全文
摘要: 最近有點兒閑,看了一些文章,有了一些感觸,寫成一篇小文。軟件世界真的變化很大,沒有永恒的終結者。今天的終結者,明天可能就會被別人終結。道理大家都懂,但現實依然很殘酷。(2013.07.29最后更新) 閱讀全文
摘要: 關于Java序列化的文章早已是汗牛充棟了,本文是對我個人過往學習,理解及應用Java序列化的一個總結。此文內容涉及Java序列化的基本原理,以及多種方法對序列化形式進行定制。在撰寫本文時,既參考了Thinking in Java, Effective Java,JavaWorld,developerWorks中的相關文章和其它網絡資料,也加入了自己的實踐經驗與理解,文、碼并茂,希望對大家有所幫助。(2012.02.14最后更新) 閱讀全文
摘要: 本文是"探索JUnit4擴展"系列中的第三篇,將進一步探究Rule的應用,展示如何使用Rule來替代@BeforeClass,@AfterClass,@Before和@After的功能。(2012.01.04最后更新) 閱讀全文
摘要: 在上一篇文章《探索JUnit4擴展:擴展Runner》中,討論了一種擴展JUnit4的方式,即,直接修改Test Runner的實現(BlockJUnit4ClassRunner)。但這種方法顯然不便于靈活地添加或刪除擴展功能。本文將使用JUnit4.7才開始引入的擴展方式--Rule來實現相同的擴展功能。(2010.12.25最后更新) 閱讀全文