1. 程式人生 > >Java工程師的面試第四課

Java工程師的面試第四課

一:下面程式的程式碼輸出的結果是多少?

public class test {
	public static void main(String[] args) {
		test t = new test();
		int b=t.get();
		System.out.println(b);
	}

	private int get() {
		try {
			return 1;
		} 
		finally {
			return 2;
		}
		
	}

}

答:返回的結果是2.

我們可以通過這個例子程式來幫助我們解釋這個答案,從這個例子的執行結果可以發現,try中的return

語句呼叫的函式先於finally中呼叫的函式執行,也就是說return語句先執行,finally語句後執行。所以,返回的結果是2。Return並不是讓函式馬上返回,而是return語句執行後,進函式棧中,此時函式並不是馬上返回,它要執行finally語句後才真正開始返回。

二:"=="和equals方法究竟又什麼區別

(1)"=="操作符專門用來比較兩個變數的值是否相等,也就是用於比較變數所對應的記憶體中所儲存的數值是否相同,要比較兩個基本型別的資料或兩個引用變數是否相等,只能用"=="操作符

(2)equals方法是用於比較兩個獨立物件的內容是否相同,就好比去比較兩個人的長相是否相同,它比較的兩個物件是獨立的

三:構造器Constructor是否可被override?

構造器Constructor不能被繼承,因此不能重寫override,但可以被過載Overload。