- 這兩天得好好睡一下
類的析構函數是一個對象被( )時自動調用的。
正確答案: B 你的答案: A (錯誤)java
析構函數(destructor) 與 構造函數 相反,當對象結束其 生命週期時(例如對象所在的函數已調用完畢),系統自動執行析構函數。析構函數每每用來作「清理善後」 的工做(例如在創建對象時用new開闢了一片內存空間,應在退出前在析構函數中用delete釋放)。
java中有析構函數,但咱們通常用不到它,由於java有自動內存回收機制,無需程序員來釋放,也就不要擔憂內存泄露,只不過java中析構函數所採用的方式不是C++中的那樣前加~號,在java中 對象析構時會調用void finalize()方法,所以你若是確實須要析構的話就能夠爲你寫的類添加一個void finalize(){}方法,來完成你所須要的工做
class X{ Y y=new Y(); public X(){ System.out.print("X"); } } class Y{ public Y(){ System.out.print("Y"); } } public class Z extends X{ Y y=new Y(); public Z(){ System.out.print("Z"); } public static void main(String[] args) { new Z(); } }
正確答案: C程序員
初始化過程: 1. 初始化父類中的靜態成員變量和靜態代碼塊 ; 2. 初始化子類中的靜態成員變量和靜態代碼塊 ; 3.初始化父類的普通成員變量和代碼塊,再執行父類的構造方法; 4.初始化子類的普通成員變量和代碼塊,再執行子類的構造方法; 靜態代碼塊和靜態變量屬於同級別的,按聲明順序加載 (1)初始化父類的普通成員變量和代碼塊,執行 Y y=new Y(); 輸出Y (2)再執行父類的構造方法;輸出X (3) 初始化子類的普通成員變量和代碼塊,執行 Y y=new Y(); 輸出Y (4)再執行子類的構造方法;輸出Z 因此輸出YXYZ
下列哪一個選項是Java調試器?若是編譯器返回程序代碼的錯誤,能夠用它對程序進行調試。
正確答案: C 你的答案: 空 (錯誤)函數
javac.exe是編譯.java文件 java.exe是執行編譯好的.class文件 javadoc.exe是生成Java說明文檔 jdb.exe是Java調試器 javaprof.exe是剖析工具