java自動部署項(xiàng)目到虛擬機(jī) 《深入理解Java虛擬機(jī)》過時了嗎?
《深入理解Java虛擬機(jī)》過時了嗎?其實(shí)這個問題需要客觀看待。我覺得只要java虛擬機(jī)過時了《深入理解java虛擬機(jī)》 ;的書不會過時。Java并不是唯一運(yùn)行在JVM上的編程語言。JPython、J
《深入理解Java虛擬機(jī)》過時了嗎?
其實(shí)這個問題需要客觀看待。我覺得只要java虛擬機(jī)過時了《深入理解java虛擬機(jī)》 ;的書不會過時。Java并不是唯一運(yùn)行在JVM上的編程語言。JPython、JRuby、Groovy等語言都運(yùn)行在java虛擬機(jī)上,這是合理的。只要使用這些編程語言,java虛擬機(jī)就不會過時。很多C和C程序員抱怨java虛擬機(jī)的GC機(jī)制導(dǎo)致了在JVM上運(yùn)行的編程語言編寫的程序性能差、執(zhí)行慢的缺點(diǎn)。我贏了。;不否認(rèn)這一點(diǎn)。GC在垃圾收集方面確實(shí)有很長的停頓,但是事物總是有兩面性,需要客觀看待。c追求性能,不得不犧牲便攜性。java在極致性能和跨平臺的平衡下選擇了后者,而java虛擬機(jī)是Java跨平臺的核心。而且,JVM是隨著技術(shù)的發(fā)展而不斷進(jìn)化的。從G1的CMS到還在java11實(shí)驗(yàn)階段的ZGC,java虛擬機(jī)的GC暫停時間越來越短,ZGC官方暫停時間不到10ms。我們在做性能測試的時候,ZGC的停頓時間遠(yuǎn)遠(yuǎn)小于10ms,大多數(shù)情況下在一兩毫秒之內(nèi)。而且10ms的暫停時間對大部分程序的性能影響不大。相比之前400-500毫秒的停頓時間,即使是10ms的停頓時間也是幾何級的突破。我相信JVM的性能在未來會不斷提高。所以,java虛擬機(jī)在未來很長一段時間內(nèi)都不會過時。另外《深入理解java虛擬機(jī)》的書自出版以來就被業(yè)界奉為經(jīng)典,也是程序員了解JVM的必讀書籍。雖然這本書是基于JavaSE7的規(guī)范,但這并不妨礙我們學(xué)習(xí)JVM。一般最底層的核心內(nèi)容變化不大。雖然本書提到的CMS垃圾收集器目前已經(jīng)放棄了維護(hù),官方的重點(diǎn)是維護(hù)G1和ZGC,但是原則和思路永遠(yuǎn)不會變。之所以長期被奉為經(jīng)典,是因?yàn)橛袇⒖純r值。因此,《深入理解java虛擬機(jī)》在未來很長一段時間內(nèi)都不會過時。
javaapplication是什么?
在Java語言中,可以獨(dú)立運(yùn)行的程序稱為Java應(yīng)用程序。Java語言還有一個程序——applet程序。Applet程序(也叫Java applet)是運(yùn)行在各種web文件中,用于增強(qiáng)人機(jī)交互、動畫顯示、聲音回放等功能的程序。Java Applet和Java Application在結(jié)構(gòu)上的主要區(qū)別如下:
(1)操作不同。Java小程序可以 t單獨(dú)運(yùn)行,它必須附加在一個用HTML語言編寫的網(wǎng)頁上并嵌入其中,它的執(zhí)行由一個兼容Java的瀏覽器控制。
Java應(yīng)用是一個完整的程序,可以獨(dú)立運(yùn)行。只要有一個支持Java的虛擬機(jī),它就可以獨(dú)立運(yùn)行,不需要其他文件的支持。
(2)不同的運(yùn)行工具。
運(yùn)行Java Applet程序的解釋器不是獨(dú)立的軟件,而是作為瀏覽器軟件的一部分嵌入在瀏覽器中。
Java應(yīng)用程序編譯后,可以用普通的Java解釋器解釋和執(zhí)行,而Java小程序只能通過web瀏覽器或小程序查看器執(zhí)行。