Java虛擬機器 程式計數器
通常的程式計數器(PC)是計算機CPU中的一個重要部件,它儲存著CPU要執行的命令的地址。在計算機從通電到斷電這期間,CPU做的事兒也就是不斷執行程式計數器指向的指令和更新程式計數器的值使之指向下一條要執行的指令。
Java虛擬機器中的程式計數器是Java執行時資料區中的一小塊記憶體區域,但是它的功能和通常的程式計數器是類似的,它指向虛擬機器正在執行位元組碼指令的地址。具體點兒說,當虛擬機器執行的方法不是native的時,程式計數器指向虛擬機器正在執行位元組碼指令的地址;當虛擬機器執行的方法是native的時,程式計數器中的值是未定義的。另外,程式計數器是執行緒私有的,也就是說,每一個執行緒都擁有僅屬於自己的程式計數器。
內容來源:
《深入理解Java虛擬機器》第二版
《深入理解計算機系統》第二版
相關推薦
Java虛擬機器 程式計數器
通常的程式計數器(PC)是計算機CPU中的一個重要部件,它儲存著CPU要執行的命令的地址。在計算機從通電到斷電這期間,CPU做的事兒也就是不斷執行程式計數器指向的指令和更新程式計數器的值使之指向下一條
Java虛擬機器 程式編譯
主要內容 javac編譯器 java語法糖 編譯期 概述 Java 語言的“編譯期”可能為以下3中編譯過程: 前端編譯器:即編譯器的前端,把.java檔案轉變為.class檔案。 JIT編譯器:把位元組碼轉變為機器碼。 AOT編譯器:直接把.java轉變為本地機器碼。 java
JVM執行時資料區域 —— 程式計數器、Java虛擬機器棧、本地方法棧、Java堆、方法區、執行時常量池
java虛擬機器執行時資料區域的概括圖如下所示: 下面將對執行時資料區進行講解 程式計數器 1、說明:程式計數器可以看做是當前執行緒所執行的位元組碼的行號指示器。其實通俗點講就是記錄class檔案執行到哪一行 2、注意的點: (1)因為CPU執
java虛擬機器如何跑一個程式 從整體上看一個程式 詳細實驗
如題,本文就是通過實驗來測試。 java虛擬機器什麼時候初始化一個類? public class ClassLoaderTest{ static { System.out.println(" 執行靜態 塊 static block "); } public s
深入理解 Java 虛擬機器(十一)程式編譯與程式碼優化
編譯期優化 Java 語言的編譯期其實是一段不確定的過程,可以是前端編譯器 (Javac) 把 java 檔案編譯為 class 檔案的過程,也可能值虛擬機器的後端執行期編譯器 (JIT 編譯器,Just In Time Compiler) 把位元組碼轉變為機器
什麼是Java 虛擬機器?為什麼Java 被稱作是"平臺無關的程式語言"?
一、什麼是java虛擬機器? java虛擬機器(Java Virtual Machine 即 JVM)是執行位元組碼檔案(.class)的虛擬機器程序。 java源程式(.java)被編譯器編譯成位元組碼檔案(.class)。然後位元組碼檔案,將由java虛擬機器,解釋成機器碼(不同平臺
Java虛擬機器-Java程式執行流程
一.概述程式執行流程我把它劃分為以下幾個步驟:編輯原始碼、編譯生成class檔案、(載入class檔案、執行class位元組碼檔案),其中後兩個步驟都是在jvm虛擬機器上執行的。 二.編輯編輯原始碼,在任何一個工具上編寫原始碼,可以是記事本,最後命名為Student.java
Java程式的執行機制和Java虛擬機器
1、java程式的執行Java中原始檔字尾為*.java,編譯(也就是javac命令)使*.java檔案轉換為*.class檔案,然後在計算機上執行(java命令)*.class檔案。這就是java程式的執行過程,那麼JVM(java虛擬機器)是做什麼用的哪?首先我們來看一下
讓java程式執行在沒有java虛擬機器的windows系統上
首先我們使用eclipse直接匯出的jar包。在該專案中右鍵選擇Export -->java資料夾中的 JAR file --下一步--在JAR flie出選擇JAR包檔案輸出路徑此時不要直接finish,而是點選下一步,在下一步看到mian class的時候一定要選擇mian class指定執行的類
《深入理解Java虛擬機器——JVM高階特性與最佳實踐》學習筆記——程式編譯與程式碼優化(一)
早期(編譯期)優化 Javac的編譯過程 解析與填充符號表過程 插入式註解處理器的註解處理過程 分析與位元組碼生成過程 Javac編譯動作的入口是com.sun.tools.javac.main.JavaCompiler類,上述3個過程的程式碼
《深入理解Java虛擬機器》個人讀書總結——垃圾收集/回收演算法
說起垃圾回收,我估計很多初級java開發(包括之前的我)想到的是這個JVM會幫我管理的啊,我們不太需要去考慮這種事情。但是,當需要排查各種記憶體溢位、記憶體洩漏問題時,當垃圾收整合為系統達到更高併發量的瓶頸的時候,我們就有必要對垃圾回收GC進行了解了。思考GC需要完成的3件事情: 1.
《深入理解Java虛擬機器》個人讀書總結——JAVA虛擬機器記憶體
《深入理解Java虛擬機器》個人讀書總結——JAVA虛擬機器記憶體 最近在讀《深入理解Java虛擬機器》,網上對Java虛擬機器的總結有很多,自己覺得自己也應該記錄一點個人的讀書總結,以便日後複習方便。 隨著開發工作的逐漸深入,對Java的理解不能止步於crud,Java不像C語言
《深入理解Java虛擬機器》個人讀書總結——虛擬機器類載入機制
我們都知道Java虛擬機器是用來執行我們編譯好的.class檔案的,class檔案中夾帶類的各種資訊,虛擬機器要執行這些檔案,第一件事就是要載入到虛擬機器中,這就引出了這次總結的問題——虛擬機器是如何載入這些class檔案的?載入後虛擬機器是怎麼處理檔案中夾帶的資訊的? 類載入機制
什麼是java虛擬機器
java虛擬機器在java結構中所處的位置 Java虛擬機器的作用簡介 Java虛擬機器是java的基礎和核心,Java虛擬機器處於Java編譯器和os平臺之間的虛擬平臺。java虛擬機器可以執行位元組碼檔案。虛擬機器中的Java直譯器將位元組碼檔案解釋成適合該硬體平臺和作
java虛擬機器(第二版) 第二章總結 (三)-手工復現java虛擬機器記憶體溢位(OutOfMemoryError異常)
文章概述 的java虛擬機器記憶體溢位的簡要概述,復現堆記憶體,棧記憶體,方法區的執行時常量池記憶體等區域的溢位情況,以及上述區域發生記憶體溢位的判斷方式和解決思路。 1,概述: IDE為eclipse,需要在執
java虛擬機器(第二版) 第二章總結 (二)
本文總結下java虛擬機器的第二章的第三小節 1、(原文2.3)HotSpot虛擬機器物件探祕 文中以HotSpot虛擬機器為例,講述了java物件的建立以及訪問。 當我們寫的new關鍵字被虛擬機器執行時: <
java虛擬機器(第二版) 第二章總結 (一)
本文主要是up主閱讀java虛擬機器(第二版) 第二章總結的總結,因為第一章主要講了java體系的過去和展望,故就暫時總結了,感興趣的可以閱讀原書。 另外推薦看原書,原書對我總結的知識有更細緻的解讀。 眾所周知,java虛擬機器對記憶體的自動管理,讓java程式設計師少了好多手動管理記憶
深入理解Java虛擬機器總結一虛擬機器效能監控工具與效能調優(三)
深入理解Java虛擬機器總結一虛擬機器效能監控工具與效能調優(三) JDK的命令列工具 JDK的視覺化工具 效能調優 JDK的命令列工具 主要有以下幾種: jps (Java Process Status Tool): 虛擬機器程序
深入理解Java虛擬機器總結一垃圾收集器與記憶體分配策略(二)
深入理解Java虛擬機器總結一垃圾收集器與記憶體分配策略(二) 垃圾回收概述 如何判定物件為垃圾物件 垃圾回收演算法 垃圾收集器詳解 記憶體分配策略 垃圾回收概述 如何判定物件為垃圾物件 引用計數法: 在物件
深入理解Java虛擬機器-OOM分析
OOM即Out Of Memory Error,記憶體溢位。 如果不斷的建立物件,並且這些物件到GC Roots之間有可達路徑,那麼這些物件就不會被垃圾回收機制清楚,當物件數量達到容量限制是就會產生記憶體溢位。 在虛擬機器中,只有程式計數器不會產生OOM,除此之外其他幾個執行時區域都有可