java編程思想 對于java基礎(chǔ),是應(yīng)該掌握底層原理,還是方法的熟練使用?
對于java基礎(chǔ),是應(yīng)該掌握底層原理,還是方法的熟練使用?兩者都要掌握并深入實踐。java虛擬機是用什么語言編寫的?它的原理誰能通俗的講出來嗎?Java虛擬機的功能是執(zhí)行Java字節(jié)碼,其編碼實現(xiàn)是一
對于java基礎(chǔ),是應(yīng)該掌握底層原理,還是方法的熟練使用?
兩者都要掌握并深入實踐。
java虛擬機是用什么語言編寫的?它的原理誰能通俗的講出來嗎?
Java虛擬機的功能是執(zhí)行Java字節(jié)碼,其編碼實現(xiàn)是一個死循環(huán)。每個循環(huán)都是獲取字節(jié)碼并執(zhí)行字節(jié)碼的過程,因此與其他程序沒有本質(zhì)區(qū)別。主流的JavaVM大多是用C語言實現(xiàn)的,然后用匯編語言輔助實現(xiàn),用Java實現(xiàn)JavaVM的情況有一些,但不多。
下面是使用C語言在智能設(shè)備中實現(xiàn)虛擬機的一個片段。
此代碼是短加法字節(jié)碼的實現(xiàn)。
這段代碼只是獲取字節(jié)碼并執(zhí)行它。你認(rèn)為JavaVM就是這樣嗎。
為了優(yōu)化虛擬機的效率,很多人選擇用匯編的方式重寫執(zhí)行頻率高的代碼。
小結(jié)是C語言實現(xiàn)的許多,將與匯編結(jié)合起來作為輔助工具。有其他語言,但不是主流。
Java官方?jīng)]有實現(xiàn)Servlet類,那在服務(wù)器運行過程中,Servlet類的代碼是怎么起作用的?
謝謝。
首先,主要的問題是如何實現(xiàn)servlet?實現(xiàn)了什么邏輯?你的業(yè)務(wù)代碼應(yīng)該寫在哪里?
其次,對于servlet的執(zhí)行,我們不直接給出答案,我們只是從表象引導(dǎo)思考,讓提問者自己去尋找答案
下面是一個完整的一般過程(提問者在看之前最好自己思考一下)