国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java程序執(zhí)行流程

這篇具有很好參考價(jià)值的文章主要介紹了Java程序執(zhí)行流程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Java程序執(zhí)行的整個(gè)過(guò)程可以分為三個(gè)階段:編譯、加載和運(yùn)行

1.編譯

Java程序的源代碼需要經(jīng)過(guò)編譯器(例如javac)的編譯,將其轉(zhuǎn)換成字節(jié)碼(即.class文件),這個(gè)過(guò)程稱為編譯。編譯器會(huì)對(duì)源代碼中的語(yǔ)法進(jìn)行檢查和優(yōu)化,并生成可在JVM上運(yùn)行的字節(jié)碼文件。

2.類加載

當(dāng)Java程序啟動(dòng)時(shí),JVM就會(huì)創(chuàng)建一個(gè)類加載器(ClassLoader)樹來(lái)加載所有的類。類加載器負(fù)責(zé)在運(yùn)行時(shí)將類的字節(jié)碼文件加載到內(nèi)存中,并創(chuàng)建對(duì)應(yīng)的Class對(duì)象。類加載器會(huì)按照一定的順序加載類,通常是先由系統(tǒng)類加載器(AppClassLoader)加載本地路徑下的類,如果找不到則由擴(kuò)展類加載器(ExtClassLoader)加載,最后由啟動(dòng)類加載器(BootstrapClassLoader)加載JRE中的核心類。

類加載器會(huì)執(zhí)行以下三個(gè)步驟:

  • 裝載:查找并加載字節(jié)碼文件;
  • 鏈接:對(duì)字節(jié)碼文件進(jìn)行驗(yàn)證、準(zhǔn)備和解析;
  • 初始化:對(duì)類進(jìn)行初始化,包括執(zhí)行類的static塊(如果有)和類變量的賦值。

3.執(zhí)行

在加載完成后,JVM會(huì)執(zhí)行main方法。具體執(zhí)行過(guò)程如下:

  • 創(chuàng)建主線程;
  • 將main方法所在類的字節(jié)碼文件裝載到JVM內(nèi)存中;
  • 執(zhí)行該類的static代碼塊(如果有);
  • 如果該類有父類,依次執(zhí)行其父類的static代碼塊(如果有);
  • 執(zhí)行main方法。

在執(zhí)行main方法時(shí),JVM將會(huì)按照程序員編寫的語(yǔ)句依次執(zhí)行,在執(zhí)行完畢后,程序結(jié)束。

4.垃圾回收

在Java程序執(zhí)行過(guò)程中,JVM需要管理內(nèi)存,包括分配、使用和釋放內(nèi)存。當(dāng)一個(gè)對(duì)象不再被引用時(shí),JVM會(huì)通過(guò)垃圾回收機(jī)制將其回收并釋放內(nèi)存。垃圾回收器會(huì)定期掃描堆內(nèi)存中的對(duì)象,標(biāo)記不再被引用的對(duì)象為垃圾對(duì)象,然后清理掉這些對(duì)象所占用的內(nèi)存空間。

有關(guān)垃圾回收機(jī)制可以參考我的另一篇博客:JVM內(nèi)存回收機(jī)制_源末coco的博客-CSDN博客文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-477366.html

