java的三大體系
Java的三大系統指的是Java渠道,即JavaSE(StandardEdition)、JavaEE(EnterpriseEdition)和JavaME(MicroEdition)。
JavaSE(規范版):
JavaSE是Java渠道的基礎,用于開發桌面應用程序、嵌入式系統和移動設備等。它供給了Java編程語言的中心API(ApplicationProgrammingInterface),包含基本的類庫、開發東西和虛擬機(JVM,JavaVirtualMachine)。JavaSE的特點是跨渠道性,即一次編寫,到處運轉。開發者可以在不同的操作系統上編寫一次代碼,然后在各個渠道上運轉,無需從頭編寫和調整代碼。
JavaEE(企業版):
JavaEE是用于開發企業級應用程序的渠道。它構建在JavaSE之上,供給了更多的功能和東西,以滿足大規模分布式應用程序的需求。JavaEE包含各種規范的API和規范,如Servlet、JSP(JavaServerPages)、EJB(EnterpriseJavaBeans)、JMS(JavaMessageService)等。JavaEE還供給了一些重要的服務,如事務管理、安全性、長途訪問等。它的方針是簡化企業級應用程序的開發過程,并供給高性能、可擴展和可靠的解決方案。
JavaME(微型版):
JavaME是為嵌入式設備和移動設備開發的渠道。它針對資源有限的設備和網絡連接有限的環境進行優化。JavaME供給了一組精簡的類庫和API,以及配置文件和配置東西,使開發者能夠在受限環境下構建應用程序。JavaME支撐各種設備,如智能手機、PDA(PersonalDigitalAssistant)、電視機頂盒、路由器等。它的特點是細巧靈敏、可移植性強和資源占用少,適合于開發輕量級的應用程序。
java有哪些引用數據類型
1、強引證
當咱們運用new創立目標時,被創立的目標便是強引證,如Objectobject=newObject(),其中的object便是一個強引證了。只要強引證存在,廢物收回器將永久不會收回被引證的目標,哪怕內存不足時,JVM也會直接拋出OutOfMemoryError,不會去收回。假如想中斷強引證與目標之間的聯系,可以顯示的將強引證賦值為null,這樣一來,JVM就可以適時的收回目標了
2、軟引證
軟引證是用來描繪一些非必需但仍有用的目標。在內存滿足的時分,軟引證目標不會被收回,只要在內存不足時,系統則會收回軟引證目標,假如收回了軟引證目標之后仍然沒有滿足的內存,才會拋出內存溢出異常。這種特性常常被用來實現緩存技能,比方網頁緩存,圖片緩存等。在JDK1.2之后,用java.lang.ref.SoftReference類來表明軟引證。
假如一個目標只具備軟引證,假如內存空間滿足,那么JVM就不會GC它,假如內存空間不足了,就會GC該目標。
3、弱引證
弱引證的引證強度比軟引證要更弱一些,無論內存是否滿足,只要JVM開端進行廢物收回,那些被弱引證相關的目標都會被收回。在JDK1.2之后,用java.lang.ref.WeakReference來表明弱引證。
假如一個目標只具有弱引證,只要JVM的GC線程檢測到了,就會當即收回。弱引證的生命周期要比軟引證短很多。不過,假如廢物收回器是一個優先級很低的線程,也紛歧定會很快就會釋放掉軟引證的內存。
4、虛引證
虛引證是最弱的一種引證聯系,假如一個目標僅持有虛引證,那么它就和沒有任何引證相同,它隨時可能會被收回,在JDK1.2之后,用PhantomReference類來表明,經過檢查這個類的源碼,發現它只要一個結構函數和一個get()辦法,并且它的get()辦法僅僅是返回一個null,也便是說將永久無法經過虛引證來獲取目標,虛引證必須要和ReferenceQueue引證行列一起運用。
假如一個目標只具有虛引證,那么它就和沒有任何引證相同,隨時會被JVM當作廢物進行GC。