色爱av美腿丝袜综合粉嫩av_亚洲v日韩v综合v精品v_中文字幕精品在线_中文字幕欧美日韩精品_91极品视频在线_日韩国产欧美精品一区二区三区_欧美激情一区二区三区高清视频_在线看日韩欧美_一区二区福利视频_国产精品视频播放_国产热re99久久6国产精品_亚洲欧洲午夜一线一品_日韩中文字幕欧美_中文字幕精品在线视频_日韩在线观看成人_国产一区二区三区在线播放免费观看


學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

一行JAVA代碼如何運(yùn)行起來?

來源:北大青鳥總部 2023年07月12日 09:56

摘要: 在程序員的世界中,你總會(huì)聽到一句“PHP是世界上最好的語言”的調(diào)侃。然而在你進(jìn)入軟件程序開發(fā)之后,你會(huì)發(fā)現(xiàn)即使開發(fā)語言千千萬,最盛行的還是JAVA。

在程序員的世界中,你總會(huì)聽到一句“PHP是世界上最好的語言”的調(diào)侃。然而在你進(jìn)入軟件程序開發(fā)之后,你會(huì)發(fā)現(xiàn)即使開發(fā)語言千千萬,最盛行的還是JAVA。從淘寶的技術(shù)變遷中我們可以見一些端倪,早期電商剛起來的時(shí)候,那會(huì)兒的互聯(lián)網(wǎng)還很簡單,使用PHP+Mysql+Apache+Linux就可以快速搭建起一套電商系統(tǒng),但隨著電商平臺(tái)、支付平臺(tái)的完善,網(wǎng)上購物開始變得簡單,越來越多的人使用淘寶購物了,淘寶的技術(shù)架構(gòu)也開始不斷的升級(jí),增加服務(wù)器數(shù)量來提高系統(tǒng)可用性。

通過運(yùn)維手段擴(kuò)充資源是一種方式,治標(biāo)不治本,最根本的原因還是在于PHP這種語言可擴(kuò)展性不夠,用戶量十萬、百萬、千萬的時(shí)候都還能支撐,但到了上億、億萬的時(shí)候怎么擴(kuò)展都不行了。于是淘寶系統(tǒng)開始一點(diǎn)點(diǎn)的前后端分離,后端使用JAVA語言開發(fā),逐漸遷移業(yè)務(wù)?,F(xiàn)在我們所使用的淘寶系統(tǒng),80%以上的后端程序都是Java開發(fā),可見笑到最后才是贏家啊。不過JAVA語言的上手難度就比PHP、前端高很多了,所以今天我們給大家講解下一行JAVA代碼到底是如何運(yùn)行起來的,JAVA后浪們可以以此為入門Java的基礎(chǔ),開啟Java開發(fā)、人生贏家之路。

Java是一種半解釋型語言,相對(duì)的有解釋型語言Python&PHP、編譯型語言C&C++。解釋型語言說的是只需要在客戶端屬于代碼后就可以運(yùn)行起來,實(shí)時(shí)看到結(jié)果,編譯型語言說的是源代碼需要進(jìn)行構(gòu)建編譯成二進(jìn)制文件才能在機(jī)器運(yùn)行起來,半解釋型語言介于其中,它把輸入的代碼進(jìn)行編譯,編譯后在JVM虛擬機(jī)中運(yùn)行(注:JVM虛擬機(jī)是在實(shí)際的機(jī)器中運(yùn)行的)。半解釋型語言的好處就是可以跨平臺(tái),一次編譯,多次執(zhí)行

我們通過下面這邊Java程序,來講明Java程序從編譯到最后運(yùn)行到整個(gè)流程。JVM運(yùn)行Java程序有兩種方式,分別是jar包和Class類文件,jar包是偏上層的方式,把所有程序都打包成一個(gè)jar包,便于交付測(cè)試人員測(cè)試、運(yùn)維人員發(fā)布,它的運(yùn)行邏輯是通過java.exe找到j(luò)ava自帶的GetMainClassName函數(shù),該函數(shù)獲取JNIENV實(shí)例,并調(diào)用JarFileJNIENV實(shí)例中的GetMainfest()函數(shù)獲取MainClass函數(shù),Main函數(shù)再調(diào)用Java.c中的LoadClass方法加載主類。

