欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java查看匯編代碼嗎 怎么查看匯編代碼

學(xué)習(xí)Java用不用了解每條語句對(duì)應(yīng)的匯編語言?

從Java的角度來說,Java這種語言的應(yīng)用主要是在高層應(yīng)用。Java的語法總體而言比較簡單,封裝機(jī)制比較完善,這些簡單性就是為了使開發(fā)者能把精力集中在業(yè)務(wù)流方面,而不是語言本身方面。Java的這種特性使得了解Java底層機(jī)制并不能對(duì)你應(yīng)用Java產(chǎn)生太大的幫助。做Java的人更應(yīng)該去關(guān)心一些軟件工程相關(guān)的問題,而不是拘泥于底層實(shí)現(xiàn)機(jī)制。而且由于Java本身并不復(fù)雜,且很少涉及直接硬件編程,因此只要有一定的Java程序設(shè)計(jì)經(jīng)驗(yàn),一般都能體會(huì)到其內(nèi)部實(shí)現(xiàn)的大致情況,例如堆棧大體上如何布局等,這已經(jīng)足夠了,你再去詳細(xì)了解每一個(gè)細(xì)節(jié),并不能幫助你把程序?qū)懙煤煤芏唷?/p>

我們提供的服務(wù)有:網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、海林ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的海林網(wǎng)站制作公司

從一個(gè)所有語言通用的觀點(diǎn)來說,了解一個(gè)語言的編譯細(xì)節(jié),是要建立在對(duì)語言本身一定理解的基礎(chǔ)之上的。當(dāng)一個(gè)具有鉆研精神的程序員具備了這樣的基礎(chǔ)之時(shí),他自然而然會(huì)去了解更深入的細(xì)節(jié)。新手的很多“有沒有用,該不該學(xué)”的問題,恰恰是反映了他們還沒有具備那樣的學(xué)習(xí)基礎(chǔ),新手需要的不是一步登天的想法,而是踏踏實(shí)實(shí)把基礎(chǔ)打牢的決心。而且了解編譯細(xì)節(jié)也并非只是知道“每句語言對(duì)應(yīng)了哪句匯編代碼”那么簡單的,這是一個(gè)非常復(fù)雜的學(xué)習(xí)過程,需要相當(dāng)?shù)幕竟Γň幾g原理、計(jì)算機(jī)組成原理、接口原理、操作系統(tǒng)原理等等計(jì)算機(jī)專業(yè)里最復(fù)雜的課程內(nèi)容。而且對(duì)于高級(jí)語言而言,也并不存在一個(gè)你所想象中的匯編和語句的一一對(duì)應(yīng)關(guān)系。

最后,還想澄清一些概念。嚴(yán)格意義上說,Java不屬于編譯型語言,因?yàn)镴ava的“編譯器”僅僅是將Java代碼翻譯成字節(jié)碼,而不是機(jī)器碼。字節(jié)碼通過虛擬機(jī)轉(zhuǎn)變?yōu)楸镜貦C(jī)器指令。研究這些底層代碼一般有幾種目的,一是逆向工程,二是加深對(duì)語言理解,以期寫出更好的代碼,三是編譯理論的研究者改進(jìn)編譯過程。我前面已經(jīng)分析過,對(duì)于Java這種語言而言,第二個(gè)目的并不是一個(gè)正確的方向,至少不是一個(gè)有效的方向。而第三個(gè)目的則遠(yuǎn)遠(yuǎn)不是一般人所能企及的,這里面有個(gè)人能力的原因,也有制度方面的原因(所以你所說的“改進(jìn)Java”只能作為一種業(yè)余愛好意義上的改進(jìn),并不具有實(shí)踐上意義,除非有一天你能進(jìn)入具有發(fā)言權(quán)的大型公司或組織,并成為其中的核心技術(shù)人員)。研究Java字節(jié)碼一般是基于第一個(gè)目的,即逆向工程。而至于說研究虛擬機(jī)怎樣把字節(jié)碼編程本地指令,則一般是虛擬機(jī)設(shè)計(jì)人員研究的問題,Java程序員去研究的話,意義也不大。

我不知道說了這么多有沒有把問題講清楚。

java的代碼是匯編語言嗎?

匯編是除了機(jī)器語言外的最底層的語言,java是面向?qū)ο蟮恼Z言,是屬于最高級(jí)的語言之一了,與匯編語言差的太多。完全不是同一個(gè)東西,連相似的地方都幾乎沒有。

至于java的底層是用什么實(shí)現(xiàn)的就不好說了,估計(jì)java 的底層應(yīng)該也是使用的與匯編相似的語言寫的,那么多復(fù)雜的類應(yīng)該會(huì)有一種比較高效的機(jī)制來處理。

如何查看C++和java生成的匯編代碼

下面有幾種方法:

方法一:生成asm文件

1)VS2005:

項(xiàng)目 ---》屬性 ---》 配置屬性 ---》 c/c++ ---》 輸出文件 ---》 右邊內(nèi)容項(xiàng):匯編輸出 ---》帶源代碼的程序集(/FAs )。

這樣在項(xiàng)目里面生成后綴為*.asm 的文件。里面還有注釋,有利于分析。

要得到匯編代碼與源代碼的對(duì)應(yīng),設(shè)置選項(xiàng):

2)VC6.0:

project settings:

--- C++

--- category == Listing files

---Listing file type == Assembly with source code

方法二:使用反匯編方式(推薦使用這種方法,在debug的時(shí)候使用)

1)VC6.0在進(jìn)行斷點(diǎn)調(diào)試的時(shí)候,進(jìn)行以下步驟:

點(diǎn)擊“查看”

“調(diào)試窗口”

“Disassably”

即可查看到反匯編的結(jié)果

2)VS2005在進(jìn)行斷點(diǎn)調(diào)試的時(shí)候,進(jìn)行以下步驟:

點(diǎn)擊“調(diào)試”

“窗口”

“反匯編”

查看java就直接用javap -v 類文件.class 即可。詳細(xì)內(nèi)容可以參考 jvm虛擬機(jī)

網(wǎng)站題目:java查看匯編代碼嗎 怎么查看匯編代碼
網(wǎng)頁URL:http://www.chinadenli.net/article24/doogoje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)手機(jī)網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站電子商務(wù)網(wǎng)站收錄云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)