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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

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

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

文章目錄

  • 一、JDK 體系結(jié)構(gòu)
  • 二、Java 源碼運(yùn)行原理
  • 三、Java 虛擬機(jī)內(nèi)存結(jié)構(gòu)





一、JDK 體系結(jié)構(gòu)



JDK 體系結(jié)構(gòu) : 下圖所有的內(nèi)容都是 JDK 體系中的組成元素 ;

Java Language : 最上層是 Java 語(yǔ)言 ;

Tools & Tool APIs : 指令工具集 , 手動(dòng)編譯 Java 源碼時(shí)會(huì)用到 , 如 java 執(zhí)行字節(jié)碼程序 , javac 編譯字節(jié)碼程序 , javadoc 生成 Java 文檔 ;

JRE : 橙色部分以下的都是 JRE 運(yùn)行環(huán)境 ;

Java Virtual Machine : Java 運(yùn)行最重要的基礎(chǔ)是 Java 虛擬機(jī) , 也就是下圖最底層的 " Java Virtual Machine " , 這是 Java 代碼一次編譯 , 到處運(yùn)行的基礎(chǔ) , Java 程序?qū)嶋H上是運(yùn)行在虛擬機(jī)上的 ;





二、Java 源碼運(yùn)行原理



Java 源碼運(yùn)行原理 :

編寫一個(gè) HelloWorld.java ,

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

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

javac HelloWorld.java

得到 HelloWorld.class 字節(jié)碼文件 ,

使用 java 命令執(zhí)行上述字節(jié)碼文件 , 將字節(jié)碼文件裝載到 Java 虛擬機(jī) 中 ,

java HelloWorld

Java 虛擬機(jī)是使用 軟件 模擬 完整硬件系統(tǒng)功能 , 這是一個(gè)完全隔離環(huán)境的完整的計(jì)算機(jī)系統(tǒng) ,

  • 如果當(dāng)前系統(tǒng)是 WIndows 操作系統(tǒng) , Java 虛擬機(jī)會(huì)將字節(jié)碼文件轉(zhuǎn)為 Windows 機(jī)器碼 , 在 Windows 系統(tǒng)中運(yùn)行 ;
  • 如果當(dāng)前系統(tǒng)是 Linux 操作系統(tǒng) , Java 虛擬機(jī)會(huì)將字節(jié)碼文件轉(zhuǎn)為 Linux 機(jī)器碼 , 在 Linux 系統(tǒng)中運(yùn)行 ;

在不同的操作系統(tǒng)中 , Java 虛擬機(jī)的底層實(shí)現(xiàn)是不同的 ;





三、Java 虛擬機(jī)內(nèi)存結(jié)構(gòu)



使用 java 命令 , 將 HelloWorld.class 字節(jié)碼裝載到 Java 虛擬機(jī)之后 ,

java HelloWorld.class

先通過(guò) " 類裝載子系統(tǒng) " 加載字節(jié)碼文件 , 使用類加載器將 class 文件裝載到 Java 虛擬機(jī) 內(nèi)存中 ;

Java 虛擬機(jī)內(nèi)存 模型 就是 運(yùn)行時(shí)數(shù)據(jù)區(qū) , 這部分內(nèi)存可劃分為以下 555 個(gè)區(qū)域 :

  • 堆區(qū) : 對(duì)象創(chuàng)建好之后都放在堆內(nèi)存中 ;
  • 方法區(qū) ( 元空間 ) ;
  • 棧 ( 線程棧 | 線程私有 ) : 存放線程運(yùn)行的局部變量數(shù)據(jù) , 是線程私有的控件
  • 本地方法棧 ( 線程私有 ) : 本地方法棧 存放的是 Jni 調(diào)用中 , C/C++ 的方法棧 ;
  • 程序計(jì)數(shù)器 ( 線程私有 ) ;

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

棧 ( 線程棧 ) , 本地方法棧 , 程序計(jì)數(shù)器線程私有的區(qū)域 ;

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。