面試經歷(二)
阿新 • • 發佈:2018-12-26
第二家面試公司,鳳凰中心,這家公司對我來說屬於“二進宮”了,四年前曾有面試機會,當時問了我好多框架問題;本次面試恰恰相反,四個問題:字串、一組數字打亂、斐波那契數列、設計模式。不過結果都是一樣,給了我一個“三進宮”的機會。下面來看看這幾個問題的解答:
一、字串
問題: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項。
四、設計模式
準備兩三個熟悉的設計模式即可。