【301天】我愛刷題系列060(2017.12.03)

叨叨兩句

  1. 這兩天得好好睡一下

牛客網——java專項練習039

1

類的析構函數是一個對象被( )時自動調用的。
正確答案: B 你的答案: A (錯誤)java

  1. 創建
  2. 撤消
  3. 賦值
  4. 引用
析構函數(destructor) 與  構造函數 相反,當對象結束其 生命週期時(例如對象所在的函數已調用完畢),系統自動執行析構函數。析構函數每每用來作「清理善後」 的工做(例如在創建對象時用new開闢了一片內存空間,應在退出前在析構函數中用delete釋放)。
java中有析構函數,但咱們通常用不到它,由於java有自動內存回收機制,無需程序員來釋放,也就不要擔憂內存泄露,只不過java中析構函數所採用的方式不是C++中的那樣前加~號,在java中 對象析構時會調用void finalize()方法,所以你若是確實須要析構的話就能夠爲你寫的類添加一個void finalize(){}方法,來完成你所須要的工做

2

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. ZYXX
  2. ZYXY
  3. YXYZ
  4. XYZZ
初始化過程: 
1. 初始化父類中的靜態成員變量和靜態代碼塊 ; 
2. 初始化子類中的靜態成員變量和靜態代碼塊 ; 
3.初始化父類的普通成員變量和代碼塊,再執行父類的構造方法;
4.初始化子類的普通成員變量和代碼塊,再執行子類的構造方法; 

 靜態代碼塊和靜態變量屬於同級別的,按聲明順序加載


 
(1)初始化父類的普通成員變量和代碼塊,執行  Y y=new Y();  輸出Y 
(2)再執行父類的構造方法;輸出X
(3) 初始化子類的普通成員變量和代碼塊,執行  Y y=new   Y();  輸出Y 
(4)再執行子類的構造方法;輸出Z
 因此輸出YXYZ

3

下列哪一個選項是Java調試器?若是編譯器返回程序代碼的錯誤,能夠用它對程序進行調試。
正確答案: C 你的答案: 空 (錯誤)函數

  1. java.exe
  2. javadoc.exe
  3. jdb.exe
  4. javaprof.exe
javac.exe是編譯.java文件
java.exe是執行編譯好的.class文件
javadoc.exe是生成Java說明文檔
jdb.exe是Java調試器
javaprof.exe是剖析工具
相關文章
相關標籤/搜索