native的用法 本地方法棧和棧的區(qū)別?
本地方法棧和棧的區(qū)別?本地方法棧和虛擬機棧所發(fā)揮的作用是非常相似的,它們之間的區(qū)別不過是虛擬機棧是非虛擬機執(zhí)行Java方法(也就是字節(jié)碼)服務(wù),而本地方法棧則是為虛擬機執(zhí)行Native方法服務(wù)的。在虛
本地方法棧和棧的區(qū)別?
本地方法棧和虛擬機棧所發(fā)揮的作用是非常相似的,它們之間的區(qū)別不過是虛擬機棧是非虛擬機執(zhí)行Java方法(也就是字節(jié)碼)服務(wù),而本地方法棧則是為虛擬機執(zhí)行Native方法服務(wù)的。在虛擬機規(guī)范中對本地方法棧中方法使用的語言、使用方式與數(shù)據(jù)結(jié)構(gòu)并沒有強制
abstract和native方法的區(qū)別?
abstract與native (what) native:用來聲明本地方法,該方法的實現(xiàn)由非java 語言實現(xiàn),比如C。一般用于java與外環(huán)境交互,或與操作系統(tǒng)交互 (how) native 可以與所有其它的java 標(biāo)識符連用,但是abstract除外。 (why) 因為native 暗示這些方法是有實現(xiàn)體的,只不過這些實現(xiàn)體 是非java 的,但是abstract卻顯然的指明這些方法無實現(xiàn)體。
abstract和native方法的區(qū)別?
abstract與native(what)native:用來聲明本地方法,該方法的實現(xiàn)由非java語言實現(xiàn),比如C。一般用于java與外環(huán)境交互,或與操作系統(tǒng)交互(how)native可以與所有其它的java標(biāo)識符連用,但是abstract除外。(why)因為native暗示這些方法是有實現(xiàn)體的,只不過這些實現(xiàn)體是非java的,但是abstract卻顯然的指明這些方法無實現(xiàn)體。
程序員常說的底層是指什么?
我們現(xiàn)在開發(fā)軟件的時候,有多種庫或者說是組件可引用,這樣就會提高軟件開發(fā)的效率,當(dāng)然也會降低開發(fā)的難度。
所謂的“底層開發(fā)”,一般指的是“原生開發(fā)”,也就是不用或者少用別人大量封裝的代碼庫來進行的軟件開發(fā)!
比如對于WINDOWS應(yīng)用程序的開發(fā)來說,用Visual C 或者C#之類的進行開發(fā),它們就已經(jīng)對系統(tǒng)的具體實現(xiàn),進行了大量的封裝,對于開發(fā)者來說,是透明的,不知道它的具體執(zhí)行過程是怎么樣的。
但如果使用WINDOWS系統(tǒng)提供的原始API進行這樣的開發(fā),那你就要掌握系統(tǒng)的具體執(zhí)行過程,要知道它的原理,這樣才能進行軟件的開發(fā)。而這是提升一個人系統(tǒng)開發(fā)能力的最佳途徑!
所以,作為專業(yè)的軟件開發(fā)人員,應(yīng)該從所謂的“底層”去了解系統(tǒng)是如何運行的,這樣,我們在進行軟件開發(fā)的時候,就可以利用起來,對代碼進行改進、優(yōu)化,提高軟件的運行效率與健壯性。而不是僅僅是能實現(xiàn)某一項具體功能,而不用去管軟件的執(zhí)行效率等問題。
當(dāng)我們熟練的掌握了這些“底層”的原理以后,我們在軟件開發(fā)過程中,就會更加的得心應(yīng)手,只有這樣,開發(fā)出來的軟件,才更健壯,更具可維護性!
如果你覺得我的回答對你有幫助,請點個贊,謝謝!