而Class方式則是越過上層,直接通過main函數(shù)調(diào)用Java.c中的LoadClass方法裝載類。所以說jar運(yùn)行的方式本質(zhì)上也是class類運(yùn)行的方式,因此我們來關(guān)注如何類方式如何加載運(yùn)行就好了。下面代碼想實(shí)現(xiàn)的功能是打印Code這個(gè)字符,整體代碼如下。我們先定義了一個(gè)類HelloJava,在這個(gè)類新建了一個(gè)對(duì)象去打印Code字符,而這個(gè)對(duì)象又調(diào)用了類Product.java



在整個(gè)代碼的運(yùn)行中,包含兩步,第一步是編譯,第二步是運(yùn)行。源文件創(chuàng)建完之后,使用javac就可以編譯.java程序,程序會(huì)被編譯成.class文件,使用java命令就可以運(yùn)行.class文件。編譯后的文件有代碼中出現(xiàn)過的類名&變量名&方法引用名、類中各個(gè)方法的字節(jié)碼,它們分別存儲(chǔ)在常量池、方法字節(jié)碼中。

在Java程序的編譯過程中,如果該類所依賴的類還沒有被編譯,編譯器就會(huì)先編譯被依賴的類,如果依賴類編譯了則直接引用。在Java類的運(yùn)行中,包含加載和運(yùn)行兩個(gè)步驟。.class文件就是通過類加載器到j(luò)vm當(dāng)中的。在Java中默認(rèn)有三種類加載器,從下往上依次是自定義類加載器UserClassLoader(負(fù)責(zé)加載自定義的class文件)、應(yīng)用類加載器AppClassLoader(負(fù)責(zé)加載classpath指定的jar包和目錄中的class文件)、擴(kuò)展類加載器ExClassLoader(負(fù)責(zé)加載Java平臺(tái)中擴(kuò)展功能的jar包)、啟動(dòng)類加載器BootstrapClassLoader(負(fù)責(zé)加載$JAVA_Home中jre/lib/rt.jar中所有的class類)。當(dāng)AppClassLoader接收到一個(gè)類加載命令后,它不會(huì)自己先去加載,而是給到擴(kuò)展類加載器,同樣擴(kuò)展類加載器自己也不會(huì)先去加載類,而是把它給到啟動(dòng)類加載器去加載,如果失敗再層層往下傳遞。所以Java是動(dòng)態(tài)在加載類。



回到我們剛剛的例子中,在編譯好Java程序后,我們得到HelloJava.class文件,在終端我們輸入javaHelloJava,系統(tǒng)就會(huì)啟動(dòng)一個(gè)JVM進(jìn)程,JVM進(jìn)程從classpath的路徑中尋找命名為HelloJava.class的二進(jìn)制文件,將HelloJava的類加載信息加載到運(yùn)行時(shí)數(shù)據(jù)區(qū)的方法區(qū),找到HelloJava的主函數(shù)入口,執(zhí)行Main函數(shù)。Main函數(shù)的第一條命令是Productproduct = newProduct(“Code”),它需要JVM創(chuàng)建一個(gè)Product對(duì)象,但此時(shí)方法區(qū)中沒有沒有Product類的信息,于是JVM加載Product類,把Product類的類型信息放在方法區(qū)中。加載完了Product類之后,JVM虛擬機(jī)在堆區(qū)為新的Product實(shí)例分配內(nèi)存,初始化類。在調(diào)用product.printName()方法的時(shí)候,JVM根據(jù)Product引用找到Product對(duì)象,根據(jù)Product對(duì)象持有的引動(dòng)定位到方法區(qū)中的Animal類的類型信息方法表,獲取printName()函數(shù)的字節(jié)碼地址,運(yùn)行printName()函數(shù),打印出來“Code”。

微觀的編譯執(zhí)行介紹完了,我們來看看中觀的執(zhí)行。在介紹Java是解釋型語言時(shí),我們有講到JVM是跨平臺(tái)執(zhí)行的,也就是一份Java代碼編譯之后,可以在Linux、unix、Windows、Macos等操作系統(tǒng)平臺(tái)中執(zhí)行。我們一起來看看是如何實(shí)現(xiàn)的呢?在Java程序運(yùn)行中有三個(gè)概念,JVM、JDK、JRE。

  • 所謂JVM就是Javavirtual Machine,Java虛擬機(jī),執(zhí)行Java代碼;

  • 所謂JDK是指的JavaDevelopment kit,Java開發(fā)工具包,Java開發(fā)人員使用;

  • 所謂JRE就是JavaRuntimeEnvironment,Java運(yùn)行時(shí)環(huán)境。

