相關(guān)面試題2

1、git add 和 git commit 的區(qū)別
git add   # 從工作區(qū)被提交到暫存區(qū),但此時(shí)文件并沒(méi)有真正進(jìn)入到版本庫(kù)當(dāng)中墅茉,文件目前只處于一個(gè)中間狀態(tài)伟阔。
git commit  # 這個(gè)命令將處于中間狀態(tài)的文件(暫存區(qū)的文件)提交到版本庫(kù)中,這時(shí)才算真正完成了一次提交過(guò)程。
2筹淫、JS交互的原理是什么
# native直接調(diào)用js的方法:
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;

# JS直接調(diào)用native的方法
其實(shí),UIWebView并沒(méi)有提供JS調(diào)用native的方法呢撞,但是我們卻可以通過(guò)間接的方法來(lái)實(shí)現(xiàn)這樣的操作损姜。總結(jié)看來(lái)殊霞,間接實(shí)現(xiàn)的方式有三種: 
1. 在代理方法攔截Url,識(shí)別判斷 
2. Block傳值,實(shí)現(xiàn)JS調(diào)用OC 
3. 模型實(shí)現(xiàn)摧阅,JS直接用oc方法名來(lái)調(diào)用oc方法 
4. 使用第三方工具類(lèi):WebViewJavascriptBridge

鏈接:http://www.reibang.com/p/bdd340b46076
3、為什么說(shuō)HTTP請(qǐng)求是短連接绷蹲,怎樣才能實(shí)現(xiàn)HTTP長(zhǎng)連接
# 短連接
在HTTP/1.0中棒卷,默認(rèn)使用的是短連接。
也就是說(shuō)祝钢,瀏覽器和服務(wù)器每進(jìn)行一次HTTP操作比规,就建立一次連接,但任務(wù)結(jié)束就中斷連接拦英。
如果客戶(hù)端瀏覽器訪(fǎng)問(wèn)的某個(gè)HTML或其他類(lèi)型的 Web頁(yè)中包含有其他的Web資源苞俘,如JavaScript文件、圖像文件龄章、CSS文件等吃谣;當(dāng)瀏覽器每遇到這樣一個(gè)Web資源,就會(huì)建立一個(gè)HTTP會(huì)話(huà)做裙。
# 長(zhǎng)連接
但從 HTTP/1.1起岗憋,默認(rèn)使用長(zhǎng)連接,用以保持連接特性锚贱。使用長(zhǎng)連接的HTTP協(xié)議仔戈,會(huì)在響應(yīng)頭有加入這行代碼:
Connection:keep-alive
客戶(hù)端的長(zhǎng)連接不可能無(wú)限期的拿著,會(huì)有一個(gè)超時(shí)時(shí)間,服務(wù)器有時(shí)候會(huì)告訴客戶(hù)端超時(shí)時(shí)間监徘,譬如:
Keep-Alive: timeout=20晋修,表示這個(gè)TCP通道可以保持20秒。
另外還可能有max=XXX凰盔,表示這個(gè)長(zhǎng)連接最多接收XXX次請(qǐng)求就斷開(kāi)墓卦。
對(duì)于客戶(hù)端來(lái)說(shuō),如果服務(wù)器沒(méi)有告訴客戶(hù)端超時(shí)時(shí)間也沒(méi)關(guān)系户敬,
服務(wù)端可能主動(dòng)發(fā)起四次握手?jǐn)嚅_(kāi)TCP連接落剪,
客戶(hù)端能夠知道該TCP連接已經(jīng)無(wú)效;
另外TCP還有心跳包來(lái)檢測(cè)當(dāng)前連接是否還活著尿庐,方法很多忠怖,避免浪費(fèi)資源。
在使用長(zhǎng)連接的情況下抄瑟,當(dāng)一個(gè)網(wǎng)頁(yè)打開(kāi)完成后凡泣,客戶(hù)端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的 TCP連接不會(huì)關(guān)閉,
如果客戶(hù)端再次訪(fǎng)問(wèn)這個(gè)服務(wù)器上的網(wǎng)頁(yè)皮假,會(huì)繼續(xù)使用這一條已經(jīng)建立的連接问麸。
Keep-Alive不會(huì)永久保持連接,它有一個(gè)保持時(shí)間钞翔,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個(gè)時(shí)間。實(shí)現(xiàn)長(zhǎng)連接要客戶(hù)端和服務(wù)端都支持長(zhǎng)連接席舍。
# HTTP協(xié)議的長(zhǎng)連接和短連接布轿,實(shí)質(zhì)上是TCP協(xié)議的長(zhǎng)連接和短連接。
容易混淆的概念——TCP的keep alive和HTTP的Keep-alive
TCP的keep alive是檢查當(dāng)前TCP連接是否活著来颤;HTTP的Keep-alive是要讓一個(gè)TCP連接活久點(diǎn)汰扭。它們是不同層次的概念。
TCP keep alive的表現(xiàn):當(dāng)一個(gè)連接“一段時(shí)間”沒(méi)有數(shù)據(jù)通訊時(shí)福铅,一方會(huì)發(fā)出一個(gè)心跳包(Keep Alive包)萝毛,如果對(duì)方有回包則表明當(dāng)前連接有效,繼續(xù)監(jiān)控滑黔。
這個(gè)“一段時(shí)間”可以設(shè)置笆包。
# 長(zhǎng)連接和短連接的優(yōu)點(diǎn)和缺點(diǎn)
長(zhǎng)連接:長(zhǎng)連接可以省去較多的TCP建立和關(guān)閉的操作,減少浪費(fèi)略荡,節(jié)約時(shí)間庵佣。對(duì)于頻繁請(qǐng)求資源的客戶(hù)來(lái)說(shuō),較適用長(zhǎng)連接汛兜。
Client 與 server 之間的連接如果一直不關(guān)閉的話(huà)巴粪,會(huì)存在一個(gè)問(wèn)題,隨著客戶(hù)端連接越來(lái)越多,server早晚有扛不住的時(shí)候
短連接:短連接對(duì)于服務(wù)器來(lái)說(shuō)管理較為簡(jiǎn)單肛根,存在的連接都是有用的連接辫塌,不需要額外的控制手段。
但如果客戶(hù)請(qǐng)求頻繁派哲,將在 TCP 的建立和關(guān)閉操作上浪費(fèi)時(shí)間和帶寬臼氨。
4、Object-C Category和Extension的區(qū)別
# Category
用于給class及其subclass添加新的方法
有自己?jiǎn)为?dú)的 .h 和 .m 文件
用于添加新方法狮辽,而不能添加新屬性(property)
#  Extension
Extension常被稱(chēng)為是匿名的Category
用于給類(lèi)添加新方法一也,但只作用于原始類(lèi),不作用于subclass
只能對(duì)有implementation源代碼的類(lèi)寫(xiě)Extension喉脖,對(duì)于沒(méi)有implementation源代碼的類(lèi)椰苟,比如framework class,是不可以的
Extension可以給原始類(lèi)添加新方法树叽,以及新屬性

