最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
java代碼執(zhí)行技巧 java代碼編譯和執(zhí)行過程

運(yùn)行一個(gè)java程序的步驟是怎樣的?請(qǐng)做詳細(xì)說明!

Java程序從源文件創(chuàng)建到程序運(yùn)行要經(jīng)過兩大步驟:1、源文件由編譯器編譯成字節(jié)碼(ByteCode)

目前成都創(chuàng)新互聯(lián)已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、成都網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

2、字節(jié)碼由java虛擬機(jī)解釋運(yùn)行。因?yàn)閖ava程序既要編譯同時(shí)也要經(jīng)過JVM的解釋運(yùn)行,所以說Java被稱為半解釋語(yǔ)言( "semi-interpreted" language)。

下面通過以下這個(gè)java程序,來說明java程序從編譯到最后運(yùn)行的整個(gè)流程。代碼如下:

//MainApp.java

public class MainApp {

public static void main(String[] args) {

Animal animal = new Animal("Puppy");

animal.printName();

}

}

//Animal.java

public class Animal {

public String name;

public Animal(String name) {

this.name = name;

}

public void printName() {

System.out.println("Animal ["+name+"]");

}

}

第一步(編譯): 創(chuàng)建完源文件之后,程序會(huì)先被編譯為.class文件。Java編譯一個(gè)類時(shí),如果這個(gè)類所依賴的類還沒有被編譯,編譯器就會(huì)先編譯這個(gè)被依賴的類,然后引用,否則直接引用,這個(gè)有點(diǎn)象make。如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報(bào)“cant find symbol”的錯(cuò)誤。

編譯后的字節(jié)碼文件格式主要分為兩部分:常量池和方法字節(jié)碼。常量池記錄的是代碼出現(xiàn)過的所有token(類名,成員變量名等等)以及符號(hào)引用(方法引用,成員變量引用等等);方法字節(jié)碼放的是類中各個(gè)方法的字節(jié)碼。下面是MainApp.class通過反匯編的結(jié)果,我們可以清楚看到.class文件的結(jié)構(gòu):

第二步(運(yùn)行):java類運(yùn)行的過程大概可分為兩個(gè)過程:1、類的加載 2、類的執(zhí)行。需要說明的是:JVM主要在程序第一次主動(dòng)使用類的時(shí)候,才會(huì)去加載該類。也就是說,JVM并不是在一開始就把一個(gè)程序就所有的類都加載到內(nèi)存中,而是到不得不用的時(shí)候才把它加載進(jìn)來,而且只加載一次。

下面是程序運(yùn)行的詳細(xì)步驟:

在編譯好java程序得到MainApp.class文件后,在命令行上敲java AppMain。系統(tǒng)就會(huì)啟動(dòng)一個(gè)jvm進(jìn)程,jvm進(jìn)程從classpath路徑中找到一個(gè)名為AppMain.class的二進(jìn)制文件,將MainApp的類信息加載到運(yùn)行時(shí)數(shù)據(jù)區(qū)的方法區(qū)內(nèi),這個(gè)過程叫做MainApp類的加載。

然后JVM找到AppMain的主函數(shù)入口,開始執(zhí)行main函數(shù)。

main函數(shù)的第一條命令是Animal animal = new Animal("Puppy");就是讓JVM創(chuàng)建一個(gè)Animal對(duì)象,但是這時(shí)候方法區(qū)中沒有Animal類的信息,所以JVM馬上加載Animal類,把Animal類的類型信息放到方法區(qū)中。

加載完Animal類之后,Java虛擬機(jī)做的第一件事情就是在堆區(qū)中為一個(gè)新的Animal實(shí)例分配內(nèi)存, 然后調(diào)用構(gòu)造函數(shù)初始化Animal實(shí)例,這個(gè)Animal實(shí)例持有著指向方法區(qū)的Animal類的類型信息(其中包含有方法表,java動(dòng)態(tài)綁定的底層實(shí)現(xiàn))的引用。

