面試題(1)[內存断楷,線程]

簡述OC中內存管理機制锨匆。與retain配對使用的方法是dealloc還是release,為什么脐嫂?

需要與alloc配對使用的方法是dealloc還是release统刮,為什么紊遵?

readwrite账千,readonly,assign暗膜,retain匀奏,copy,nonatomic 学搜、atomic娃善、strong、weak屬性的作用瑞佩?

?1.OC的內存管理機制是引用計數, 內存管理原則是誰開辟誰釋放, 有retain就要有release.

2. 分為ARC(自動引用計數)和MRC(非自動引用計數), 在MRC下, 我們需要手動管理內存,需要使用到retain/copy/release/autorelease等方法實現內存管理, ARC下一般不需要程序員手動管理內存, 系統(tǒng)會為程序添加自動釋放池以實現內存管理,?

當然, 咱們說的一般不需要不能理解為完全不需要考慮內存問題, 比如在解決block循環(huán)引用問題的時候, 就需要使用__weak修飾, 需要注意的是ARC和MRC下解決循環(huán)引用的方法還不一樣,MRC下是__block, ARC下是__weak . 二.與retain匹配的是release, 因為retain是引用計數+1, 在內存管理中, 要記得內存管理原則: 誰開辟誰釋放, 有retain就要有release.? release是引用計數-1. alloc匹配的是dealloc, alloc是開辟內存空間, dealloc是銷毀所開辟的內存, 有開辟就要有銷毀. 三.readWrite讀寫特性, 可讀可寫. readonly只讀, 只有getter, 沒有setter. assign一般用于基本數據類型和ID類型. copy拷貝, 一般用于? NSString. 分為深拷貝和淺拷貝, 深拷貝拷貝的是對象, 淺拷貝拷貝的是指針. nonatomic非原子性, 不考慮線程安全, 優(yōu)點是效率高. atomic原子性, 有點是線程安全, 缺點是效率低. strong強引用, 和MRC下的retain一樣. weak弱引用, 類似MRC下的assign. 但是要注意的是strong和weak都是修飾對象類型的屬性的, 不能修飾基本數據類型. ARC下仍然使用assign修飾基本數據類型.

類變量的@protected ,@private,@public,@package聚磺,聲明各有什么含義?@protected 該類和所有的子類中的方法可以直接訪問這樣的變量炬丸,這是默認的瘫寝。@private被修飾的變量是私有的 @public公有, 除了自己和子類中的方法外蜒蕾,也可以被其他類或者其他模塊中的方法所訪問。@package只能在本包內使用, 不能跨包使用.

說一下@public, 我們用到的地方不多. 但是我現在有一個需求, 就是給一個對象的成員變量賦值.1. 寫一個seter方法. 2. KVC. 3. @public修飾.

3.? ? ? ? 線程是什么焕阿?進程是什么咪啡?二者有什么區(qū)別和聯系? 進程是對正在運行的程序過程的抽象, 其實就是咱們程序本身. 程序是指令暮屡、數據及其組織形式的描述撤摸,進程是程序的實體. 線程是程序運行的基本單元(可以理解為一個進程中執(zhí)行的代碼片段), 進程可以認為是一個容器, 里面裝的線程真正的在執(zhí)行代碼, 完成功能. 一個程序在運行的時候就是一個進程, 一個進程至少一個線程.

4. 談談你對多線程開發(fā)的理解?ios中有幾種實現多線程的方法褒纲?http://www.cocoachina.com/ios/20140520/8485.html;這個帖子寫的挺好的, 可以抽時間看看.好處:也就是為什么要使用多線程.1准夷、使用線程可以把程序中占據時間長的任務放到子線程去處理,如圖片莺掠、視頻的下載2冕象、發(fā)揮多核處理器的優(yōu)勢,并發(fā)執(zhí)行讓系統(tǒng)運行的更快汁蝶、更流暢渐扮,用戶體驗更好缺點:缺點可以稍微提一點1、更多的線程需要更多的內存空間2掖棉、當多個線程對同一個資源出現爭奪的時候要注意線程安全的問題墓律。iOS有三種多線程編程的技術:1、NSThread2幔亥、NSOperationQueue