5舆蝴、swift中Class和結(jié)構(gòu)體的區(qū)別
* 類(lèi)是引用類(lèi)型,結(jié)構(gòu)體是值類(lèi)型,不能使用===/!== 判斷地址
* 類(lèi)可以繼承,結(jié)構(gòu)體不能繼承
* 結(jié)構(gòu)體沒(méi)有deinit 方法
* 創(chuàng)建結(jié)構(gòu)體要比創(chuàng)建對(duì)象速度快
* 創(chuàng)建相同屬性的結(jié)構(gòu)體比類(lèi)更加節(jié)省內(nèi)存
* 在數(shù)據(jù)量比較大的排序中,結(jié)構(gòu)體排序的速度比較慢,因?yàn)榻Y(jié)構(gòu)體是值類(lèi)型,排序的時(shí)候,需要大量的賦值運(yùn)算。而對(duì)象只需要交換地址即可题诵。
4洁仗、多線(xiàn)程處理都具體用在了什么地方
* 多圖片上傳使用到了 NSOperationQueue + NSBlockOperation
* dispatch_async(dispatch_get_main_queue(), ^{});用在了下載視頻、音樂(lè)下載性锭、直播IM等功能上更新UI
* NSThread用在了JS交互上赠潦,用來(lái)判斷是否是主線(xiàn)程 if ([[NSThread currentThread] isMainThread])
5、DB-ORM框架設(shè)計(jì)
* 所謂ORM草冈,即對(duì)象-關(guān)系映射(Object/Relation Mapping)她奥,方便我們以操作對(duì)象的方式去操作關(guān)系型數(shù)據(jù)庫(kù)。
* 將一個(gè)SQL語(yǔ)句以面向?qū)ο蠓绞竭M(jìn)行設(shè)計(jì)怎棱,構(gòu)建者模式動(dòng)態(tài)構(gòu)建表哩俭。
* 共包括五個(gè)模塊,分別是數(shù)據(jù)庫(kù)連接對(duì)象拳恋、構(gòu)建SQL語(yǔ)句凡资、構(gòu)建創(chuàng)建表、操作表谬运、附加功能(排序隙赁、修改重命名、條件篩選梆暖、增加字段鸳谜、刪除字段等)
* 整個(gè)框架設(shè)計(jì)基于構(gòu)建者模式,迭代器模式遍歷表字段