到了這里,關(guān)于Java程序執(zhí)行流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ST-Link下載程序后需要復(fù)位才可以執(zhí)行程序

    ST-Link下載程序后需要復(fù)位才可以執(zhí)行程序

    1、使用正點(diǎn)原子的阿波羅開發(fā)板(STM32F429),他原本有一個(gè)ST-Link V2但是需要插到20腳的卡座中,我覺(jué)得插拔有些費(fèi)勁。(20腳的可以正常下載和調(diào)試)于是就將原來(lái)的ST-Link用杜邦線將ST-Link和開發(fā)板中對(duì)應(yīng)的引腳進(jìn)行連接但是出現(xiàn)了奇怪的現(xiàn)象。 現(xiàn)象: ? ? ? 在用MDK(KEIL)

    2024年02月14日
    瀏覽(16)
  • C語(yǔ)言——可執(zhí)行程序過(guò)程

    C語(yǔ)言——可執(zhí)行程序過(guò)程

    我們?cè)诰帉懘a的時(shí)候,不知道大家是否和一開始的我一樣,在運(yùn)行代碼的時(shí)候就直接CTRL+F5運(yùn)行了呢??一開始,我只知道會(huì)生成一個(gè).exe的可執(zhí)行文件,中間的原理我一點(diǎn)也不知道。 今天就由我?guī)ьI(lǐng)大家對(duì)生成可執(zhí)行的文件有更深的一層理解。 ?程序的翻譯環(huán)境和執(zhí)行環(huán)境

    2024年02月13日
    瀏覽(25)
  • “可以黑掉整個(gè)宇宙”的Metasploit Framework

    “可以黑掉整個(gè)宇宙”的Metasploit Framework

    0x01、 簡(jiǎn)述 Metasploit Framework(MSF)是一款開源安全漏洞檢測(cè)工具,他帶有數(shù)千個(gè)已知的軟件漏洞,目前人在持續(xù)更新。Metasploit可以用來(lái)信息收集、漏洞探測(cè)、漏洞利用等滲透測(cè)試的全流程,被安全社區(qū)冠以“可以黑掉整個(gè)宇宙”之名。在普通的Linux系統(tǒng)下需要自行下載安裝,而

    2024年02月15日
    瀏覽(19)
  • cmake使得工程中每個(gè)文件可以單獨(dú)作為一個(gè)可執(zhí)行程序

    通過(guò)cmake管理一個(gè)工程,工程中的src文件夾里面放了很多cpp源文件,每個(gè)源文件里面都包含一個(gè)main方法,這個(gè)工程主要是用于測(cè)試一些方法,因此希望每個(gè)源文件都可以單獨(dú)編譯并且調(diào)試。 寫法如下,就是循環(huán)查找src路徑下的cpp文件,然后對(duì)每個(gè)cpp文件建立一個(gè)可執(zhí)行程序,

    2024年04月17日
    瀏覽(20)
  • java實(shí)現(xiàn)連接遠(yuǎn)程服務(wù)器,并可以執(zhí)行shell命令

    你可以使用Java中的SSH庫(kù)來(lái)連接遠(yuǎn)程服務(wù)器并執(zhí)行shell命令。下面是一個(gè)簡(jiǎn)單的示例代碼: 請(qǐng)注意替換 your_host , your_username , your_password 和 your_shell_command 為實(shí)際的遠(yuǎn)程服務(wù)器信息和要執(zhí)行的shell命令。該示例代碼使用JSch庫(kù)來(lái)建立SSH連接并執(zhí)行命令。

    2024年01月20日
    瀏覽(33)
  • C語(yǔ)言——程序執(zhí)行的三大流程

    C語(yǔ)言——程序執(zhí)行的三大流程

    順序 : 從上向下, 順序執(zhí)行代碼 分支 : 根據(jù)條件判斷, 決定執(zhí)行代碼的分支 循環(huán) : 讓特定代碼重復(fù)的執(zhí)行

    2024年02月10日
    瀏覽(13)
  • 利用VS打包生成可執(zhí)行程序流程

    利用VS打包生成可執(zhí)行程序流程

    本文給出利用 “Visual Studio 2022” 打包C#程序的有關(guān)流程,以供參考。 (此部分作為備忘,打包流程參見 “打包步驟” 部分) 打包前準(zhǔn)備工作: 1、將原始項(xiàng)目拷貝至項(xiàng)目集合對(duì)應(yīng)文件夾,并修改名稱; 2、對(duì)解決方案名稱進(jìn)行重命名,使其與文件夾命名一致(其中 . = _);

    2024年02月07日
    瀏覽(38)
  • 在Clion開發(fā)工具上使用NDK編譯可以在安卓上執(zhí)行的程序

    在Clion開發(fā)工具上使用NDK編譯可以在安卓上執(zhí)行的程序

    ????????因?yàn)楣ぷ餍枰?,我要將一份C語(yǔ)言代碼編譯成可執(zhí)行文件傳送到某安卓系統(tǒng)里執(zhí)行。 ????????眾所周知,使用ndk編譯代碼有三種使用方式,分別是基于 Make 的 ndk-build、CMake以及獨(dú)立工具鏈。以前進(jìn)行ndk編程都是使用ndk-build進(jìn)行的,新建jni目錄,編寫Android.mk和A

    2023年04月12日
    瀏覽(27)
  • new Vue后整個(gè)的流程

    new Vue后整個(gè)的流程

    在使用 Vue.js 創(chuàng)建一個(gè)應(yīng)用程序時(shí),以下是整個(gè)流程的概述: 引入 Vue.js 庫(kù) :在 HTML 文件中引入 Vue.js 庫(kù),可以通過(guò) CDN 引入或使用本地文件。 創(chuàng)建根組件 :在 JavaScript 文件中創(chuàng)建一個(gè)根組件,并實(shí)例化一個(gè) Vue 對(duì)象。這個(gè)根組件會(huì)包含整個(gè)應(yīng)用程序的其他組件。 配置根組件

    2024年02月09日
    瀏覽(18)
  • 神策(Android)- 集成基礎(chǔ)埋點(diǎn)的整個(gè)過(guò)程

    神策(Android)- 集成基礎(chǔ)埋點(diǎn)的整個(gè)過(guò)程

    記得最早以前都是用友盟全家桶,埋點(diǎn)是用友盟,推送也是用友盟;但是近倆年我參與開發(fā)的app,埋點(diǎn)都是用神策、推送都是用極光私服,分享都是去對(duì)應(yīng)集成對(duì)應(yīng)平臺(tái)的SDK 神策篇 神策(Android)- 集成基礎(chǔ)埋點(diǎn)的整個(gè)過(guò)程 神策(Android)- 在曝光采集基礎(chǔ)上學(xué)習(xí)項(xiàng)目架構(gòu) 一切

    2024年02月12日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包