3耻讽、Grand Central Dispatch (GCD)

在多線程操作中, 需要考慮線程安全問題, 線程鎖.GCD內部對于線程安全有處理, 所以不需要考慮線程安全問題.

線程同步和異步的區(qū)別?? 同步:一個線程要等待上一個線程執(zhí)行完之后才能執(zhí)行當前的線程帕棉,生活中的例子(上廁所)针肥。異步:同時去做兩件或者多件事。比如邊聽歌邊看報香伴。

假設有一個字符串aabcad慰枕,請寫一段程序,去掉字符串中不相鄰的重復字符串即纲,即上述字符串處理之后的輸出結果為:aabcd

本題的題意是以第一個出現的字母作為參照具帮,只要之后出現相同的字母并且和第一個字母不相鄰,那么就刪除低斋。為防止刪除某些字符之后蜂厅,把之前不相鄰的重復字符串轉化為相鄰字符串,所以可以先用空格替換掉需要刪除的字符膊畴,最后對數組里面的空格進行處理掘猿。-(void)removeRepeat:(NSString *)aNum

{

NSMutableArray *mArr = [[NSMutableArray alloc]initWithCapacity:10];

for (int i = 0;i < aNum.length;i++)

{

[mArr addObject:[aNum substringWithRange:NSMakeRange(i,1)]];

}

NSLog(@"- %@", mArr);

[self compareNum:mArr];

NSLog(@"%@",mArr);

}

//比較是否相等

-(NSMutableArray *)compareNum:(NSMutableArray *)mArr

{

int count = mArr.count;//重新定義了,count不會減一

for (int j = 0; j < count - 1; j++)

{

for (int i = j; i < count - 1-1-1; i++)

{

NSLog(@" %@? %@",[mArr objectAtIndex:j],[mArr objectAtIndex:i + 2]);

NSString *a = [mArr objectAtIndex:j];

NSString *b = [mArr objectAtIndex:i+2];

if ([a isEqualToString:b])

{

[mArr replaceObjectAtIndex:i + 2 withObject:@" "];

}

}

}

return mArr;

}

獲取一臺設備唯一標識的方法有哪些?MAC地址(物理地址):現在已經被廢棄, 所有的設備請求返回同一個地址: 20.00.00.00

UDID: 設備唯一標識符, 蘋果禁止使用UDID的APP上架. ? ? DeviceToken: 推送令牌, 用戶可以禁止推送, 所有不能使用, 這個開發(fā)者根本就沒有用過…

idfa, 廣告標識符, 用戶可以手動還原.

idfv, 只有相同廠商的APP, 這個標識符才會相同.并且在刪除以后, idfv會更新.

UUID, 通用唯一標識碼.

-(NSString*)?uuid?{

CFUUIDRef?puuid?=?CFUUIDCreate(?nil?);

CFStringRef?uuidString?=?CFUUIDCreateString(?nil,?puuid?);

NSString?*?result?=?(NSString?*)CFStringCreateCopy(?NULL,?uuidString);

CFRelease(puuid);

CFRelease(uuidString);

return?[result?autorelease];

}

open UDID, 一個開源的獲取唯一標示的第三方.建議配合Keychain使用.

iOS類是否可以多繼承唇跨?如果沒有稠通,那可以用其他方法實現嗎礁遵?簡述實現過程。不可以采记,可以通過消息轉發(fā)佣耐、delegate和protocol和類別來實現類似多繼承。

堆和棧的區(qū)別唧龄?棧區(qū)(stack)--由編譯器自動分配釋放兼砖,存放函數的參數值、局部變量的值既棺。先進后出堆區(qū)(heap)--一般由程序員分配釋放讽挟。先進先出全局區(qū)(靜態(tài)區(qū))(static)--全局變量和靜態(tài)變量。程序結束后由系統(tǒng)釋放丸冕。