6式廷、響應(yīng)式編程框架設(shè)計(jì)
* 響應(yīng)式編程可以加深你代碼抽象的程度咐扭,讓你可以更專(zhuān)注于定義與事件相互依賴(lài)的業(yè)務(wù)邏輯,而不是把大量精力放在實(shí)現(xiàn)細(xì)節(jié)上,同時(shí)蝗肪,使用響應(yīng)式編程還能讓你的代碼變得更加簡(jiǎn)潔袜爪。
* 特別對(duì)于現(xiàn)在流行的webapps和mobile apps,它們的 UI 事件與數(shù)據(jù)頻繁地產(chǎn)生交互薛闪,在開(kāi)發(fā)這些應(yīng)用時(shí)使用響應(yīng)式編程的優(yōu)點(diǎn)將更加明顯辛馆。
7、MVP框架設(shè)計(jì)
* MVP分為Model豁延、View昙篙、Presenter三層:
* Model作為模型層,在MVP中更偏向于功能的模型诱咏,負(fù)責(zé)對(duì)數(shù)據(jù)的存取操作苔可,例如對(duì)數(shù)據(jù)庫(kù)的讀寫(xiě),網(wǎng)絡(luò)的數(shù)據(jù)的請(qǐng)求等袋狞;
* View作為視圖層焚辅,代表著布局和控件;
* Presenter作為主持層苟鸯,也就是主持著View與Model之間的交互同蜻。
* MVP框架中,斷絕了View與Model之間的直接交互早处,成功的減少了controller中的臃腫代碼湾蔓,使得controller能夠保持整潔清晰。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末砌梆,一起剝皮案震驚了整個(gè)濱河市默责,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌么库,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甘有,死亡現(xiàn)場(chǎng)離奇詭異诉儒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)亏掀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)忱反,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人滤愕,你說(shuō)我怎么就攤上這事温算。” “怎么了间影?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵注竿,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)巩割,這世上最難降的妖魔是什么裙顽? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮宣谈,結(jié)果婚禮上愈犹,老公的妹妹穿的比我還像新娘。我一直安慰自己闻丑,他們只是感情好漩怎,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著嗦嗡,像睡著了一般勋锤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酸钦,一...
    開(kāi)封第一講書(shū)人閱讀 52,696評(píng)論 1 312
  • 那天怪得,我揣著相機(jī)與錄音,去河邊找鬼卑硫。 笑死徒恋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的欢伏。 我是一名探鬼主播入挣,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼硝拧!你這毒婦竟也來(lái)了径筏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤障陶,失蹤者是張志新(化名)和其女友劉穎滋恬,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體抱究,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恢氯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鼓寺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勋拟。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖妈候,靈堂內(nèi)的尸體忽然破棺而出敢靡,到底是詐尸還是另有隱情,我是刑警寧澤苦银,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布啸胧,位于F島的核電站赶站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏吓揪。R本人自食惡果不足惜亲怠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望柠辞。 院中可真熱鬧团秽,春花似錦、人聲如沸叭首。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)焙格。三九已至图毕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間眷唉,已是汗流浹背予颤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冬阳,地道東北人蛤虐。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像肝陪,于是被迫代替她去往敵國(guó)和親驳庭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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