JAVA垃圾回收與接口

垃圾回收 :在 Java 程序的生命週期中, Java 運行時環境提供了一個系統的垃圾回收器線程,負責自動回收那些沒有引用與之相連的對象所佔用的內存,這種內存回收的過程就叫做垃圾回收( GC )。當一個對象被創建時, Java 的虛擬機( JVM )會爲該對象分配一定的內存、調用該對象的構造方法並開始跟蹤該對象。當該對象停止使用時, JVM 將通過垃圾回收器回收該對象所佔用的內存。 

需要注意的是,只有當一個對象不被任何引用類型的變量使用時,它的內存纔可能被垃圾回收,即只有在沒有任何句柄指向一個對象時,該對象才成爲垃圾;不能通過程序強迫垃圾回收立即執行,任何時候,程序員都不能通過程序強迫垃圾回收立即執行,但是可以通過 System.gc ()或 Runtime.gc ()方法提示垃圾回收器進行內存回收操作,但是這也不能保證調用該方法後,垃圾回收線程立即執行;當垃圾回收器將要釋放無用對象的內存時,先調用該對象的 finalize ()方法。 Java 利用 finalize ()方法撤銷無用對象。 finalize () 方法包含在 java.lang.Object 包中。 finalize 方法只能在 Java 垃圾收集之前調用。當一個對象超過作用域時,就不能調用 finalize 方法。 

接口 :接口是一種完全沒有實現的類,接口是方法定義和常量值的集合。 Java 通過接口使得處於不同層次甚至互不相關的類可以擁有相同的行爲。從本質上講,接口是一種特殊的抽象類,通過利用關鍵字 interface 來指明一個類必須做什麼,但是不需要明確該怎麼做。在類的結構過程中可以實現多個接口,而且在類對接口的實現過程中,必須實現接口中所有的方法。 

一個類只能有一個父類,而一個接口可以有多個父接口,父接口之間用逗號隔開。在接口中定義的常量可以被多個類共享,具有 public 、 final 、 static 屬性,也就是任意類可以訪問該變量;接口中止對方法進行聲明,沒有方法體,而且是用分號結尾,聲明的方法具有 public 和 abstract 屬性。一個類可以實現一個或多個接口,不同接口之間用逗號分開。 

在類對接口實現的定義中,必須實現接口中所有方法。這種實現是“相對”的,既可以爲接口中的方法提供實現代碼,也可以不提供代碼。如果不提供代碼,必須將該方法的框架完整寫出。如果一個類實現的是一個繼承其他接口的接口,則該類必須實現這個接口和棋父接口的所有方法,除非定義該類爲抽象類。 

接口可以作爲一種引用類型來使用,任何實現該接口的類的實例,都可以存儲在該接口類型的變量中,通過這些變量可以訪問類所實現的接口中的方法, Java 運行時,系統會動態地決定應該使用哪個類中的方法。(接口可以理解爲一種特殊類型的抽象類,不是一種基本類型的數據,當然就是引用類型的數據了。而實現了接口的類可以看作是接口的子類,在可以使用父類的地方都可以使用子類,此處的說法與之前提到的運行時多態是同一個問題。  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章