原创 Spring boot webSocket從入門到放棄

在構建Spring boot項目時已經提供webSocket依賴的勾選。webSocket是TCP之上的一個非常薄的輕量級層 ,webSocket主要的應用場景離不開即時通訊與消息推送,但只要應用程序需要在瀏覽器和服務器之間來回發送消息,就

原创 基於註解處理器開發自動生成getter和setter方法的插件

昨天無意中,逛到了lombok的網站,並看到了首頁的5分鐘視頻,視頻中的作者只是在實體類中寫了幾個字段,就可以自動編譯爲含setter、getter、toString()等方法的class文件。看着挺新奇的,於是自己研究了一下原理,整理下發

原创 [原創]一款適用於Java應用的性能監控系統(WY)

Java應用監控系統(WY)1.應用簡介WY(Java應用監控系統)是一款基於JDK8製作,適用於Java應用,具有堆內存監控、方法區監控、GC監控、類加載監控、類編譯監控與線程監控功能的在線監控系統。2.環境說明基於Java8開發,低於J

原创 史上最全面的Docker構建工具使用教程

Docker 是一個開源的應用容器引擎,基於 Go 語言] 並遵從Apache2.0協議開源。Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。Doc

原创 Gradle構建工具簡明教程(IDEA篇)

1.Gradle安裝官網下載壓縮包,然後解壓,配置本地環境變量。主要有下面兩個:GRADLE_HOME 是解壓後的目錄,GRADLE_USER_HOME 的作用是讓其他程序檢測到本地.gradle文件夾的位置,再把 %GRADLE_HOME

原创 深入理解Java虛擬機(類文件結構+類加載機制+字節碼執行引擎)

周志明的《深入理解Java虛擬機》很好很強大,閱讀起來頗有點費勁,尤其是當你跟隨作者的思路一直探究下去,開始會讓你弄不清方向,難免有些你說的啥子的感覺。但知識不得不學,於是天天看,反覆看,就慢慢的理解了。我其實不想說這種硬磨的方法有多好,我

原创 Eclipse MAT內存分析工具(Memory Analyzer Tool)

MAT內存分析工具MAT是Memory Analyzer的簡稱,它是一款功能強大的Java堆內存分析器。可以用於查找內存泄露以及查看內存消耗情況。MAT是基於Eclipse開發的,是一款免費的性能分析工具。讀者可以在http://www.e

原创 Java虛擬機性能監測工具Visual VM與OQL對象查詢語言

1.Visual VM多合一工具Visual VM是一個功能強大的多合一故障診斷和性能監控的可視化工具,它集成了多種性能統計工具的功能,使用 Visual VM 可以代替jstat、jmap、jhat、jstack甚至是JConsole。在

原创 JVM虛擬機性能監控與調優(JDK命令行、JConsole)

很多資料在介紹JDK命令行工具時並不是在Java8環境下,因此還在使用過時的永久區系列的參數,給一些讀者造成困難。Java8使用Metaspace(元空間)代替永久區,對於64位平臺,爲了壓縮JVM對象中的_klass指針的大小,引入了類指

原创 Java性能調優工具(Linux、Windows篇)

1.Linux命令行工具推薦:CentOS 71.1 top命令top命令的輸出如下:top命令的輸出可以分爲兩部分:前半部分是系統統計信息,後半部分是進程信息。在統計信息中,第1行是任務隊列信息,它的結果等同於 uptime 命令。從左到

原创 [轉載]一篇相當全面的Java NIO教程

零、NIO包爲什麼轉載?因爲寫的太好了~轉載到我的博客,沒事打開看看打發打發時間,哈哈~NIO類包含在一個叫作java.nio包的包中。要了解NIO子系統不會取代java.io包中可用的基於流的I/O類,如果有對java.io基於流的I/O

原创 深入理解JAVA虛擬機之JVM調優長篇

1.Java虛擬機內存模型JVM虛擬機將內存數據分爲程序計數器、虛擬機棧、本地方法棧、Java堆和方法區等部分。程序計數器用於存放下一條運行的指令;虛擬機棧和本地方法棧用於存放函數調用堆棧信息;Java堆用於存放Java程序運行時所需的對象

原创 一文看透Java8新特性:lambda表達式和Stream API

Java11前兩天都發布了,Java8還沒搞清都有啥,這就很尷尬了~ Java8 的新特性:Lambda表達式、強大的 Stream API、全新時間日期 API、ConcurrentHashMap、MetaSpace。總得來說,Jav

原创 Java多線程核心技術(六)線程組與線程異常

本文應注重掌握如下知識點:線程組的使用如何切換線程狀態SimpleDataFormat 類與多線程的解決辦法如何處理線程的異常1.線程的狀態線程對象在不同運行時期有不同的狀態,狀態信息就處於State枚舉類中,如圖所示:線程狀態初始(NEW

原创 Java多線程編程核心技術(三)多線程通信

線程是操作系統中獨立的個體,但這些個體如果不經過特殊的處理就不能成爲一個整體。線程間的通信就是成爲整體的必用方案之一,可以說,使線程間進行通信後,系統之間的交互性會更強大,在大大提高CPU利用率的同時還會使程序員對各線程任務在處理的過程中