當(dāng)使用animal.printName()的時(shí)候,JVM根據(jù)animal引用找到Animal對(duì)象,然后根據(jù)Animal對(duì)象持有的引用定位到方法區(qū)中Animal類的類型信息的方法表,獲得printName()函數(shù)的字節(jié)碼的地址。

開始運(yùn)行printName()函數(shù)。

特別說明:java類中所有public和protected的實(shí)例方法都采用動(dòng)態(tài)綁定機(jī)制,所有私有方法、靜態(tài)方法、構(gòu)造器及初始化方法clinit都是采用靜態(tài)綁定機(jī)制。而使用動(dòng)態(tài)綁定機(jī)制的時(shí)候會(huì)用到方法表,靜態(tài)綁定時(shí)并不會(huì)用到。

如何在記事本中運(yùn)行java代碼?

用記事本寫完代碼后運(yùn)行方法如下:

1、用瀏覽器打開用記事本編寫的代碼

新建“文本文檔”后,鼠標(biāo)右鍵點(diǎn)擊該文本文檔,在菜單欄的“打開方式”選擇“用記事本打開”,也可以設(shè)置默認(rèn)打開方式為“記事本”;用記事本打開文本文檔后,直接在該文檔內(nèi)根據(jù)自己的需要輸入想要編輯的網(wǎng)頁(yè)代碼。

2、記事本寫java代碼怎么運(yùn)行

首先,需要安裝jdk并配置環(huán)境變量。然后,在命令行中,用javac命令編譯用記事本編寫的代碼。下一步,在命令行中,用java命令執(zhí)行編譯后的結(jié)果。

代碼是什么

代碼是程序員用開發(fā)工具所支持的語(yǔ)言寫出來的源文件,是一組由字符、符號(hào)或信號(hào)碼元以離散形式表示信息的明確的規(guī)則體系。代碼設(shè)計(jì)的原則包括唯一確定性、標(biāo)準(zhǔn)化和通用性、可擴(kuò)充性與穩(wěn)定性、便于識(shí)別與記憶、力求短小與格式統(tǒng)一以及容易修改等。

計(jì)算機(jī)源代碼最終目的是將人類可讀文本翻譯成為計(jì)算機(jī)可執(zhí)行的二進(jìn)制指令,這種過程叫編譯,它由通過編譯器完成。源代碼就是用匯編語(yǔ)言和高級(jí)語(yǔ)言寫出來的地代碼。目標(biāo)代碼是指源代碼經(jīng)過編譯程序產(chǎn)生的能被 cpu直接識(shí)別二進(jìn)制代碼。

可執(zhí)行代碼就是將目標(biāo)代碼連接后形成的可執(zhí)行文件,當(dāng)然也是二進(jìn)制的。

北大青鳥設(shè)計(jì)培訓(xùn):如何寫出優(yōu)質(zhì)Java代碼的4個(gè)技巧?

如果現(xiàn)在要求對(duì)你寫的Java代碼進(jìn)行優(yōu)化,那你會(huì)怎么做呢?作者在本文介紹了可以提高系統(tǒng)性能以及代碼可讀性的四種方法,如果你對(duì)此感興趣,就讓java課程一起來看看吧。

我們平時(shí)的編程任務(wù)不外乎就是將相同的技術(shù)套件應(yīng)用到不同的項(xiàng)目中去,對(duì)于大多數(shù)情況來說,這些技術(shù)都是可以滿足目標(biāo)的。

然而,有的項(xiàng)目可能需要用到一些特別的技術(shù),因此工程師們得深入研究,去尋找那些最簡(jiǎn)單但最有效的方法。

在以前一篇文章中,我們討論了必要時(shí)可以使用的四種特殊技術(shù),這些特殊技術(shù)可以創(chuàng)建更好的Java軟件;而本文我們將介紹一些有助于解決常見問題的通用設(shè)計(jì)策略和目標(biāo)實(shí)現(xiàn)技術(shù),即:?1.只做有目的性的優(yōu)化?2.常量盡量使用枚舉?3.重新定義類里面的equals()方法?4.盡量多使用多態(tài)性值得注意的是,本文中描述的技術(shù)并不是適用于所有情況。

