原创 Java8虛擬機內存模型

1.Java虛擬機運行時數據區 在JDK1.8之前,JVM運行時數據區分爲堆、虛擬機棧、本地方法棧、方法區、程序計數器。如下圖所示: 虛擬機棧:線程私有,隨線程創建而創建。棧裏面是一個一個“棧幀”,每個棧幀對應一次方法調用。棧幀中存放了局部

原创 java類的加載過程

加載 “加載”(Loading)階段是“類加載”(Class Loading)過程的第一個階段,在此階段,虛擬機需要完成以下三件事情: 1、 通過一個類的全限定名來獲取定義此類的二進制字節流。 2、 將這個字節流所代表的靜態存儲結構轉化爲方

原创 JAVA設計模式之觀察者模式

觀察者模式介紹 觀察者模式又被叫做發佈訂閱模式。觀察者模式在Java中非常的常見,比如說Spring中的事件監聽設計就是觀察者模式,再比如說Redis、kafka的發佈訂閱功能就是觀察者模式。 應用場景 觀察者模式在應用上非常廣泛,比如訂閱

原创 Java 中初始化 List 集合的 6 種方式!

List 是 Java 開發中經常會使用的集合,你們知道有哪些方式可以初始化一個 List 嗎?這其中不缺乏一些坑,今天棧長我給大家一一普及一下。 1、常規方式 List<String> languages = new ArrayList<