《深入理解java虛擬機器》-目錄結構

來源:互聯網
上載者:User

第一部分 走進Java 第1章 走進Java 第二部分 自動記憶體管理機制 第2章 Java記憶體地區與記憶體溢出異常 2.1 概述 2.2 運行時資料區域 2.2.1 程式計數器 2.2.2 java虛擬機器棧 2.2.3 本地方法棧 2.2.4 Java堆 2.2.5 方法區 2.2.6 運行時常量池 2.2.7 直接記憶體 2.3 HotSpot虛擬機器對象探秘 2.3.1 對象的建立 2.3.2 對象的記憶體布局 2.3.3 對象的訪問定位 2.4 實戰:OutOfMemoryError異常 2.4.1 Java堆溢出 2.4.2 虛擬機器棧和本地方法棧溢出 2.4.3 方法區和運行時常量池溢出 2.4.4 本機直接記憶體溢出 2.5 本章小結 第3章 垃圾收集器與記憶體配置策略 第4章 虛擬機器效能監控與故障處理工具 第5章 調優案例分析與實戰 第三部分 虛擬機器執行子系統 第6章 類檔案結構 第7章 虛擬機器類載入機制 第8章 虛擬機器位元組碼執行引擎 第9章 類載入及執行子系統的案例與實戰 第四部分 程式編譯與代碼最佳化 第10章 早起(編譯期)最佳化 第11章 晚期(運行期)最佳化 第五部分 高效並發 第12章 Java記憶體模型與線程 第13章 安全執行緒與鎖最佳化

我們可以吧Java程式設計語言、Java虛擬機器、Java API類庫這三個部分統稱為JDK(Java Development Kit),JDK是用於支援Java程式開發的最小環境。另外,可以把Java API類庫中的JavaSE API子集和Java虛擬機器這兩部分統稱為JRE(Java Runtime Environment),JRE是支援Java程式啟動並執行標準環境。

類的方法存在哪裡。

類載入時,方法資訊儲存在一塊稱為方法區的記憶體中, 並不隨你建立對象而隨對象儲存於堆中。可參考《深入java虛擬機器》前幾章。
如果instance method也隨著instance增加而增加的話,那記憶體消耗也太大了,為了做到共用一小段記憶體,Java 是根據this關鍵字做到的,比如:instance1.instanceMethod(); instance2.instanceMethod(); 在傳遞給對象參數的時候,Java 編譯器自動先加上了一個this參數,它表示傳遞的是這個對象引用,雖然他們兩個對象共用一個方法,但是他們的方法中所產生的資料是私人的,這是因為參數被傳進來變成call stack內的entry,而各個對象都有不同call stack,所以不會混淆。其實調用每個非static方法時,Java 編譯器都會自動的先加上當前調用此方法對象的參數,有時候在一個方法調用另一個方法,這時可以不用在前面加上this的,因為要傳遞的對象參數就是當前執行這個方法的對象。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.