1. 程式人生 > >面試經歷(二)

面試經歷(二)

    第二家面試公司,鳳凰中心,這家公司對我來說屬於“二進宮”了,四年前曾有面試機會,當時問了我好多框架問題;本次面試恰恰相反,四個問題:字串、一組數字打亂、斐波那契數列、設計模式。不過結果都是一樣,給了我一個“三進宮”的機會。下面來看看這幾個問題的解答:


一、字串

問題:String s1 = "abc"+"def"; String s2 = "abcdef"; s1==s2?

解答:true。String 字串一旦被更改,s1在編譯期值就已經被更改為“abcdef”,故s1==s2

問題:String s1 = "abc"; String s2 = s1 + "def";  String s3= "abcdef"; s2==s3?

解答:false。因為s2在堆中重新分配了另一個物件,所以s2與s3的引用不同

二、一組數字打亂

問題:一個字串陣列,要求將其打亂

解答:此問題我說出兩種解決方案,但是都大同小異。第一種,新建一個數組,隨機原陣列長度數值內的數字,放入新陣列中,去除當前座標的值;第二種,在原陣列上進行隨機,從陣列頭部依次放入,隨機數範圍依次減少。

三、斐波那契數列

問題:求底n個位置數值,當前位置數值等於前兩位的和。1、1、2、3、5、8、13

解答:兩種做法,第一種方法遞迴,過濾前兩項的返回值,第三項起方法遞迴,此種做法會有多次冗餘計算,如果增加一個快取,將會提高取值效率,同時此方法適合頻繁被呼叫。第二張方法,方法計算,兩個臨時變數儲存前兩位值,迴圈遍歷求得第n項。

四、設計模式

準備兩三個熟悉的設計模式即可。