iOS面試題8

來源:互聯網
上載者:User
iOS面試題8

1.多線程中棧與堆,分別是公有還是私人的(C)
A.棧公有,堆私人
B.棧公有,堆公有
C.棧私人,堆公有
A.棧公有,堆私人


【解釋】
一般來說棧是私人的,堆是公有的;但是可以為特定的線程建立私人的堆


在多線程環境下,每個線程擁有一個棧和一個程式計數器。棧和程式計數器用來儲存線程的執行曆史和線程的運行狀態,是線程私人的資源。其他的資源(比如堆,地址空間,全域變數)是由同一個進程內的多個線程共用。


堆:是大家共有的空間,分全域堆和局部堆。
全域堆就是所有沒有分配的空間,局部堆就是使用者指派的空間。堆在作業系統對進程初始化的時候分配,運行過程中也可以向系統要額外的堆,但是記得用完了要還給作業系統,要不然就是記憶體泄露。


棧:是線程專屬的,儲存其運行狀態和局部自動變數的。棧線上程開始的時候初始化,每個線程的棧互相獨立,因此,棧是安全執行緒的。作業系統在切換線程的時候會自動的切換棧,就是切換SS/ESP寄存器。棧空間不需要在進階語言裡面顯式的分配和釋放。


2.單例類NSNotificationCenter提供資訊廣播通知,它採用的是觀察者模式的通知機制(A)
A.對 B.錯


3.判斷是否為iPad裝置的語句是。()
A.if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
    {}


B.if([[UIDevice currentDevice] userInterfaceIdiom] != UIUserInterfaceIdiomPhone)
    {}


C.if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
    {}


4.以下哪個演算法不是對稱式加密演算法()
A.DES  B.RC5 C.AES D.RSA


對稱式加密:(也叫私密金鑰加密)
指機密和解密使用相同秘鑰的密碼編譯演算法。有時又叫傳統密碼演算法,就是加密金鑰能夠從解密密鑰中推算出來,同時解密密鑰也可以從加密金鑰中推算出來。


DES演算法把64位的明文輸入塊變為64位的密文輸出塊,它所使用的密鑰也是64位,其演算法主要分成兩步
1)初始置換
其功能是把輸入的64位元據塊按位重新組合,並把輸出分為L0和R0兩部分,每部分各長32位,其置換規則為將輸入的第58位換到第1位,第50位換到第2位……,依次類推,最後一位是原來的第7位。
其置換規則見下表:
58,50,42,34,26,18,10,02
60,52,44,36,28,20,12,04
62,54,46,38,30,22,14,06
64,56,48,40,32,24,16,08
57,49,41,33,25,17,09,01
59,51,43,35,27,19,11,03
61,53,45,37,29,21,13,05
63,55,47,39,31,23,15,07


2)逆置換


經過16次迭代運算後,得到L0,R0,將此作為輸入,進行逆置換,逆置換正好是初始置換的逆運算,由此即得到密文輸出。
此演算法是對稱式加密演算法體系中的代表,在電腦網路系統中廣泛使用。




AES:進階密碼編譯演算法(Advanced Encryption Standard)在密碼學中又叫Rijndael加密法,是美國聯邦政府採用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。


5.已知有序序列b c d e f g q r s t,則在二分尋找關鍵字b的過程中,先後進行比較的關鍵字依次是()
A.f d b
B.f c b
C.g c b
D.g d b


【解釋】
使用折半尋找的序列必須是有序的
二分尋找的重點在於記錄尋找區間


第一次尋找 區間是[0,9]
first =0;
last =9;
中間位置middle=(first+last)/2 = 4(捨去小數點)
4對應的元素是f
我們要尋找的是b而不是f,但是我們發現b比f小,序列是有序的,那麼我們要找的b應該在f左邊(不包括f)


第二次尋找
尋找區間[0 3]
middle = 1
1對應的元素是c,比b大


第三次尋找
尋找區間[0,0]
middle=0;
找到元素b
所以依次是f-c-b



著作權聲明:本文由http://www.bestnathan.com/原創,歡迎轉載分享。請尊重作者勞動,轉載時保留該聲明和作者部落格連結,謝謝
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.