文字常量區(qū)--常量字符串存放在這里耽梅。程序結束后由系統(tǒng)釋放。 ? ? ? 程序代碼區(qū)—存放函數體的二進制文件胖烛。

iOS本地數據存儲都有哪幾種方式眼姐?iOS如何實現復雜對象的存儲?

Write寫入方式:永久保存在磁盤中佩番。但是只支持NSString众旗、NSData、NSArray趟畏、NSDictionary贡歧。

NSKeyedArchiver(歸檔)采用歸檔的形式來保存數據,該數據對象需要遵守NSCoding協議赋秀,并且該對象對應的類必須提供encodeWithCoder:和initWithCoder:方法利朵。

SQLite(FMDB)注意FMDB不是數據庫, 而是一個SQLITE管理框架.

CoreData切記coredata不是數據庫, 他的存儲核心思想是托管對象, 只是咱們經常用的存儲文件為SQLite.還可以用XML, 二進制等方式.

iOS的動態(tài)性? ? 1。動態(tài)類型猎莲。 如id類型绍弟。實際上靜態(tài)類型因為其固定性和可預知性而使用得更加廣泛。靜態(tài)類型是強類型益眉,而動態(tài)類型屬于弱類型晌柬。運行時決定接收者姥份。2郭脂。 動態(tài)綁定。讓代碼在運行時判斷需要調用什么方法澈歉,而不是在編譯時展鸡。與其他面向對象語言一樣,方法調用和代碼并沒有在編譯時連接在一起埃难,而是在消息發(fā)送時才進行連接莹弊。運行時決定調用哪個方法涤久。3。 動態(tài)載入忍弛。讓程序在運行時添加代碼模塊以及其他資源响迂。用戶可以根據需要加載一些可執(zhí)行代碼和資源,而不是在啟動時就加載所有組件细疚≌嵬可執(zhí)行代碼中可以含有和程序運行時整合的新類。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末疯兼,一起剝皮案震驚了整個濱河市然遏,隨后出現的幾起案子,更是在濱河造成了極大的恐慌吧彪,老刑警劉巖待侵,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異姨裸,居然都是意外死亡秧倾,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門傀缩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來中狂,“玉大人,你說我怎么就攤上這事扑毡∥搁牛” “怎么了?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵瞄摊,是天一觀的道長勋又。 經常有香客問我,道長换帜,這世上最難降的妖魔是什么楔壤? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮惯驼,結果婚禮上蹲嚣,老公的妹妹穿的比我還像新娘。我一直安慰自己祟牲,他們只是感情好隙畜,可當我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著说贝,像睡著了一般议惰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乡恕,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天言询,我揣著相機與錄音俯萎,去河邊找鬼。 笑死运杭,一個胖子當著我的面吹牛夫啊,可吹牛的內容都是我干的。 我是一名探鬼主播辆憔,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼涮母,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了躁愿?” 一聲冷哼從身側響起叛本,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎彤钟,沒想到半個月后来候,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡逸雹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年营搅,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梆砸。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡转质,死狀恐怖,靈堂內的尸體忽然破棺而出帖世,到底是詐尸還是另有隱情休蟹,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布日矫,位于F島的核電站赂弓,受9級特大地震影響,放射性物質發(fā)生泄漏哪轿。R本人自食惡果不足惜盈魁,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窃诉。 院中可真熱鬧杨耙,春花似錦、人聲如沸飘痛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敦冬。三九已至辅搬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脖旱,已是汗流浹背堪遂。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留萌庆,地道東北人溶褪。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像践险,于是被迫代替她去往敵國和親猿妈。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,135評論 30 470
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 1,970評論 0 7
  • ———————————————回答好下面的足夠了---------------------------------...
    恒愛DE問候閱讀 1,713評論 0 4
  • 史上最全的iOS面試題及答案 iOS面試小貼士———————————————回答好下面的足夠了----------...
    Style_偉閱讀 2,346評論 0 35
  • 內存管理 簡述OC中內存管理機制巍虫。與retain配對使用的方法是dealloc還是release彭则,為什么?需要與a...
    丶逐漸閱讀 1,958評論 1 16