原创 java虛擬機知識整理——虛擬機的內存區域

java能獲得比較廣泛的認可,有一個比較重要的原因就是java具有平臺無關性:它實現了“一次編寫,到處運行”的理想。這個理想能夠實現,和不同的系統有相應配套的java虛擬機(簡稱JVM)的編譯和執行有關。 一般的高級語言如果要在

原创 Java虛擬機知識整理——運行時棧幀結構

運行時棧幀 棧幀是用於支持虛擬機進行方法調用和方法執行的數據結構,它是虛擬機運行時數據區中的虛擬機棧的棧元素。棧幀存儲了方法的局部表量表、操作數棧,動態連接和方法返回地址等信息。每一個方法從調用開始執行完成的過程,都對應着一個棧幀

原创 Java虛擬機知識整理——類加載器

什麼是類加載器 虛擬機設計團隊把類加載階段中“通過一個類的全限定名來描述此類的二進制字節流”這個動作放到Java虛擬機外部去實現,以便讓應用程序自己決定如何去獲取所需要的類,實現這個動作的代碼模塊稱爲“類加載器”。 類加載器可以

原创 設計模式GOF23——單例模式

單例模式(Singleton)是創建者模式的一種,是負責創建對象的模式。 模式解決的問題 該模式的核心是保證一個類只有一個實例,並且提供一個訪問該實例的全局訪問點。 模式的優點 由於單例模式只生成一個單例,減少了系統性能的開銷,當

原创 設計模式GOF23——迭代器模式

迭代器模式(iterator),又稱爲遊標(cursor)模式,是一種行爲性模型,行爲型模式關注的是系統中對象之間的相互交互,解決系統在運行時對象之間的相互通信和協作,進一步明確對象的職責。相比來說,創建型模式關注對象的創建過程,

原创 Java虛擬機知識整理——方法調用

方法調用 方法調用不等同與方法執行,方法調用階段唯一的任務就是確定被調用方法的版本,暫時還不涉及方法內部的具體運行過程。在程序運行時,進項方法調用時最普遍、最頻繁的操作。Class文件的編譯過程中不包含傳統編譯中的連接不走,一切方

原创 設計模式GOF23——代理模式

代理模式(proxy)是結構性模式的一種。結構型模式的核心作用是從程序的結構上實現低耦合,從而可以擴大整體的類結構,用來解決更大的問題。 模式的使用場景 代理模式的核心作用就是通過代理來控制對象的訪問。可以通過詳細控制訪問某個對象

原创 Java虛擬機知識整理——類加載的過程

接下來詳細說明Java虛擬機中類加載的全過程,也就是加載、驗證、準備、解析和初始化這5個階段所執行的具體動作。 加載 加載是類加載過程的一個階段,需要注意分清楚。在加載階段,虛擬機需要完成以下3件事情: 通過一個類的全限定明來獲

原创 設計模式GOF23——開篇

設計模式是什麼 設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式於己於他人於系統

原创 設計模式GOF23——工廠模式

簡單工廠模式(Static Factory Method)是創建者模式的一種,是負責創建對象的模式。 模式的職責 工廠模式是爲了實現創建對象和調用對象分離的需求。 簡單工廠用來生產同一等級結構中的任意產品。(對於新增的產品需要修

原创 Java虛擬機知識整理——內存分配

Java技術體系中鎖提倡的自動內存管理最終可以歸結爲自動化解決了兩個問題:給對象非配內存以及回收分配給對象的內存。回收內存就是垃圾回收機制。下面說一下內存分配。 對象有限在Eden分配 大多數情況下,對象在新生代Eden區中分配。

原创 設計模式GOF23——適配器模式

適配器模式(adapter)是結構性模式的一種。結構型模式的核心作用是從程序的結構上實現低耦合,從而可以擴大整體的類結構,用來解決更大的問題。 模式的使用場景 將一個類的接口換成客戶需要的另外一個接口,Adapter模式使得原本不

原创 設計模式GOF23——抽象工廠模式

抽象工廠模式(Abstract Factory)是創建者模式的一種,是一種負責創建對象的模式。 模式的職責 抽象工廠算是工廠模式的一種,因爲邏輯和實現相對複雜一些,所以在設計模式中不少說明都是分開說明的。 抽象工廠也是爲了實現對

原创 Java虛擬機知識整理——垃圾清理

經過一定的判斷後,虛擬機認定一些對象是垃圾,這也只是判斷而已。需要一個“清潔工”去把已經是垃圾的對象進行回收。回收的方法很多,這裏說的是幾種算法思想。 標記——清除算法 如同算法的名字一樣,算法分爲“標記”和“清除”兩個階段:首先

原创 設計模式GOF23——建造者模式

建造者模式(Builder)是創建者模式的一種,是一種負責創建對象的模式。 模式的場景和本質 在實際開發中,有的時候我們需要創建的對象十分複雜,有時候需要很多步奏來處理。 建造者模式的任務就是分離和對象子組件的單獨構造(由Bui