JVM屬于JRE,JRE屬于JDK。在JDK的安裝中,有不同的版本,比如Linuxx86、Windowsx64,只要安裝了JDK之后,就由JDK來區(qū)分操作系統(tǒng),JVM是運(yùn)行在操作系統(tǒng)之上,區(qū)分操作系統(tǒng)的任務(wù)就是由JDK來完成的,只要你的電腦裝了JDK,任何一份Class字節(jié)碼都會(huì)運(yùn)行在JVM中,JVM又可以運(yùn)行在任意操作系統(tǒng)中,從而實(shí)現(xiàn)了“跨平臺(tái)一次編譯,多次執(zhí)行”。

講完了中觀的執(zhí)行,我們來看看宏觀執(zhí)行。我們程序員在寫Java代碼時(shí),都會(huì)把程序編譯成jar包,通過jar包來運(yùn)行程序。一個(gè)jar包代表了一個(gè)功能模塊的實(shí)現(xiàn),如果某個(gè)jar包有我們想要使用的功能,就在程序中引用就好。然而業(yè)務(wù)功能在開發(fā)實(shí)現(xiàn)時(shí)可運(yùn)行依賴的jar包很多,如果把每個(gè)功能所實(shí)現(xiàn)的jar包都放在自己的jar包中,就會(huì)非常的浪費(fèi)資源和運(yùn)行效率。這時(shí)候我們可以把程序依賴的jar包都放在一個(gè)單獨(dú)的文件夾中,然后修改jar包中“META-INF”目錄下的“MANIFEST.MF”清單文件即可。在manifest文件中,我們指定Manifest文件的版本,運(yùn)行主類的名稱,程序所依賴的jar包的Classpath路徑都寫明清楚,Java程序執(zhí)行時(shí)加載manifest文件即可。



本文詳細(xì)的介紹了一行JAVA代碼是如何在JVM系統(tǒng)中運(yùn)行起來的,對(duì)于有志加入互聯(lián)網(wǎng)行業(yè),使用Java語言開發(fā)貢獻(xiàn)力量的朋友們來說,可以在初學(xué)時(shí)深刻的理解體會(huì)到Java代碼時(shí)怎么運(yùn)行起來的、JDK&JRE&JVM是什么?在面試的時(shí)候也能比較輕松從容的回到面試官問題,在帶新人的時(shí)候也可以裝一把大佬。


