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為已知...