另外這些技術(shù)應(yīng)該什么時(shí)候使用以及在什么地方使用,都是需要使用者經(jīng)過深思熟慮的。

1.只做有目的性的優(yōu)化大型軟件系統(tǒng)肯定非常關(guān)注性能問題。

雖然我們希望能夠?qū)懗鲎罡咝У拇a,但很多時(shí)候,如果想對(duì)代碼進(jìn)行優(yōu)化,我們卻無(wú)從下手。

最重要的是天下沒有免費(fèi)的午餐,因此為了降低代價(jià),我們通常會(huì)通過類似于緩存、循環(huán)展開或預(yù)計(jì)算值這類技術(shù)去實(shí)現(xiàn)優(yōu)化,這樣反而增加了系統(tǒng)的復(fù)雜性,也降低了代碼的可讀性。

如果這種優(yōu)化可以提高系統(tǒng)的性能,那么即使變得復(fù)雜,那也是值得的,但是做決定之前,必須首先知道這兩條信息:?1.性能要求是什么?2.性能瓶頸在哪里首先我們需要清楚地知道性能要求是什么。

如果最終是在要求以內(nèi),并且最終用戶也沒有提出什么異議,那么就沒有必要進(jìn)行性能優(yōu)化。

但是,當(dāng)添加了新功能或者系統(tǒng)的數(shù)據(jù)量達(dá)到一定規(guī)模以后就必須進(jìn)行優(yōu)化了,否則可能會(huì)出現(xiàn)問題。

在這種情況下,不應(yīng)該靠直覺,也不應(yīng)該依靠檢查。

因?yàn)榧词故窍馦artinFowler這樣有經(jīng)驗(yàn)的開發(fā)人員也容易做一些錯(cuò)誤的優(yōu)化,正如在重構(gòu)(第70頁(yè))一文中解釋的那樣:如果分析了足夠多的程序以后,你會(huì)發(fā)現(xiàn)關(guān)于性能的有趣之處在于,大部分時(shí)間都浪費(fèi)在了系統(tǒng)中的一小部分代碼中里面。

如果對(duì)所有代碼進(jìn)行了同樣的優(yōu)化,那么最終結(jié)果就是浪費(fèi)了90%的優(yōu)化,因?yàn)閮?yōu)化過以后的代碼運(yùn)行得頻率并不多。

因?yàn)闆]有目標(biāo)而做的優(yōu)化所耗費(fèi)的時(shí)間,都是在浪費(fèi)時(shí)間。

北大青鳥java培訓(xùn):提高代碼閱讀能力的技巧有哪些?

對(duì)于學(xué)習(xí)軟件開發(fā)的人來說,學(xué)會(huì)閱讀源代碼是非常重要的,然而很多人并不具備閱讀源代碼的能力。

很多人不喜歡閱讀源代碼,認(rèn)為這是非常無(wú)聊的事情。

如果不會(huì)閱讀源代碼,對(duì)于后面寫代碼是非常困難的,很多開發(fā)人員主要把重心放在寫代碼上,反而忽略代碼的閱讀。

閱讀代碼是非常關(guān)鍵的,下面甘肅電腦培訓(xùn)為大家介紹閱讀代碼的技巧。

1、學(xué)會(huì)運(yùn)行代碼運(yùn)行代碼是閱讀代碼的第一步,這樣能夠了解關(guān)于項(xiàng)目的很多細(xì)節(jié),并且了解怎么進(jìn)行運(yùn)行,掌握庫(kù)的使用方法。

這樣是了解一個(gè)項(xiàng)目最好的方法,如果能夠自己了解和編寫相關(guān)的項(xiàng)目,這樣對(duì)于使用框架和庫(kù)會(huì)有自己的想法。

