日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java 虚拟机原理】JDK 体系结构 | Java 源码运行原理 | Java 虚拟机内存

發布時間:2025/6/17 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java 虚拟机原理】JDK 体系结构 | Java 源码运行原理 | Java 虚拟机内存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、JDK 體系結構
  • 二、Java 源碼運行原理
  • 三、Java 虛擬機內存結構





一、JDK 體系結構



JDK 體系結構 : 下圖所有的內容都是 JDK 體系中的組成元素 ;

Java Language : 最上層是 Java 語言 ;

Tools & Tool APIs : 指令工具集 , 手動編譯 Java 源碼時會用到 , 如 java 執行字節碼程序 , javac 編譯字節碼程序 , javadoc 生成 Java 文檔 ;

JRE : 橙色部分以下的都是 JRE 運行環境 ;

Java Virtual Machine : Java 運行最重要的基礎是 Java 虛擬機 , 也就是下圖最底層的 " Java Virtual Machine " , 這是 Java 代碼一次編譯 , 到處運行的基礎 , Java 程序實際上是運行在虛擬機上的 ;





二、Java 源碼運行原理



Java 源碼運行原理 :

編寫一個 HelloWorld.java ,

public class HelloWorld{public static void main(String[] args) {System.out.println("Hello World");} }

使用 Javac 命令編譯上述源碼 ,

javac HelloWorld.java

得到 HelloWorld.class 字節碼文件 ,

使用 java 命令執行上述字節碼文件 , 將字節碼文件裝載到 Java 虛擬機 中 ,

java HelloWorld

Java 虛擬機是使用 軟件 模擬 完整硬件系統功能 , 這是一個完全隔離環境的完整的計算機系統 ,

  • 如果當前系統是 WIndows 操作系統 , Java 虛擬機會將字節碼文件轉為 Windows 機器碼 , 在 Windows 系統中運行 ;
  • 如果當前系統是 Linux 操作系統 , Java 虛擬機會將字節碼文件轉為 Linux 機器碼 , 在 Linux 系統中運行 ;

在不同的操作系統中 , Java 虛擬機的底層實現是不同的 ;





三、Java 虛擬機內存結構



使用 java 命令 , 將 HelloWorld.class 字節碼裝載到 Java 虛擬機之后 ,

java HelloWorld.class

先通過 " 類裝載子系統 " 加載字節碼文件 , 使用類加載器將 class 文件裝載到 Java 虛擬機 內存中 ;

Java 虛擬機內存 模型 就是 運行時數據區 , 這部分內存可劃分為以下 555 個區域 :

  • 堆區 : 對象創建好之后都放在堆內存中 ;
  • 方法區 ( 元空間 ) ;
  • 棧 ( 線程棧 | 線程私有 ) : 存放線程運行的局部變量數據 , 是線程私有的控件
  • 本地方法棧 ( 線程私有 ) : 本地方法棧 存放的是 Jni 調用中 , C/C++ 的方法棧 ;
  • 程序計數器 ( 線程私有 ) ;

堆區方法區 ( 元空間 ) 是所有線程 共享的區域 ;

棧 ( 線程棧 ) , 本地方法棧 , 程序計數器線程私有的區域 ;

總結

以上是生活随笔為你收集整理的【Java 虚拟机原理】JDK 体系结构 | Java 源码运行原理 | Java 虚拟机内存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。