基礎(chǔ)筆試題集錦(一)

基礎(chǔ)的東西往往很容易被忽視,但是,越到后面會(huì)發(fā)現(xiàn)越重要窘拯,所謂地基。

1 請(qǐng)談?wù)勀銓?duì)面向?qū)ο缶幊痰睦斫猓?/h6>
2 OC中是否私有方法和私有成員變量坝茎?
3 Object-c的類(lèi)可以多重繼承么? 可以實(shí)現(xiàn)多個(gè)接口么?
4#import 跟#include 有什么區(qū)別涤姊,@class呢, #import<> #import”有什么區(qū)別?
5全局變量,局部變量嗤放,成員變量(實(shí)例變量/屬性)的區(qū)別思喊?
6如何聲明一個(gè)delegate屬性,為什么次酌?
7常見(jiàn)的object-c的數(shù)據(jù)類(lèi)型有那些恨课, 和C的基本數(shù)據(jù)類(lèi)型有什么區(qū)別?
8 OC中id岳服、NSObject *剂公、instancetype的區(qū)別?
9 OC中是否支持垃圾回收機(jī)制吊宋?

1 請(qǐng)談?wù)勀銓?duì)面向?qū)ο缶幊痰睦斫猓?/h5>

面向?qū)ο缶幊痰母拍钍谴笠粚W(xué)C++知道的纲辽,而與之對(duì)應(yīng)的就是C語(yǔ)言面向過(guò)程的編程語(yǔ)言。找了一下資料整理一下璃搜。

(1)什么是面向?qū)ο缶幊?

a programming paradigm that uses "objects" – data structures consisting of datafields and methods together with their interactions – to design applications and computer programs.(Wikipedia)

是一種編程范式, 它將對(duì)象作為問(wèn)題空間的基本元素, 利用對(duì)象和對(duì)象之間的相互作用來(lái)設(shè)計(jì)程序.

(2)三大特性(在OC里面的體現(xiàn))
  • 封裝:類(lèi):類(lèi)就是封裝了數(shù)據(jù)和方法
  • 繼承:繼承父類(lèi)所有的屬性和方法 比如UITableView 繼承UIScrollView 的所有屬性和方法拖吼,包括代理方法。
  • 多態(tài):(Polymorphism)
    多態(tài)的普通定義來(lái)源于它的希臘詞根 – “Poly” 表示很多这吻, “Morph” 表示形式吊档。
    在計(jì)算機(jī)科學(xué)中,這個(gè)詞有特別的定義唾糯,依據(jù) Free Online Dictionary of Computing網(wǎng)站的解釋?zhuān)阂粋€(gè)變量怠硼,它在可能指向一個(gè)對(duì)象,這個(gè)對(duì)象的類(lèi)在編譯時(shí)還未知移怯,但是會(huì)在運(yùn)行時(shí)根據(jù)實(shí)際指向的類(lèi)執(zhí)行相應(yīng)的反饋拒名。
    這些定義最終可以歸結(jié)為“一個(gè)對(duì)象同時(shí)可以成為不同的事物”。
2 OC中是否私有方法和私有成員變量芋酌?

先表明下觀(guān)點(diǎn):沒(méi)有絕對(duì)的私有變量和方法。
如果要聲明私有方法和私有變量雁佳,可以在.m文件里面的匿名類(lèi)別中聲明脐帝,從而使方法和變量在該類(lèi)中使用同云,不暴露在外部。

3 Object-c的類(lèi)可以多重繼承么? 可以實(shí)現(xiàn)多個(gè)接口么?

Object-c的類(lèi)不可以多重繼承堵腹,可以用代理和協(xié)議實(shí)現(xiàn)多重繼承炸站。 可以實(shí)現(xiàn)多個(gè)接口,通過(guò)實(shí)現(xiàn)多個(gè)接口疚顷。

4#import 跟#include 有什么區(qū)別旱易,@class呢, #import<> #import”有什么區(qū)別?
 #import是Objective-C導(dǎo)入頭文件的關(guān)鍵字, 可以避免文件重復(fù)導(dǎo)入腿堤,相當(dāng)于#include和#pragma once阀坏。
 #include是C/C++導(dǎo)入頭文件的關(guān)鍵字,無(wú)法避免文件重復(fù)導(dǎo)入。
 @class簡(jiǎn)易聲明某個(gè)類(lèi)笆檀,當(dāng)執(zhí)行時(shí)忌堂,才去查看類(lèi).m文件。
 #import<>用來(lái)包含系統(tǒng)的頭文件帶靜態(tài)庫(kù)的文件酗洒。
 #import用來(lái)包含非帶靜態(tài)庫(kù)的文件士修,也就是一般情況下自己創(chuàng)建的文件。
