0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

初學(xué)者:講解Java程序的開發(fā)與運(yùn)行原理

如意 ? 來源:博學(xué)谷 ? 作者:照照 ? 2020-08-13 15:01 ? 次閱讀

可能剛剛接觸編程的初學(xué)者會發(fā)現(xiàn),編寫一個Java程序其實(shí)很簡單,但是Java程序的運(yùn)行過程卻是非常復(fù)雜的。關(guān)于Java程序工作原理這部分知識,雖然不要求編程學(xué)習(xí)者完全掌握,你但是至少需要了解它的大致過程。下面小編將好好介紹一下Java程序的開發(fā)與運(yùn)行原理,大致分為以下三步:編寫源文件、編譯以及運(yùn)行。

初學(xué)者:講解Java程序的開發(fā)與運(yùn)行原理

1、編寫源文件

編寫的代碼,稱為“源代碼”或“源碼”。一般情況下,我們會把源代碼保存到后綴名為.java的文本文件里,這樣的文件叫源文件。 為了方便,我們會保持文件名與類的名字一致(包括大小寫)。

2、編譯

源文件是程序員編寫的,我們能夠輕松識別每一行代碼的意思,但是,在計(jì)算機(jī)中,CPU只能識別二進(jìn)制指令。所以,現(xiàn)在要做的工作就是,需要在源文件和計(jì)算機(jī)指令之間進(jìn)行轉(zhuǎn)換。由于Java語言的結(jié)構(gòu)和特性,設(shè)計(jì)者們先將源文件轉(zhuǎn)換成一種特殊的二進(jìn)制文件,然后將這個二進(jìn)制文件交給Java運(yùn)行時環(huán)境(JRE)去執(zhí)行。轉(zhuǎn)換成二進(jìn)制文件的過程,叫做編譯(這個過程使用了 javac 命令),生成的二進(jìn)制文件,叫做字節(jié)碼文件(后綴名是 .class )。如Test.java經(jīng)過編譯就會生成Test.class。這個過程全部由Java編譯器自動完成,不需要程序員進(jìn)行任何特殊操作。

3、運(yùn)行

Java程序的開與運(yùn)行原理,并不是將字節(jié)碼文件(.class文件)簡單的交給操作系統(tǒng)去執(zhí)行,那是因?yàn)椴煌牟僮飨到y(tǒng)中數(shù)據(jù)的大小、范圍和計(jì)算方式有很大不同,會導(dǎo)致同一段代碼在不同系統(tǒng)之間運(yùn)行效果差別很大,這不是設(shè)計(jì)者們想要看到的。

初學(xué)者:講解Java程序的開發(fā)與運(yùn)行原理

Java的設(shè)計(jì)者們想到了一個聰明的辦法,就是針對不同的操作系統(tǒng),分別編寫了一個可以正確執(zhí)行Java程序的虛擬機(jī)(JVM),然后把這個虛擬機(jī)內(nèi)置到 Java 的運(yùn)行時環(huán)境(JRE)中,這樣,同一段Java代碼,就可以在不同的操作系統(tǒng)上運(yùn)行出相同的效果了。將字節(jié)碼文件(.class)交給Java運(yùn)行時環(huán)境(JRE)執(zhí)行的過程,叫做Java程序的運(yùn)行(這個過程使用了 java 命令)。

總的來說,Java程序的開發(fā)與運(yùn)行原理就是把源文件編譯成字節(jié)碼文件,然后運(yùn)行,在終端顯示結(jié)果。因此,從編寫源代碼,到程序輸出結(jié)果,這個過程看似簡單,其實(shí)需要大家學(xué)習(xí)和掌握的內(nèi)容還有很多~

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2971

    瀏覽量

    104853
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3791

    瀏覽量

    81156
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2946

    瀏覽量

    66799
