美團網2015秋季校園招聘面試題(上)

2021-07-05 07:23:16 字數 2808 閱讀 1744

1.http協議請求方法get和post的區別?

答:1)get方法提交資料不安全,資料置於請求行,客戶端位址列可見,而且請求的url一般會記錄在伺服器的訪問日誌中,而伺服器的訪問日誌是黑客攻擊的重點物件之一;

get方法提交的資料大小限制在255個字元之內;

get方法不可以設定書籤。

2)post方法提交資料安全,資料置於訊息主體內,客戶端不可見;

post方法提交的資料大小沒有限制;

post方法可以設定書籤。 拓展

:http/1.1協議中共定義了八種方法(有時也叫「動作」)來表明request-url指定的資源的不同操作方式:

options:返回伺服器針對特定資源所支援的http請求方法。也可以利用向web伺服器傳送「*」的請求來測試伺服器的功能。

head:向伺服器索要與get請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應訊息頭中的元訊息。

get:向特定的資源發出請求。

post:向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。資料被包含在請求體中。post請求可能會導致新的資源的建立和/或已有資源的修改。

delete:請求伺服器刪除request-url所標識的資源。

trace:回顯伺服器收到的請求,主要用於測試或診斷。

connect:http/1.1協議中預留給能夠將連線改為管道方式的**伺服器。

2.arc模式下,記憶體管理的缺陷是什麼?

答:ios提供了arc功能,很大程度上簡化了記憶體管理的**。但使用arc並不代表了不會發生記憶體洩露,使用不當照樣會發生記憶體洩露。

下面列舉兩種記憶體洩露的情況:

1)迴圈引用

a有個屬性引用b,b有個屬性引用a,如果都是strong參照的話,兩個物件都無法釋放。這種問題常發生於把delegate宣告為strong屬性了。

例如:@inte***ce sampleviewcontroller

@property(nonatomic,strong)sampleclass *sampleclass;

@end

@inte***ce sampleclass

@property(nonatomic,strong)sampleviewcontroller *delegate;

@end

上面的例子中,解決辦法是把sampleclass的delegate屬性的strong改為assign即可。

2)死迴圈

如果某個viewcontroller中有無限迴圈,也會導致即使viewcontroller對應的view關掉了,viewcontroller也不能被釋放。

例如:catransition *transition = [catransition animation];

transition.duration = 0.5;

transition.repeatcount = huge_vall;

[self.view.layer addanimation:transition forkey:」myanimation」];

上例中,animation重複次數設為huge_vall,乙個很大的數值,基本上等於無限迴圈了。

解決辦法是,在viewcontroller關掉的時候,停止這個animation。

[self.view.layer removeallanimations]; }

3.二分查詢,歸併排序和快速排序。

二分查詢

又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。

二分查詢演算法的c語言原始碼如下:

int bsearchwithoutrecursion(int array,int low,int high,int target)

while(i!=midindex+1)

temparr[k++] = sourcearr[i++];

while(j!=endindex+1)

temparr[k++] = sourcearr[j++];

for(i=startindex;i<=endindex;i++)

sourcearr[i] = temparr[i];}

//內部使用遞迴

void mergesort(int sourcearr,int temparr,int startindex,int endindex)

int i = left;

int j = right;

int key = a[left];

while(i < j) /*控制在當組內尋找一遍*/

a[i] = a[j];

/*找到乙個這樣的數後就把它賦給前面的被拿走的i的值(如果第一次迴圈且key是

a[left],那麼就是給key)*/

while(i < j && key >= a[i])

/*這是i在當組內向前尋找,同上,不過注意與key的大小關係停止迴圈和上面相反,

因為排序思想是把數往兩邊扔,所以左右兩邊的數大小與key的關係相反*/

a[j] = a[i];

}a[i] = key;/*當在當組內找完一遍以後就把中間數key回歸*/

sort(a, left, i - 1);/*最後用同樣的方式對分出來的左邊的小組進行同上的做法*/

sort(a, i + 1, right);/*用同樣的方式對分出來的右邊的小組進行同上的做法*/

/*當然最後可能會出現很多分左右,直到每一組的i = j 為止*/

}

美團網面試總結

我是昨天下午4點在華工參加了美團網的筆試。技術類的筆試題都是一樣的。我報的是研發工程師。筆試題總共8道大題,後面還有針對不同方向的附加題。都是需要些 的程式設計題,考察資料結構的知識。要求在乙個半小時之內做完。時間根本不夠用,我乙個小時才做完整了2道題。剩下的時間我就寫了其他題的解決思路。我以為自己...

阿里巴巴集團2015秋季校園招聘筆試題

今年阿里全面進行網上筆試,我投的是測試開發工程師,據我所知,大家的題目還是不盡相同 答題說明 本試卷共分為兩部分。第一部分為單選題,時長40分鐘,第二部分為附加題,時長80分鐘,答題時間總計120分鐘。你可在答題開放時間內前來答題,答題一旦開始計時開始,中途不可暫停,請合理安排時間。第一部分的題目沒...

2023年秋季騰訊校園招聘開發崗筆試題二

一直對這道題映像比較深刻 解題思路如下 先建立相同的矩陣 a b 9 c d e f g h 最先看到兩個式子 a b 9 4 9 e h 4 所以此處需要兩個for,迴圈,就能得出4個變數 剩下的4個未知數中,還需要乙個for迴圈就能求出其餘的三個數字 但應該定哪個數為已知的呢?此處應該定d為已知...