java比較難面試題 一

2021-08-04 19:14:43 字數 1345 閱讀 2111

題目二

60. 執行以下程式,控制台將列印:?

public   examtest 

}class animal

publicstring getdesc()

public string tostring()

}class wolf extends animal

publicstring getdesc()

}

列印結果是:wolf[name=null, weight=0.0]

你猜對了嗎。。。。。。。。。

當然不能猜了,需要分析下才行,首先看main函式,這裡有個輸出語句,這個輸出語句裡面new 了個物件,下面看這個物件的構造方法(建立乙個物件必須走這個

方法),傳入了兩個引數,引數內容是 "灰太狼",32.3,但是,這時還沒賦值,又要呼叫父類的構造方法,父類構造方法中又呼叫了getdesc()方法,注意子類複寫父類方法

因此此時呼叫的是子類方法,但是因為子類成員沒有賦值,所以列印的是預設值,即null,和0.0,因此列印了結果了wolf[name=null,weight=0.0],注意父類的tostring()方法

58閱讀以下程式,執行結果為

public clas***amtest  

} class base

public voiddisplay()

} class

derived extends base

public voiddisplay()

}

列印結果為   :  0  ;

自己看到這答案時也很詫異,但是仔細分析下知道原因,下面來分析下

首先通過 new derived()建立子類物件,這時會呼叫空參的構造方法,然後執行父類的構造方法, 然後執行父類構        造方法 中this.display()方法,注意這個this指得是子類物件,即是你建立的物件 ,所以執行的子類的display()方法,思考下列印的i的值是什麼能?此時derived物件還未建立,屬性還未賦值,base物件也沒沒有建立成功,因為構造方法還未執行完,所以i也還沒有賦值,綜上所述,列印的結果是0,因為整型成員變數預設為0

61.執行下面的程式,控制台列印結果為

public class examtest  

} 列印結果: true|false

s2和s1一樣指向helloworld,但是,s5是s3和s4位址和,和s1是不同的

比較難的面試題

比較難的面試題 問 如果你要為客戶寫乙個函式 軟體開發客戶 該函式用來處理乙個陣列 入口是這樣的void test int p 在函式中將要對該陣列進行操作,情況有2種 1 送入的陣列是靜態分配的 2 送入的陣列是動態分配 如malloc 的 那如何去判斷這兩種分配情況呢 wanguodu 足文字d...

Java面試題(一)

1 1 2 3 100構建乙個函式。答案 public int sum int n 2 描述冒泡演算法。答案 基本思路 對尚未排序的各元素從頭到尾依次比較相鄰的兩個元素是否逆序 與欲排順序相反 若逆序就交換這兩元素,經過第一輪比較排序後便可把最大 或最小 的元素排好,然後再用同樣的方法把剩下的元素逐...

Java程式基礎面試題 一

型別 識別符號 初始值 ex int age 20 final 型別 識別符號 初始值 ex final int age 10 類中有幾種變數,分別是區域性變數,成員變數 也稱為例項變數 類變數 也稱為靜態變數 其中,區域性變數是定義在方法中的變數,成員變數是在方法外而在類宣告內定義的變數,類變數是...