iOS面試-這道面試題干倒了80%以上的iOS程序員

在過(guò)去的三周面試了20個(gè)iOS程序員,只有幾個(gè)應(yīng)聘者回答對(duì)了這道面試題仪壮,沒(méi)有完整回答對(duì)憨颠,只回答對(duì)了一半,沒(méi)有一個(gè)應(yīng)聘者給出完整的答案;K!

這道面試題就是深淺拷貝

大多數(shù)面試者都會(huì)回答出淺拷貝是指針拷貝沒(méi)有開(kāi)辟了新的內(nèi)存空間缚陷,深拷貝是內(nèi)容拷貝并開(kāi)辟了新的內(nèi)存空間然后結(jié)沒(méi)下文了适篙。

然后我給出了這道題

NSString*str1=@"str1";

NSString*str2=[str1 copy];

str1 = @"test";

str1的值改變時(shí)str2的值會(huì)不會(huì)改變?大部分面試者都回答str2的值會(huì)改變

無(wú)論是3年還是5年 箫爷、6年嚷节、7年、8年的開(kāi)發(fā)者干脆利落的回答錯(cuò)誤

copy有它的特點(diǎn):

修改源對(duì)象的屬性和行為虎锚,不會(huì)影響副本對(duì)象

修改副本對(duì)象的屬性和行為硫痰,不會(huì)影響源對(duì)象


NSLog(@"\nstr1 = %@ str1P = %p \n str2 = %@ str2P = %p",str1,str1,str2,str2);/*輸出結(jié)果,修改str2 同理

? ? ?str1 = asdf str1P = 0x10776b1a0

? ? ?str2 = str1 str2P = 0x10776b180

那么NSString *str2 = [str1 copy];是不同的指針指向同一塊內(nèi)存空間,str1從新賦值后兩個(gè)內(nèi)存空間就不一樣了呢窜护?

因?yàn)閟tr2 = str1的時(shí)候效斑,兩個(gè)字符串都是不可變的,指向的同一塊內(nèi)存空間中的@"str1",是不可能變成@"test"的柄慰。所以這個(gè)時(shí)候鳍悠,為了優(yōu)化性能,系統(tǒng)沒(méi)必要另外提供內(nèi)存坐搔,只生成另外一個(gè)指針藏研,指向同一塊內(nèi)存空間就行。

但是當(dāng)你從新給str1或者str2賦值的時(shí)候概行,因?yàn)橹暗膬?nèi)容不可變蠢挡,還有互不影響的原則下,這個(gè)時(shí)候凳忙,系統(tǒng)會(huì)從新開(kāi)辟一塊內(nèi)存空間业踏。

最后

字符串的淺拷貝內(nèi)存地址沒(méi)有變化,只改變指針地址 涧卵,深拷貝開(kāi)辟新的內(nèi)存空間勤家,內(nèi)存地址改變,指針地址改變?

? 不可變對(duì)象的copy只是指針的改變柳恐,深拷貝都是內(nèi)容復(fù)制伐脖,內(nèi)存地址改變热幔,指針地址改變,但是對(duì)象內(nèi)部的元素的地址不變

對(duì)于不可變的集合類對(duì)象進(jìn)行 copy 操作讼庇,只是改變了指針绎巨,其內(nèi)存地址并沒(méi)有發(fā)生變化;進(jìn)行 mutableCopy 操作蠕啄,內(nèi)存地址發(fā)生了變化场勤,但是其中的元素內(nèi)存地址并沒(méi)有發(fā)生變化。

對(duì)于可變集合類對(duì)象歼跟,不管是進(jìn)行 copy 操作還是 mutableCopy 操作和媳,其內(nèi)存地址,指針地址都發(fā)生了變化嘹承,但是其中的元素內(nèi)存地址都沒(méi)有發(fā)生變化窗价,屬于單層深拷貝如庭。

多說(shuō)一點(diǎn)

不論多難做的事情叹卷,只要你開(kāi)始行動(dòng),困難總會(huì)一個(gè)一個(gè)慢慢化解坪它。然后你會(huì)發(fā)現(xiàn)骤竹,不管什么目標(biāo),總會(huì)有到達(dá)的那天往毡。當(dāng)你決定出發(fā)并且為之付諸實(shí)踐的時(shí)候蒙揣,最困難的那部分就已經(jīng)完成了。這個(gè)世界人潮擁擠开瞭,請(qǐng)給自己的生活多點(diǎn)信心懒震,照顧好自己,你要逼自己優(yōu)秀嗤详,優(yōu)于過(guò)去的自己个扰。每一個(gè)華麗的轉(zhuǎn)身,背后都有不為人知的心酸葱色,外表的光鮮亮麗递宅,背后心情汗水與辛勞付出,一分耕耘苍狰,一分收獲办龄,羨慕別人,不如戰(zhàn)勝自己淋昭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末俐填,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子翔忽,更是在濱河造成了極大的恐慌英融,老刑警劉巖赫段,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異矢赁,居然都是意外死亡糯笙,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)撩银,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)给涕,“玉大人,你說(shuō)我怎么就攤上這事额获」幻恚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵抄邀,是天一觀的道長(zhǎng)耘眨。 經(jīng)常有香客問(wèn)我,道長(zhǎng)境肾,這世上最難降的妖魔是什么剔难? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮奥喻,結(jié)果婚禮上偶宫,老公的妹妹穿的比我還像新娘。我一直安慰自己环鲤,他們只是感情好纯趋,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著冷离,像睡著了一般吵冒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上西剥,一...
    開(kāi)封第一講書(shū)人閱讀 50,043評(píng)論 1 291
  • 那天痹栖,我揣著相機(jī)與錄音,去河邊找鬼蔫耽。 笑死结耀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的匙铡。 我是一名探鬼主播图甜,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鳖眼!你這毒婦竟也來(lái)了黑毅?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤钦讳,失蹤者是張志新(化名)和其女友劉穎矿瘦,沒(méi)想到半個(gè)月后枕面,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缚去,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年潮秘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片易结。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡枕荞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出搞动,到底是詐尸還是另有隱情躏精,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布鹦肿,位于F島的核電站矗烛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏箩溃。R本人自食惡果不足惜瞭吃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碾篡。 院中可真熱鬧虱而,春花似錦筏餐、人聲如沸开泽。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)穆律。三九已至,卻和暖如春导俘,著一層夾襖步出監(jiān)牢的瞬間峦耘,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工旅薄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辅髓,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓少梁,卻偏偏與公主長(zhǎng)得像洛口,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凯沪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 最全的iOS面試題及答案 iOS面試小貼士 ———————————————回答好下面的足夠了-----------...
    zweic閱讀 2,695評(píng)論 0 73
  • 多線程第焰、特別是NSOperation 和 GCD 的內(nèi)部原理。運(yùn)行時(shí)機(jī)制的原理和運(yùn)用場(chǎng)景妨马。SDWebImage的原...
    LZM輪回閱讀 2,004評(píng)論 0 12
  • 史上最全的iOS面試題及答案 iOS面試小貼士———————————————回答好下面的足夠了----------...
    Style_偉閱讀 2,346評(píng)論 0 35
  • 1.寫(xiě)一個(gè)NSString類的實(shí)現(xiàn) +(id)initWithCString:(c*****t char *)nu...
    韓七夏閱讀 3,754評(píng)論 2 37
  • 姓名:鄢滔《六項(xiàng)精進(jìn)》 打卡 :4月17日 公司:南昌市金祁泰科技有限公司 使命:為全體員工的物心雙幸福付出不亞于...
    南極雪423閱讀 110評(píng)論 0 0