安卓系統(tǒng)為什么要用虛擬機(jī)的機(jī)制 為什么安卓不放棄虛擬機(jī)機(jī)制,轉(zhuǎn)變更高效的方式,例如ios一樣?
為什么安卓不放棄虛擬機(jī)機(jī)制,轉(zhuǎn)變更高效的方式,例如ios一樣?那不是Linux手機(jī)嗎?很多制造商都做過(guò),但什么也沒(méi)做。如果Android沒(méi)有接近Java,它就不會(huì)處于目前的狀況。Java開發(fā)人員遠(yuǎn)不止
為什么安卓不放棄虛擬機(jī)機(jī)制,轉(zhuǎn)變更高效的方式,例如ios一樣?
那不是Linux手機(jī)嗎?很多制造商都做過(guò),但什么也沒(méi)做。如果Android沒(méi)有接近Java,它就不會(huì)處于目前的狀況。Java開發(fā)人員遠(yuǎn)不止是C/C。WP就死在這上面了。如果IOS沒(méi)有硬件的支持,它早就死了。
一開始,Android希望構(gòu)建一個(gè)跨平臺(tái)的移動(dòng)系統(tǒng)。事實(shí)上,以前有x86和MIPS手機(jī),但后來(lái)被arm控制,這讓人覺(jué)得這個(gè)JVM是個(gè)負(fù)擔(dān)。
java虛擬機(jī)是用什么語(yǔ)言編寫的?它的原理誰(shuí)能通俗的講出來(lái)嗎?
Java虛擬機(jī)的功能是執(zhí)行Java字節(jié)碼,其編碼實(shí)現(xiàn)是一個(gè)死循環(huán)。每個(gè)循環(huán)都是獲取字節(jié)碼并執(zhí)行字節(jié)碼的過(guò)程,因此與其他程序沒(méi)有本質(zhì)區(qū)別。主流的JavaVM大多是用C語(yǔ)言實(shí)現(xiàn)的,然后用匯編語(yǔ)言輔助實(shí)現(xiàn),用Java實(shí)現(xiàn)JavaVM的情況有一些,但不多。
下面是使用C語(yǔ)言在智能設(shè)備中實(shí)現(xiàn)虛擬機(jī)的一個(gè)片段。
此代碼是短加法字節(jié)碼的實(shí)現(xiàn)。
這段代碼只是獲取字節(jié)碼并執(zhí)行它。你認(rèn)為JavaVM就是這樣嗎。
為了優(yōu)化虛擬機(jī)的效率,很多人選擇用匯編的方式重寫執(zhí)行頻率高的代碼。
小結(jié)是C語(yǔ)言實(shí)現(xiàn)的許多,將與匯編結(jié)合起來(lái)作為輔助工具。有其他語(yǔ)言,但不是主流。
java為什么這么熱門?
Java不是火。Java被廣泛使用,但它不會(huì)在一兩年內(nèi)問(wèn)世。Java是通過(guò)各種開發(fā)人員的智慧積累起來(lái)的一種語(yǔ)言。
從它的開放源碼中,我們可以看到它是廣泛和包容的。開源最有利于語(yǔ)言發(fā)展的地方是它可以匯集世界各地偉大的神的智慧。
同樣,作為一個(gè)面向?qū)ο蟮奶摂M機(jī),與C的指針和內(nèi)存泄漏相比,令人震驚的Java虛擬機(jī)著實(shí)讓人眼前一亮。更不用說(shuō)回收機(jī)制對(duì)程序員有多友好了。讓我們看看,正是因?yàn)檫@個(gè)Java虛擬機(jī),Java可以跨平臺(tái),可以出現(xiàn)在windows、Linux等操作系統(tǒng)中。不會(huì)有兼容性問(wèn)題,也沒(méi)有必要考慮這個(gè)問(wèn)題。這也是C?比C?發(fā)展更快的原因之一。
作為一名java程序員,我記得當(dāng)我第一次接觸到這種語(yǔ)言時(shí),我有一種感覺(jué),那就是我將來(lái)應(yīng)該依靠它來(lái)吃飯。我告訴我旁邊的室友,感覺(jué)Java有點(diǎn)有趣。你知道,我以前學(xué)過(guò)C,以前也學(xué)過(guò)C,所以寫代碼很難。
當(dāng)然,這是個(gè)人的一點(diǎn)體會(huì),不能說(shuō)或C不能,各有所長(zhǎng),一種語(yǔ)言的存在有其意義。歡迎對(duì)Java感興趣的朋友關(guān)注我。
對(duì)java剛?cè)腴T的新手有什么要提醒的嗎?
如果您是一個(gè)完全的新手,程序如下:
1。首先,明確短期目標(biāo)和長(zhǎng)期目標(biāo):短期目標(biāo)主要是“小步快跑”,長(zhǎng)期目標(biāo)主要是“好內(nèi)功”。
所謂“小步快跑”是指:盡快啟動(dòng),就可以編寫程序并正確運(yùn)行結(jié)果。這個(gè)階段是用來(lái)積累信心,使他們能夠堅(jiān)持學(xué)習(xí)。
所謂“好內(nèi)功”是指:了解程序背后的原理、數(shù)據(jù)結(jié)構(gòu)、算法性能、軟件工程、架構(gòu)設(shè)計(jì)等。制定學(xué)習(xí)和實(shí)踐計(jì)劃并毫不猶豫地付諸實(shí)施:你可以用Excel寫下每天要實(shí)現(xiàn)的具體小目標(biāo),然后每天睡覺(jué)前檢查是否完成。養(yǎng)成這樣的習(xí)慣對(duì)你是個(gè)很好的激勵(lì)。這一行最重要的是多年的積累,從量變到質(zhì)變。
3. 思想開放,不要閉門造車:Java相對(duì)于其他語(yǔ)言的最大優(yōu)勢(shì)是其龐大而成熟的生態(tài)環(huán)境。有無(wú)數(shù)的好框架、工具和最佳實(shí)踐供您選擇。有很多“輪子”可以“使用”。
加入更多的技術(shù)圈和資源社區(qū),與前人交流,了解技能樹,并逐一進(jìn)行有意識(shí)的培訓(xùn)。
閱讀更多經(jīng)典書籍,加深對(duì)基本概念的理解。學(xué)習(xí)語(yǔ)言,初學(xué)者可以看到《Java核心編程》、《Java編程思想》的學(xué)習(xí)框架,初學(xué)者可以在網(wǎng)上找到相應(yīng)的流行實(shí)踐視頻,動(dòng)手實(shí)踐,熟悉后,可以開始嘗試閱讀相應(yīng)的源代碼。
另一個(gè)好習(xí)慣是多總結(jié)和寫博客。它一方面有助于整理自己的知識(shí),另一方面也有利于后人。在某種程度上,您可以在源代碼社區(qū)中啟動(dòng)自己的項(xiàng)目。
對(duì)于初學(xué)者,應(yīng)該特別注意:多問(wèn)為什么,而不僅僅局限于程序運(yùn)行是否正確。想寫得足夠有力嗎?有漏洞嗎?性足夠好嗎?只有長(zhǎng)期堅(jiān)持這種精心訓(xùn)練,我們才能迅速提高。