c代碼轉(zhuǎn)java工具 c 程序員轉(zhuǎn)java好轉(zhuǎn)嗎?
c 程序員轉(zhuǎn)java好轉(zhuǎn)嗎?在這個(gè)時(shí)候,我終于有時(shí)間寫一篇我想寫的文章了。其實(shí),這篇文章的標(biāo)題并不十分準(zhǔn)確。當(dāng)C程序員編寫java代碼時(shí),他們不必轉(zhuǎn)用java而放棄C,他們只有一個(gè)選擇。這兩種語(yǔ)言各
c 程序員轉(zhuǎn)java好轉(zhuǎn)嗎?
在這個(gè)時(shí)候,我終于有時(shí)間寫一篇我想寫的文章了。其實(shí),這篇文章的標(biāo)題并不十分準(zhǔn)確。當(dāng)C程序員編寫java代碼時(shí),他們不必轉(zhuǎn)用java而放棄C,他們只有一個(gè)選擇。這兩種語(yǔ)言各有優(yōu)點(diǎn)。我們不要談?wù)Z言爭(zhēng)端。讓我們假設(shè)一個(gè)朋友需要這樣的角色轉(zhuǎn)變。在編寫了多年的C語(yǔ)言之后,突然一個(gè)項(xiàng)目需要用Java來(lái)編寫。
Java語(yǔ)言和C語(yǔ)言在語(yǔ)法上有很多相似之處,但在本質(zhì)上有區(qū)別。當(dāng)一個(gè)合格的C程序員寫下每一行代碼時(shí),他必須記住如何存儲(chǔ)代碼中的每一個(gè)變量,堆棧結(jié)構(gòu)是什么,如果處理不當(dāng),哪一塊內(nèi)存會(huì)造成很大的麻煩。然而,Java程序員有些不同。由于Java語(yǔ)言規(guī)范和Java虛擬機(jī)規(guī)范是分離的,再加上自動(dòng)GC,操作性較差。但這不是壞事。畢竟,手動(dòng)內(nèi)存管理有其復(fù)雜性。
就個(gè)人而言,對(duì)于C程序員來(lái)說(shuō),Java語(yǔ)法沒(méi)有問(wèn)題??梢哉f(shuō)80%以上的結(jié)構(gòu)是相同的,所以這不是問(wèn)題。但是如果你學(xué)英語(yǔ)語(yǔ)法,你能通過(guò)大學(xué)英語(yǔ)六級(jí)考試嗎?我們能和外國(guó)人見(jiàn)面聊天嗎?不一定。順便說(shuō)一句,我們要學(xué)習(xí)方言、成語(yǔ)和句型。當(dāng)我們進(jìn)入Java世界時(shí),我們必須按照J(rèn)ava的規(guī)則來(lái)玩。例如,如何創(chuàng)建一個(gè)對(duì)象、如何比較兩個(gè)對(duì)象、如何使用枚舉類型、如何編寫泛型代碼、并發(fā)代碼何時(shí)要實(shí)現(xiàn)上層結(jié)構(gòu)、何時(shí)在代碼中拋出異常以及何時(shí)使用反射。我認(rèn)為,一個(gè)更專注于技術(shù)的人可能還需要至少三個(gè)月的項(xiàng)目培訓(xùn)才能獲得資格。當(dāng)然,我說(shuō)的前提是這個(gè)C工程師有相當(dāng)?shù)幕A(chǔ),所以他可以站在一座山上看另一座山。
所以我認(rèn)為C程序員轉(zhuǎn)向Java的捷徑是:學(xué)習(xí)Java習(xí)慣用法、模式和項(xiàng)目調(diào)整。
C程序員的另一個(gè)優(yōu)勢(shì)是,由于主流JVM是用C/C代碼編寫的,因此喜歡深入研究的人會(huì)非常有幫助。只要你有足夠的調(diào)試技巧,對(duì)一切都了如指掌,這種方法也適用于JavaScript,因?yàn)閂8默認(rèn)也是C的,編譯器會(huì)把java文件變成字節(jié)碼,這樣計(jì)算機(jī)就可以理解了。如果是手動(dòng)的,請(qǐng)使用CMD javacxxxx.java文件我相信我能及時(shí)趕到。這取決于我做了多少。桌面開(kāi)發(fā)沒(méi)有前途,早行動(dòng)
Java源程序如何變成Java字節(jié)碼?
要破解exe,首先需要了解匯編語(yǔ)言。當(dāng)然,這里有一些常用的說(shuō)明。關(guān)鍵是對(duì)裝配有一個(gè)全局的感性認(rèn)識(shí)。當(dāng)然,您也可以在學(xué)習(xí)破解的同時(shí)學(xué)習(xí)破解組件。一些破解exe的軟件非常簡(jiǎn)單,也就是說(shuō),幾個(gè)固定的例程只要稍微認(rèn)真搜索一下關(guān)鍵點(diǎn)就可以破解。其中有些是比較難的,非常難的,可能要調(diào)試好幾天幾夜它的悲哀加上尷尬,嚴(yán)重打擊了信心。一個(gè)軟件可能用多種語(yǔ)言編寫,這需要加以區(qū)分,不可能每個(gè)軟件都用一種語(yǔ)言編寫。它需要區(qū)分,可以手動(dòng)識(shí)別軟件的入口點(diǎn)。也有相應(yīng)的工具來(lái)檢測(cè)軟件是用什么語(yǔ)言編寫的。編譯后的軟件需要通過(guò)動(dòng)態(tài)或靜態(tài)調(diào)試器翻譯成匯編語(yǔ)言進(jìn)行調(diào)試和破解,如C/C。用解釋性語(yǔ)言編寫的軟件通常有一些工具可以轉(zhuǎn)換成源代碼或中間代碼來(lái)破解,例如Java~C#。在學(xué)習(xí)破解之前,最好先學(xué)習(xí)一門高級(jí)語(yǔ)言和匯編語(yǔ)言,還要有系統(tǒng)API函數(shù)的概念。這些是基礎(chǔ)。如果你有這些深刻和感性的知識(shí),你應(yīng)該尋找教程。網(wǎng)絡(luò)上有很多教程,學(xué)習(xí)起來(lái)應(yīng)該很容易,速度也很快,如果你文化程度高,接受能力強(qiáng),想進(jìn)一步學(xué)習(xí),就要學(xué)習(xí)很多關(guān)于Win32的知識(shí),比如進(jìn)程線程差分調(diào)用,內(nèi)核模式,用戶模式,PE文件格式,互斥等等,這些是windows系統(tǒng)的原理
建議您先學(xué)習(xí)C語(yǔ)言,然后學(xué)習(xí)C語(yǔ)言,再學(xué)習(xí)匯編語(yǔ)言。你不需要深入學(xué)習(xí)C。如果你學(xué)習(xí)其他C語(yǔ)言,比如C#Java,你可以花點(diǎn)時(shí)間看看語(yǔ)法,因?yàn)檫@些高級(jí)語(yǔ)言的語(yǔ)言特性與C非常相似,這有助于破解。至于您想要的工具,您可以在教程中搜索它們