java的析構函數
① 5. 請講一講java析構函數和虛函數的用法和作用。
java沒有析構函數和虛函數,析構函數和虛函數是c++中的。
不過,java中的抽像方法,就相當於c++中的虛函數
② java語言放棄了c加加語言的資源回收機制對象必須調用析構函
題主是否想詢問「java語言放棄了c加加語言的資源回收機制對象必須調用析構函數」?存在狀態的變化。一旦C++的對象要被回收了,在回收該對象之前對象的析構函數將被調用,然後釋放對象佔用的內存;而java中一旦垃圾回收器准備好釋放對象佔用的存儲空間,將首先調用其finalize()方法, 並且在下一次垃圾回收動作發生時,才會真正的回收對象佔用的內存。可見在java中,調用GC不等於真正地回收內存資源,而且在垃圾回收中對象存在狀態的變化。
③ 誰能講一下java的析構函數
Java沒有析構函數,java是有自動的垃圾回收機制的。這一點不像c++。
其實,若果想在垃圾回收時做一點事情,可以使用finalize()函數,這是在Object類中定義的,只要重載它就可以了。
例如:protected void
finalize()
{
.............................
// add something....................
}
④ 簡述構造函數和析構函數的作用
構造函數只是起初始化值的作用,但實例化一個對象的時候,可以通過實例去傳遞參數,從主函數傳遞到其他的函數裡面,這樣就使其他的函數裡面有值了。
析構函數與構造函數的作用相反,用於撤銷對象的一些特殊任務處理,可以是釋放對象分配的內存空間。
把類的聲明放在main函數之前,它的作用域是全局的。這樣做可以使main函數更簡練一些。在main函數中定義了兩個對象並且給出了初值,然後輸出兩個學生的數據。
當主函數結束時調用析構函數,輸出stud has been destructe!。值得注意的是,真正實用的析構函數一般是不含有輸出信息的。

(4)java的析構函數擴展閱讀:
當定義一個類的時候,通常情況下都會顯示該類的構造函數,並在函數中指定初始化的工作也可省略,不過Java編譯器會提供一個默認的構造函數.此默認構造函數是不帶參數的。而一般的方法不存在這一特點。
構造函數有回滾的效果,構造函數拋出異常時,構造的是一個不完整對象,會回滾,將此不完整對象的成員釋放(c++)。
當一個類只定義了私有的構造函數,將無法通過new關鍵字來創建其對象,當一個類沒有定義任何構造函數,C#編譯器會為其自動生成一個默認的無參的構造函數。
⑤ java 類中的構造函數和析構函數名都是什麼,java需要手動釋放資源嗎
java中
構造函數
名與類名相同,java沒有
析構函數
,java不需要手動釋放資源,它是有垃圾回收機制的。