2、找到高層次的邏輯當(dāng)您開始閱讀項(xiàng)目的代碼時(shí),會(huì)涉及到每個(gè)細(xì)節(jié)。

相反的,你還需要掌握高層次結(jié)構(gòu),從這個(gè)地方找到入口點(diǎn),在很多大型項(xiàng)目開發(fā)中都可以使用這種方法。

如果是進(jìn)行web程序開發(fā),那么甘肅IT培訓(xùn)建議應(yīng)該查看不同的包,例如存儲(chǔ)業(yè)務(wù)邏輯的位置,存儲(chǔ)UI代碼的位置,控制器所在的位置等等。

3、了解和使用工具很多工具都可以有助于源代碼閱讀,并且對(duì)可視化代碼有很大的幫助。

在使用過程中,甘肅IT培訓(xùn)認(rèn)為IntelliJIdea工具能夠?qū)Ш皆创a,允許使用單詞的一部分,甚至單詞的縮寫進(jìn)行搜索。

您還應(yīng)該學(xué)習(xí)鍵盤的快捷鍵。

使用鼠標(biāo)導(dǎo)航源代碼可能會(huì)非常無(wú)聊和緩慢,鍵盤快捷鍵可以更快的進(jìn)行跳轉(zhuǎn)。

4、了解語(yǔ)言更深入地了解特定語(yǔ)言有助于提高您的代碼閱讀技能。

每種語(yǔ)言都有自己的約定,樣式和語(yǔ)法。

這些知識(shí)可以幫助您快速熟悉特定代碼。

其中甘肅電腦培訓(xùn)發(fā)現(xiàn)在Java語(yǔ)言中,方法名稱以小寫字母開頭,而在C#語(yǔ)言中,方法名稱以大寫字母開頭。

了解這種差異可以幫助你從源代碼中找到識(shí)別方法。

昆明IT培訓(xùn)分享新手要敲好Java代碼有什么技巧

對(duì)于Java新手來說,很棘手的一個(gè)問題,就是如何才能夠敲好代碼?很多Java新手在剛開始接觸Java編程的知識(shí)的時(shí)候,理論才剛上手,就希望自己能夠立馬在計(jì)算機(jī)上敲簡(jiǎn)單的代碼,嘗試過的朋友都知道,這有點(diǎn)急于求成了,是個(gè)很難辦到的問題。

Java新手如何才能夠敲好代碼?作為一個(gè)Java新手,你經(jīng)常思考這個(gè)問題嗎?今天就跟北大青鳥小編一起來好好的想想對(duì)策。首先,一定要明確,Java代碼不是你想敲寫,就可以敲寫的出來的,一定是在掌握一定的Java理論知識(shí)之后,才可以開啟的,所以想要敲好Java代碼,一定要重視Java理論知識(shí)的學(xué)習(xí)。

想必很多朋友都知道,Java新手要敲好Java代碼,除了苦練,沒有什么更加的技巧。但是苦練也是有技巧的,比如你已經(jīng)熟練的一類Java代碼,你再繼續(xù)敲也很難有大的突破,但是你不熟練的Java代碼,則會(huì)成為你的軟肋,所以敲Java代碼一定是得有方法的,而不是胡亂的敲寫,沒有任何想法的練習(xí)。

對(duì)于Java新手來說,代碼不敲不行,當(dāng)代碼敲到一定的境界之后,很多Java知識(shí)你自然而然的就懂了,所以每天的學(xué)習(xí)時(shí)間一定要多敲代碼,但是Java理論知識(shí)也不要落下。所以,對(duì)于Java新手來說,昆明IT培訓(xùn)認(rèn)為要敲好Java代碼,的確不是一件容易的事情。


網(wǎng)頁(yè)名稱:java代碼執(zhí)行技巧 java代碼編譯和執(zhí)行過程
文章URL:http://fisionsoft.com.cn/article/docsjji.html