iOS經典面試題

來源:互聯網
上載者:User

標籤:ios   面試題   擴充   

iOS經典面試會問到的一些問題:自己經過半個多月為大家整理出來的,有的答案不是唯一的!


1、 簡述OC中記憶體管理機制。與retain配對使用的方法是dealloc還是release,為什麼?需要與alloc配對使用的方法是dealloc還是release,為什麼?readwrite,readonly,assign,retain,copy,nonatomic 、atomic、strong、weak屬性的作用?

答(1.)記憶體管理機制
a.引用計數 由於iOS沒有記憶體回收機制,ios採用應用計數來確定一個對象是否釋放。

b.改變引用計數的操作alloc,retain,release,copy,dealloc等(具體解釋看第一題)。yu

c.便利構造器

d.自動釋放池 每次對象調用autorelease方法時(obj-c中的正式說法應該是:對象發送autorelease訊息),對象的引用計數並不 真正變化 , 而是向pool中添加一條記錄,記下對象的這種要求。最後當pool發送drain或release訊息時,池中的所有對象的這種要求一一被執行 (即:pool被銷毀前,會通知池中的所有對象,全部發送release訊息真正將引用計數減少,如果對象之前有發送過autorelease訊息)

e.線程 注意當視圖退出時,需要關閉自己所開線程

Release -----,alloc 開闢空間 deaclloc銷毀空間 .手動調用dealloc的時候會強制將引用計數置為0

readwrite,可讀可寫,讓系統產生setter和getterreadonly,只可讀,只產生getter

assign引用計數不會+1,適用於基礎資料型別 (Elementary Data Type).常用於指向儲存於靜態區的變數以及delegate,直接賦值

retain引用計數+1,獲得對象的所有權

copy 複製一個對象,並且儲存在不同的記憶體區.原對象的引用計數不變.遵循NSCoping協議的可以深拷貝

Nonatomic非原子性的,不保證多線程下保護安全atomic原子性,保證多線程下安全.有一個屬性需要多個線程同時訪問一個變數,使用atomic能夠自動加鎖解鎖.

Strong,用於ARC模式下,表明對象屬於強引用.類似於retain,但是比

retain更加安全,只要對象存在擁有者,就可以引用,不會被釋放.只要對象失去了擁有者,立即被拋棄.不必再將已經指向已經釋放的對象的指標指向空.避免了野指標.

Weak類似assign,弱引用.應用計數不會增加.釋放指標自動置為nil;

2、 類變數@protected ,@private,@public,@package,聲明各有什麼含義?

通過->的方式訪問成員變數

@protected受保護的.該類和所有子類中的方法可以直接存取這樣的變數。

@private 變數私人的,該類的方法可以直接存取變數。@public 所有類都可以訪問
@package 表示架構內訪問,外部無法訪問

3、 線程是什麼?進程是什麼?二者有什麼區別和聯絡?

線程,是進程的一個具體執行個體.程式啟動並執行最小單位,是被系統獨立調度和CPU的基本運行單元.進程是作業系統中可以並行工作的基本單元,一個應用程式有一個進程,一個進程中至少有一個線程.進程和線程的主要差別在於它們是不同的作業系統資源管理方式。進程有獨立的地址空間,一個進程崩潰後,在保護模式下不會對其它進程產生影響,而線程只是一個進程中的不同執行路徑。線程有自己的堆棧和局部變數,但線程之間沒有單獨的地址空間,一個線程死掉就等於整個進程死掉,所以多進程的程式要比多線程的程式健壯,但在進程切換時,耗費資源較大,效率要差一些。但對於一些要求同時進行並且又要共用某些變數的並行作業,只能用線程,不能用進程

4、 談談你對多線程開發的理解?ios中有幾種實現多線程的方法?

在一個進程中有多個線程共同存在,每個線程執行各自的任務,相互之間不會干擾,一個線程可以建立或者撤銷其他的線程.讓一個進程可以同時執行很多任務.這就減少了等待時間,

iOS經典面試題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.