收藏 人收藏

    評論

    相關(guān)推薦

    EE-269:以太網(wǎng)802.3初學(xué)者指南

    電子發(fā)燒友網(wǎng)站提供《EE-269:以太網(wǎng)802.3初學(xué)者指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-05 09:48 ?0次下載
    EE-269:以太網(wǎng)802.3<b class='flag-5'>初學(xué)者</b>指南

    SSM框架在Java開發(fā)中的應(yīng)用 如何使用SSM進(jìn)行web開發(fā)

    SSM框架,即Spring、SpringMVC和MyBatis的整合,是Java Web開發(fā)中常用的技術(shù)棧。它通過分層架構(gòu),實(shí)現(xiàn)了視圖、控制、業(yè)務(wù)邏輯和數(shù)據(jù)訪問的分離,提高了代碼的可維護(hù)性和可擴(kuò)展性
    的頭像 發(fā)表于 12-16 17:28 ?529次閱讀

    XD08M3232紅外感應(yīng)單片機(jī)開發(fā)板適合初學(xué)者嗎?

    XD08M3232是一款國產(chǎn)8位高性能Flash的接近感應(yīng)單片機(jī),具有較大的內(nèi)存、恒流驅(qū)動電路、內(nèi)置運(yùn)算放大器和模擬比較器等特點(diǎn)。對于初學(xué)者來說,選擇合適的開發(fā)板是非常重要的,因?yàn)樗鼘⒅苯佑绊?/div>
    發(fā)表于 12-07 14:55

    對比Python與Java編程語言

    Python與Java都是目前非常流行的編程語言,它們各有其獨(dú)特的優(yōu)勢和適用場景。以下是對這兩種編程語言的對比: 一、語法和易用性 Python 語法簡潔,代碼更易讀,非常適合初學(xué)者。 動態(tài)類型系統(tǒng)
    的頭像 發(fā)表于 11-15 09:31 ?348次閱讀

    我用的是multisim14.0,因?yàn)槭?b class='flag-5'>初學(xué)者,仿真電路的時候找不到合適的模型,應(yīng)該怎么辦?

    我用的是multisim14.0,因?yàn)槭?b class='flag-5'>初學(xué)者,仿真電路的時候找不到合適的模型,應(yīng)該怎么辦? 比如我電路用的是AO3400的NMOS,但是在multisim14.0軟件自帶的元件庫里面沒找到類似的,開啟電壓是1.5v的nmos,請教大家,應(yīng)該怎么辦?
    發(fā)表于 08-23 10:59

    三十分鐘入門基礎(chǔ)Go Java小子版

    語法與 C 相近,但功能上有:內(nèi)存安全,GC,結(jié)構(gòu)形態(tài)及 CSP-style 并發(fā)計(jì)算。 適用范圍 本篇文章適用于學(xué)習(xí)過其他面向?qū)ο笳Z言(Java、Php),但沒有學(xué)過Go語言的初學(xué)者。文章 主要從Go
    的頭像 發(fā)表于 08-12 14:32 ?750次閱讀
    三十分鐘入門基礎(chǔ)Go <b class='flag-5'>Java</b>小子版

    華納云:java web和java有什么區(qū)別java web和java有什么區(qū)別

    的平臺,Java可以用于開發(fā)桌面應(yīng)用程序、移動應(yīng)用程序、企業(yè)級應(yīng)用程序等。 – Java Web
    的頭像 發(fā)表于 07-16 13:35 ?832次閱讀
    華納云:<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么區(qū)別<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么區(qū)別

    紅豆Cat 1開源 項(xiàng)目四: 從0-1設(shè)計(jì)一款TCP版本DTU產(chǎn)品的軟硬件全過程

    定義、硬件設(shè)計(jì)分析、軟件設(shè)計(jì)分析,并詳細(xì)講解單一功能點(diǎn)功能模塊的驗(yàn)證過程和測試驗(yàn)證方法。通過學(xué)習(xí)本內(nèi)容,初學(xué)者可以在 1-2 天內(nèi)完成一款 Cat 1 DTU產(chǎn)品的開發(fā)全過程,快速提升物聯(lián)網(wǎng)產(chǎn)品
    的頭像 發(fā)表于 07-12 14:43 ?356次閱讀
    紅豆Cat 1開源 項(xiàng)目四: 從0-1設(shè)計(jì)一款TCP版本DTU產(chǎn)品的軟硬件全過程

    紅豆Cat 1開源 項(xiàng)目二: 從0-1設(shè)計(jì)一款MQTT版本DTU 支持GNSS 產(chǎn)品的軟硬件全過程

    的軟硬件定義、硬件設(shè)計(jì)分析、軟件設(shè)計(jì)分析,并詳細(xì)講解單一功能點(diǎn)功能模塊的驗(yàn)證過程和測試驗(yàn)證方法。通過學(xué)習(xí)本內(nèi)容,初學(xué)者可以在 1-2 天內(nèi)完成一款 Cat 1 DTU產(chǎn)品的開發(fā)全過程,快速提升物聯(lián)網(wǎng)產(chǎn)品
    的頭像 發(fā)表于 07-12 14:30 ?359次閱讀
    紅豆Cat 1開源 項(xiàng)目二: 從0-1設(shè)計(jì)一款MQTT版本DTU 支持GNSS 產(chǎn)品的軟硬件全過程

    適合初學(xué)者的嵌入式項(xiàng)目有哪些?

    適合初學(xué)者的嵌入式項(xiàng)目有哪些? 嵌入式學(xué)習(xí)是一個實(shí)踐性很強(qiáng)的領(lǐng)域,通過實(shí)際項(xiàng)目可以幫助你鞏固理論知識并提升技能。以下是幾個適合初學(xué)者練手的嵌入式項(xiàng)目,每個項(xiàng)目都涵蓋了從硬件到軟件的不同層面
    發(fā)表于 07-11 10:23

    鴻蒙ArkUI-X跨平臺技術(shù):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI跨平臺應(yīng)用開發(fā)初學(xué)者。通過開發(fā)環(huán)境搭建、應(yīng)用工程創(chuàng)建、編譯和運(yùn)行,熟悉ArkUI跨平臺應(yīng)用開發(fā)基本流程。
    的頭像 發(fā)表于 05-24 10:40 ?502次閱讀
    鴻蒙ArkUI-X跨平臺技術(shù):【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】

    鴻蒙ArkUI-X框架開發(fā):【開發(fā)準(zhǔn)備】

    本文檔適用于ArkUI-X框架開發(fā)初學(xué)者。通過環(huán)境搭建、代碼下載、代碼編譯、API擴(kuò)展和使用,快速了解跨平臺項(xiàng)目開發(fā)流程。
    的頭像 發(fā)表于 05-23 21:02 ?483次閱讀
    鴻蒙ArkUI-X框架<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>開發(fā)</b>準(zhǔn)備】

    基于STM32的智能循跡小車

    初學(xué)者的智能小車
    的頭像 發(fā)表于 05-08 14:43 ?3815次閱讀
    基于STM32的智能循跡小車

    國內(nèi)哪家的FPGA適合初學(xué)者

    如題,想著手學(xué)習(xí)FPGA的話,國內(nèi)哪家的比較好,更適合初學(xué)者學(xué)習(xí)?這方面的經(jīng)驗(yàn),是一點(diǎn)都沒。
    發(fā)表于 04-14 19:17

    初學(xué)者請問各位大佬

    為什么在89C51單片機(jī)中R1可以提供低地址 在外部擴(kuò)展RAM中不是P0口提供低8位地址P2口提供高8位地址嗎初學(xué)者有些不理解望各位大佬解答一下謝謝
    發(fā)表于 02-23 16:39