Java虛擬機器基礎一
1. Java虛擬機器
何為Java虛擬機器,可能代表三種不同的含義。具體環境具體分析。
- 抽象的規範
- 具體的實現
- 執行中的虛擬機器例項
2. Java虛擬機器內部體系結構(通常的結構),由於Java虛擬機器規範對於執行時資料區只有十分抽象的描述,所以在不同的虛擬機器實現中,資料結構可能存在一定的差異。
3、執行緒專有執行時資料區
PC暫存器:執行非本地方法時,存放下一條執行的命令。
Java棧:Java執行方法呼叫的狀態。(區域性變數、入參、返回值等)
相關推薦
Java虛擬機器基礎一
1. Java虛擬機器 何為Java虛擬機器,可能代表三種不同的含義。具體環境具體分析。 抽象的規範 具體的實現 執行中的虛擬機器例項
深入理解Java虛擬機器總結一虛擬機器效能監控工具與效能調優(三)
深入理解Java虛擬機器總結一虛擬機器效能監控工具與效能調優(三) JDK的命令列工具 JDK的視覺化工具 效能調優 JDK的命令列工具 主要有以下幾種: jps (Java Process Status Tool): 虛擬機器程序
深入理解Java虛擬機器總結一垃圾收集器與記憶體分配策略(二)
深入理解Java虛擬機器總結一垃圾收集器與記憶體分配策略(二) 垃圾回收概述 如何判定物件為垃圾物件 垃圾回收演算法 垃圾收集器詳解 記憶體分配策略 垃圾回收概述 如何判定物件為垃圾物件 引用計數法: 在物件
深入理解java虛擬機器(一)java虛擬機器的記憶體區域
一、 java虛擬機器記憶體區域主要有:方法區、堆、虛擬機器棧、本地方方法棧、程式計數器 按照執行緒私有和共有來分:執行緒私有的有--程式計數器,虛擬機器棧,本地方法棧。共有的有--本地方法區,堆 1、程式計數器:主要功能是控制程式
java虛擬機器(一)
1、java如何不關注底層技術細節實現相容性? 使用中間語言 ,通過中間語言實現跨平臺相容的目標。 2、中間語言不是本地機器指令,機器cpu無法直接識別,因此中間語言不能直接在物理cpu上直接執行,怎麼解決? 用虛擬機器來解釋中間語言,將中間語言翻譯成對應的本地機器指令。 3
深入理解java虛擬機器(一)java的記憶體區域
程式計數器:可以看作當前執行緒所執行的位元組碼的行號指示器,位元組碼直譯器工作時就是通過改變這個計數器的值來選取下一條 需要執行的位元組碼指令,分支、迴圈、跳轉、異常處理、執行緒恢復等基礎功能都需要依賴這個計數器來實現。每一個執行緒都有一個獨立的程式計數器,各個執行緒之間的計數器互不影響,獨立
從java虛擬機器基礎看java類的反射機制
java虛擬機器相關基礎 任何一種語言編寫的程式,執行在不同的系統上,最終都需要被編譯成為機器可以識別的機器碼(也就是01010…1這種二進位制資料)。對於java語言而言,虛擬機器起到了機器語言與該語言自身的橋樑作用,虛擬機器可以識別字節碼,針對不同的
深入理解Java虛擬機器(一)--- Java 與 JVM
Java 特性 1.結構嚴謹,面向物件程式語言 2.跨平臺性 3.較安全的記憶體管理和訪問機制(避免了絕大部分記憶體洩漏和指標越界的問題) 4.實現熱點程式碼檢測和執行時編譯優化 5.擁有一套完整的API介面 6.擁有豐富的第三方庫 JVM 特性 基於棧
深入理解Java虛擬機器(一)——JVM整體結構與垃圾回收演算法介紹
JVM整體架構 •JVM(虛擬機器):指以軟體的方式模擬具有完整硬體系統功能、執行在一個完全隔離環境中的完整計算機系統 ,是物理機的軟體實現。常用的虛擬機器有VMWare,Virtual Box,Ja
深入理解java虛擬機器(一)
前言 本篇主要講述java記憶體區域的劃分。下面直接進入正題。 概述 java虛擬機器就是在真實物理機上虛擬出來的一臺計算機,java語言有一個特點就是可以跨平臺,其中java起著關鍵作用。這是因為它遮蔽與平臺相關的資訊,java原始檔經過編譯程式編譯後生成位元組碼檔
Java虛擬機器(一):Java編譯器和類載入機制
目錄 編譯時 載入 連線 初始化 類載入器 類的載入 參考: 什麼是Java虛擬機器 從Java虛擬機器所做的事情上去理解,可以分為兩個階段,編譯時和執行時。編譯時主要是一個由編譯器將原始碼譯為虛擬機器指令集的一個過程;而執行
JAVA 虛擬機器(一)內容總結
說明:此文章非本人原創,是分享作者“知其然,後知其所以然”,原部落格地址:https://www.cnblogs.com/gl-developer/p/6502600.html JVM記憶體模型以及分割槽 JVM記憶體分為: 1.方法區:執行緒共享的區域,儲存已經被虛擬機器載入的類資訊、常量、靜態變數、
Java虛擬機器(一)——記憶體區域理解
說明:本文內容主要參考了《深入理解Java虛擬機器》第2版。 一,概述 最近因為辭職了,玩了一段時間了,有時間去學習。加上之前買了一二本書,有不少卻沒有仔細去看,今天狀態還不錯,剛好看到JVM相關的內容,覺得還是在部落格裡好好總結一下。 本文主要還是對JVM的記憶體區域
Java虛擬機器(一)類載入
1、類載入機制 虛擬機器把類的資料從class載入到記憶體,並對資料進行校驗、解析和初始化,最終形成虛擬機器可以直接使用的Java型別,即是虛擬機器的類載入機制。 類載入器並不需要等到某個類被“首次主動使用”時再載入它,JVM規範允許類載入器在預料某個類將要被使用時就預先載入它,如果在預先載
深入理解java虛擬機器(一)----jvm記憶體模型
最近大致的學習了一下jvm的相關技術,發現深入理解java虛擬機器這本書很不錯,所以想將這本書的內容的重難點在blog總結一下,一是為了鞏固這些知識,二是為了把這些重點單獨寫出來,讓初學者在學習的時候有一個大致的框架以至於學起來不至於那麼迷茫 學習java虛擬
深入JVM(Java虛擬機器)(一)Java虛擬機器記憶體區域劃分
本文為博主參閱自《深入理解Java虛擬機器:JVM高階特性與最佳實踐(第2版)》,書中的全部講解均以《Java虛擬機器規範(Java SE 7)》為依據 圖一中為JVM規範中對java虛擬機器記憶體區域的劃分及定義,為單執行緒時的粗略劃分 圖二,中所繪為JVM
深入理解java虛擬機器(一):java記憶體區域(記憶體結構劃分)
圖一:java記憶體結構劃分 由上圖可知,java記憶體主要分為6部分,分別是程式計數器,虛擬機器棧,本地方法棧,堆,方法區和直接記憶體,下面將逐一詳細描述。 1、程式計數器 執行緒私有,即每個執行緒都會有一個,執行緒之間互不影響,獨立儲存。 代表著當前執行緒所執行
JAVA虛擬機器(一)記憶體管理
一.記憶體分配。java虛擬機器在執行的時候,將會包含以下執行時資料區域: 1.執行緒私有的部分: 程式計數器:可以看成是當前執行緒所執行位元組碼的行號指示器。位元組碼直譯器就是通過改變這個計數器的值來確定下一條位元組碼指令。 虛擬機器棧:虛擬機器棧為虛擬機器使用的
java虛擬機器(第二版) 第二章總結 (一)
本文主要是up主閱讀java虛擬機器(第二版) 第二章總結的總結,因為第一章主要講了java體系的過去和展望,故就暫時總結了,感興趣的可以閱讀原書。 另外推薦看原書,原書對我總結的知識有更細緻的解讀。 眾所周知,java虛擬機器對記憶體的自動管理,讓java程式設計師少了好多手動管理記憶
【深入理解Java 虛擬機器】學習筆記一
目錄 執行時資料區域 根索引演算法 垃圾回收演算法 垃圾收集器 雙親委派模型 JDK命令列工具Jstack 和 JConsole 1、執行時資料區域 執行緒共享:方法區、堆 執行緒私有:虛擬機器棧、本地方法棧、程式計數器 2、根索引演