5全局變量樱衷,局部變量棋嘲,成員變量(實(shí)例變量/屬性)的區(qū)別?

變量 聲明 存儲(chǔ)空間 作用域
全局變量: 方法體外 數(shù)據(jù)區(qū) 整個(gè)類(lèi)中
局部變量: 方法體內(nèi) 棧區(qū) 函數(shù)體內(nèi)
成員變量: @property 堆區(qū)

注意:作用域矩桂,生命周期 是不同的沸移。
實(shí)參,形參問(wèn)題耍鬓。

6如何聲明一個(gè)delegate屬性阔籽,為什么?

聲明屬性的時(shí)候牲蜀,在A(yíng)CR下使用weak笆制,在MRC下使用assign。二者都是為了防止循環(huán)引用涣达。

 @property(nonatomic,weak)id<CustomViewDelegate>delegate;
7常見(jiàn)的object-c的數(shù)據(jù)類(lèi)型有那些在辆, 和C的基本數(shù)據(jù)類(lèi)型有什么區(qū)別?

Objective-c的數(shù)據(jù)類(lèi)型有NSArray度苔,NSDictionary,NSData,NSNumber等匆篓,這些都是class.創(chuàng)建后便是對(duì)象而C語(yǔ)言的基本數(shù)據(jù)類(lèi)型int,只是一定字節(jié)的內(nèi)存空間寇窑,用于存放數(shù)值. NSInteger是基本數(shù)據(jù)類(lèi)型鸦概,并不是NSNumber的子類(lèi),當(dāng)然也不是NSObject的子類(lèi)甩骏。 NSInteger是基本數(shù)據(jù)類(lèi)型Int或者Long的別名(NSInteger的定義typedef long NSInteger)窗市。它的區(qū)別在于先慷,NSInteger會(huì)根據(jù)系統(tǒng)是32位還是64位來(lái)決定是本身是int還是long.

8 OC中id、NSObject *咨察、instancetype的區(qū)別论熙?
  • NSObject *

NSObject確定對(duì)象類(lèi)型是繼承于NSObject。很常用摄狱。

  • id
    可以指向任意類(lèi)型的objcetive-c的對(duì)象脓诡,聲明的對(duì)象具有運(yùn)行時(shí)的特性。并不一定是NSObject對(duì)象媒役。對(duì)于一些不能進(jìn)行類(lèi)型檢查或者不想檢查的地方祝谚,可以使用id,經(jīng)常會(huì)聲明delegate為id類(lèi)型刊愚,在運(yùn)行的時(shí)候載使用respondToSelector:檢查踊跟。
  • instancetype
    stack overflow上面所說(shuō):“Use instancetype whenever it's appropriate, which is whenever aclass returns an instance of that same class.”
    在instancetype有效的情況下,應(yīng)該盡量去使用instancetype鸥诽。
9 OC中是否支持垃圾回收機(jī)制商玫?

OC語(yǔ)言有垃圾回收機(jī)制,是在0c2.0引入的牡借。但是iOS平臺(tái)不支持拳昌。iOS開(kāi)發(fā)只支持手動(dòng)內(nèi)存管理與ARC,Mac開(kāi)發(fā)支持GC垃圾回收機(jī)制钠龙,10.8之后棄用了GC炬藤,推薦使用ARC。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碴里,一起剝皮案震驚了整個(gè)濱河市沈矿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咬腋,老刑警劉巖羹膳,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異根竿,居然都是意外死亡陵像,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)寇壳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)醒颖,“玉大人,你說(shuō)我怎么就攤上這事壳炎∨⑶福” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)腰耙。 經(jīng)常有香客問(wèn)我偿洁,道長(zhǎng),這世上最難降的妖魔是什么沟优? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮睬辐,結(jié)果婚禮上挠阁,老公的妹妹穿的比我還像新娘。我一直安慰自己溯饵,他們只是感情好侵俗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著丰刊,像睡著了一般隘谣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上啄巧,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天寻歧,我揣著相機(jī)與錄音,去河邊找鬼秩仆。 笑死码泛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的澄耍。 我是一名探鬼主播噪珊,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼齐莲!你這毒婦竟也來(lái)了痢站?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤选酗,失蹤者是張志新(化名)和其女友劉穎阵难,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體星掰,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡多望,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氢烘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怀偷。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖播玖,靈堂內(nèi)的尸體忽然破棺而出椎工,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布维蒙,位于F島的核電站掰吕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏颅痊。R本人自食惡果不足惜殖熟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望斑响。 院中可真熱鬧菱属,春花似錦、人聲如沸舰罚。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)营罢。三九已至赏陵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間饲漾,已是汗流浹背蝙搔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留能颁,地道東北人杂瘸。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像伙菊,于是被迫代替她去往敵國(guó)和親败玉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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