標(biāo)簽: java
熱門班型時(shí)間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計(jì)全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網(wǎng)絡(luò)安全運(yùn)營班 爆滿開班
報(bào)名優(yōu)惠
免費(fèi)試聽
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接
久久a爱视频| 国产精品自产拍| 久久影院午夜精品| 亚洲黄色影院| 亚洲人成绝费网站色www| 国产亚洲精品va在线观看| 日韩欧美成人精品| 亚洲人被黑人高潮完整版| 国产女精品视频网站免费| 一本大道av一区二区在线播放| 亚洲久久在线| 97国产在线播放| 蜜臀久久精品久久久久| 免费观看的毛片| 午夜欧美在线| 国产肥白大熟妇bbbb视频| 91看片在线| www.亚洲成人| 美女性感视频久久久| 午夜国产福利在线观看| 欧美一区三区四区| 亚洲日本丝袜连裤袜办公室| 欧美一区二区三区视频免费| 亚洲欧洲日产国码无码久久99| 欧美男男freegayvideosroom| 成人综合网址| 欧美 日韩 亚洲 一区| 国产在亚洲线视频观看| 国产成人aa在线观看网站站| 一起操在线视频| www.女人的天堂.com| 特一级黄色大片| 欧美日韩久久一区二区| 欧美激情视频在线观看| 视频在线一区二区三区| 精品国产视频一区二区三区| 亚洲乱码国产乱码精品精可以看| 国产精品露出视频| 丰满人妻一区二区三区四区53| 精品国产一级片| 欧洲美女免费图片一区| 大肉大捧一进一出好爽动态图| 亚洲福利视频免费观看| 99日韩精品| www.xxxx日本| 91中文字幕网| 国产精品成人一区二区三区吃奶| 亚洲国产中文在线| 最近看过的日韩成人| 超碰成人免费| 黄页网站在线观看视频| 久热中文字幕在线观看| 国内福利视频| 国产精品亚洲一区二区在线观看| 亚洲精品91美女久久久久久久| 色姑娘综合av| 欧美wwwsss9999| 91精品尤物| 无码人妻精品一区二区三区温州| 在线观看黄色av网站| 男人天堂a在线| 国产二区不卡| 3d动漫精品啪啪1区2区免费| 欧美日韩亚洲国产一区| 日本亚洲欧洲精品| 免费看污片的软件| 一二三四视频在线中文| 4444在线观看| 伊人免费视频二| 538国产精品一区二区免费视频| 尤物视频在线看| 亚洲精品欧美一区二区三区| 亚洲欧美成aⅴ人在线观看| 午夜成人免费视频| 欧美色电影在线| 欧美日韩国产综合一区二区| 欧美一级欧美一级| 国产一区二区三区四区三区四| 国产精品视频500部| 久草视频国产在线| 日韩第一区第二区| 亚洲精品中文字幕乱码无线| 一起草在线视频| 久久久久久久久一区二区| 97视频在线播放| 国产精品―色哟哟| 欧美在线首页| www.天堂在线| 色黄网站在线观看| 久久这里只有精品免费| 国模gogo一区二区大胆私拍| 国产一区二区精品免费| 涩爱av色老久久精品偷偷鲁| 日本一区二区三区精品| 激情综合激情五月| √天堂8在线网| 色偷偷综合社区| 亚洲国产美女精品久久久久∴| 91不卡在线观看| 国产精品美女主播| 国产毛片一区二区| 日日夜夜网站| 牛牛视频精品一区二区不卡| 精品久久久久久久久久久久久久| 国产精品久久久久久久av福利| 日韩一区欧美小说| 69久久夜色精品国产7777| 欧美在线中文字幕| 韩国三级在线播放| 1769国产精品视频| 亚洲精品一线| 精品少妇一区二区三区免费观| 久草精品在线播放| 久草福利资源在线视频| 国产精品jizz在线观看美国| blacked蜜桃精品一区| 亚洲激情成人在线| 在线三级电影| 国产精品视频在线观看| 久青草视频在线观看| 国产91丝袜在线播放0| 亚洲午夜精品一区| 中文字幕精品在线播放| 午夜影院网站| 亚洲已满18点击进入在线看片| 日韩精品一区二区三区中文在线| 免费无码毛片一区二区app| 久草成色在线| www.日韩av.com| 午夜丝袜av电影| jizzjizzjizzjizzjizzjizzjizz| 亚洲天堂一区二区在线观看| 激情五月色综合国产精品| 里番在线观看网站| 中文在线一二区| 1314成人网| 午夜免费在线| 一个人看的www久久| 男人透女人免费视频| 亚洲区在线播放| 国产一级做a爰片久久| a级片在线观看免费| 国产在线国偷精品产拍免费yy| jizz免费| 亚欧在线免费观看| 黄网站在线免费| 国产精品久久久国产盗摄| 精品一区二区三区免费观看| 国产高清视频一区三区| 神马久久久久久久久久| 一道本无吗一区| 亚洲精品乱码久久久久久蜜桃91| 日韩写真欧美这视频| 中文字幕日本在线| 天天综合天天干| 91偷拍与自偷拍精品| 午夜在线播放视频欧美| 久久午夜剧场| 日韩精品黄色网| 91av视频在线观看| 国产麻豆麻豆| 亚洲中文字幕久久精品无码喷水| 欧美特黄一级片| 尤物影院在线播放| 999久久久精品一区二区| 亚洲美免无码中文字幕在线| av网站在线免费看| 欧美在线视频在线播放完整版免费观看| 欧洲s码亚洲m码精品一区| 美美哒免费高清在线观看视频一区二区| 亚洲大肥女ass| 欧美极品一区二区| 亚洲.国产.中文慕字在线| 涩涩屋黄网站| 色吊丝av中文字幕| 68精品久久久久久欧美| 天天鲁一鲁摸一摸爽一爽| 亚洲视频在线观看一区二区三区| 一区二区91| 久久久久久这里只有精品| 国产精品日日摸夜夜爽| 亚洲桃色在线一区| 激情成人综合网| 99久久精品免费看国产小宝寻花| 五月天亚洲精品| 精品无码国产一区二区三区av| 欧美色图五月天| 亚洲欧美中日韩| 欧洲精品视频在线观看| 国产精品免费看一区二区三区| 亚洲靠逼com| 欧美性xxxxxxxxx| 一区二区三区四区在线看| 91久久久精品国产| 亚洲视频播放| 97香蕉久久超级碰碰高清版| 国产无套丰满白嫩对白| 免费成人在线观看视频| 高潮一区二区| 在线免费av播放| 一区二区视频| 日韩高清av一区二区三区| 日本在线观看一区二区三区| 欧美伊人久久久久久午夜久久久久| 亚洲不卡1区| 色嗨嗨av一区二区三区| 亚洲女人天堂成人av在线| 拍拍拍无挡免费播放视频在线观看| 国内在线高清免费视频| 日本天堂在线视频| 波多野结衣亚洲一二三| 成人手机电影网| 97色成人综合网站| 亚洲视频日韩精品| 欧美乱大交xxxxx另类电影| 一本色道久久综合狠狠躁的番外| 国产a级黄色片| 国产精品视频一区二区三| 久久久精品毛片| 91精品国产综合久久精品| 最新四虎影在线在永久观看www| 91cn在线观看| 亚洲国产中文在线| 国产欧美一区二区三区另类精品| 日韩精品亚洲视频| 日韩精品久久久久久久的张开腿让| 亚洲欧美电影| 在线免费观看电影网站入口| 国产精品一区二区不卡视频| 男人天堂欧美日韩| 久久亚洲国产精品尤物| 97在线免费| 国产女主播一区| 小处雏高清一区二区三区| 日韩视频欧美视频| 一区二区三区成人在线视频| 91骚色在线| 久久国产一级片| 澳门久久精品| 亚洲欧美一区二区三区久本道91| 亚洲国产欧美在线成人app| 久蕉在线视频| porn视频在线观看| 国产一级黄色大片| 国产精品久久免费观看| 乱精品一区字幕二区| eeuss影院www在线观看手机| 久久av中文字幕片| 91麻豆精品久久毛片一级| 91av手机在线| 久久久久亚洲蜜桃| 欧美黑人ⅹxxx另类猛交| 成人精品视频在线播放| 丰满少妇中文字幕| 国产欧美视频一区二区三区| 国产又黄又粗又猛又爽的视频| 精品捆绑调教一区二区三区| 操人视频在线观看欧美| 国产婷婷色综合av蜜臀av| 国产三级伦理片| 国产一区高清| 电影亚洲精品噜噜在线观看| 国产精品久久久久久影院8一贰佰| 亚洲最大色综合成人av| 伊人精品久久久久7777| 亚洲精品第一区二区三区| 免费试看一区| 日本成人7777| 手机看片日韩国产| 亚洲高清一区二区三区| 日韩精品一区中文字幕| 丝袜诱惑制服诱惑色一区在线观看| 美媛馆国产精品一区二区| 毛片毛片毛片毛片毛| 日本视频免费| 亚洲色图欧美自拍| 欧美电影三区| 欧美人与禽猛交乱配视频| 国产jizz18女人高潮| 久久久精品美女| 99国产精品久久久久久| 51国产成人精品午夜福中文下载| 天天想你在线观看完整版电影免费| 欧美在线国产| 影音先锋一区| 欧美女同在线观看| 精品在线视频一区| 日韩一级裸体免费视频| 色综合影院在线观看| 国产精品丝袜黑色高跟鞋| 黑吊大战白xxxxxx| 亚洲九九在线| 午夜精品久久久久久久四虎美女版| 少妇精品无码一区二区免费视频| 91亚洲成人| 久久久久久久久久久久久久久国产| 国产精品美女久久久久久2018| 久久久久亚洲av成人毛片韩| 精品国产一区二区三区久久久蜜月| 男女污污视频网站| 欧美日韩免费视频| 精品国产伦一区二区三区观看说明| 亚洲一区二区三区色| 伊人发布在线| 啄木系列成人av电影| 日韩美女在线观看一区| 欧美精品99| 五月花成人网| 高清一区二区视频| 黄色a**址| 天堂av在线网站| 99久久精品免费| 樱花草涩涩www在线播放| 欧美一级黄色录像片| 日本一二三不卡| 成人免费在线视频观看| 国产精品无码天天爽视频| 一级欧美一级日韩| 制服丝袜中文字幕第一页| 激情小说网站亚洲综合网| 欧美三片在线视频观看| 亚洲欧美综合区自拍另类| 男女激烈动态图| 精品一区二三区| 97人人模人人爽人人少妇| 成人小视频免费在线观看| 成人精品网站在线观看| 日韩欧美三级|