面南京試聽科技筆試題:
解釋性語言和編譯型語言搪花,各舉兩個例子
答:
解釋型語言:源代碼不能直接翻譯成機器語言搓谆,而是先翻譯成中間代碼刁愿,再由解釋器對中間代碼進行解釋運行绰寞;運行效率一般相對比較低,依賴解釋器酌毡,跨平臺性好克握。舉例:Python、JavaScript枷踏、Shell菩暗、Ruby、MATLAB
編譯型語言:只須編譯一次就可以把源代碼編譯成機器語言旭蠕,后面的執(zhí)行無須重新編譯停团,直接使用之前的編譯結果就可以旷坦;因此其執(zhí)行的效率比較高;但比較依賴編譯器佑稠,因此跨平臺性差一些秒梅。舉例:OC,C++舌胶,C
一個32位系統(tǒng)的機器捆蜀,其指針是多少字節(jié)的。
答:指針是多少位只要看地址總線的位數(shù)就行了幔嫂。80386以后的機子都是32的數(shù)據(jù)總線辆它。所以指針的位數(shù)就是4個字節(jié)了。
“N+1<N”在N是什么類型下成立
答:這個確實不知道履恩。
軟件測試有哪些類型锰茉,分別對應哪些項目。
答:軟件測試可以分為黑盒測試和白盒測試切心,也可分為性能測試和功能測試飒筑。
單元測試:
集成測試:
系統(tǒng)測試:
驗收測試:
回歸測試:
程序在內存中運行時分為幾個區(qū),各自用途:
答:
全局區(qū)(靜態(tài)區(qū)):存放全局變量和靜態(tài)變量绽昏,與其他變量的生命周期不同协屡,程序結束時會自動釋放這塊內容
文字常量區(qū):常量字符串存放在這個位置,也就是常量池全谤。程序結束時著瓶,系統(tǒng)自動釋放這塊區(qū)域
代碼區(qū):存放代碼,app程序會拷貝到這里啼县。
棧區(qū):存放函數(shù)的參數(shù)值材原,局部變量的值。他的生命周期較短季眷,進入作用域的時候分配占用內存余蟹,離開作用域的時候釋放占用的內存。
堆區(qū):一般是由人為控制這塊區(qū)域的內存分配和釋放子刮。在C和C++中威酒,堆內存如果忘記釋放,可能導致可用內存越來越少挺峡,這就是內存泄漏葵孤。
引用和指針的區(qū)別:
答:引用是別名,指針是地址橱赠。
指針在運行時可以改變其所指向的值尤仍,而引用一旦和某個對象綁定后就不再改變。
從內存分配上看狭姨,程序為指針變量分配內存區(qū)域宰啦,而不為引用分配內存區(qū)域苏遥,因為引用聲明時必須初始化,從而指向一個已經(jīng)存在的對象赡模。引用不能指向空值田炭。
int retVal = UIApplicationMain(argc, argv, nil, nil);是什么意思
答:初始化UIApplication對象并為它設置代理,UIApplication對象是應用程序的象征漓柑,一個UIApplication對象就代表一個應用程序教硫。 argc: 系統(tǒng)或者用戶傳入的參數(shù)個數(shù);argv: 系統(tǒng)或者用戶傳入的實際參數(shù)
ios 保存一個變量到本地的兩種方法:
答:iOS本地緩存數(shù)據(jù)的方式有五種:1.直接寫文件方式辆布,可以存儲的對象有NSString栋豫、NSArray、NSDictionary谚殊、NSData、NSNumber蛤铜,數(shù)據(jù)全部存放在一個屬性列表文件(*.plist文件)中嫩絮;2.NSUserDefaults(偏好設置),用來存儲應用設置信息围肥,文件放在perference目錄下剿干;3.歸檔操作(NSkeyedArchiver),不同于前面兩種穆刻,它可以把自定義對象存放在文件中置尔;4.coreData;5.FMDB(FMDB是iOS平臺的SQLite數(shù)據(jù)庫框架氢伟,F(xiàn)MDB以OC的方式封裝了SQLite的C語言API)
實現(xiàn)一個委托的interface:
答:
import <Foundation/Foundation.h>
// 協(xié)議定義
@protocol SampleProtocolDelegate <NSObject>
@required
- (void) processCompleted;
@end
// 協(xié)議定義結束
@interface SampleProtocol : NSObject
{
// Delegate to respond back
id <SampleProtocolDelegate> _delegate;
}
@property (nonatomic,strong) id delegate;
-(void)startSampleProcess; // Instance method
@end
當A類中的某個方法執(zhí)行到某處時榜轿,想在B類中執(zhí)行某方法,需要如何做朵锣?
答:使用通知谬盐,在B類中注冊通知,并綁定需要執(zhí)行的方法诚些,在A類的方法執(zhí)行到特定地方時飞傀,發(fā)送通知。這時诬烹,B中的方法會被執(zhí)行砸烦。
類方法創(chuàng)造的對象要不要release釋放?
答:不需要 這個對象被放到自動釋放池中
類方創(chuàng)建對象:好處:不用我們去管理內存绞吁,壞處:在類方法中創(chuàng)建的對象是autorelease的幢痘,我們并不知它什么時候回被釋放掉,有可能會造成提前釋放家破,提前釋放如果再訪問這個對象雪隧,就會野指針操作西轩;
#import和#include的區(qū)別:
答:#import是導入Objective-C頭文件的關鍵詞,#include是導入C/C++頭文件的關鍵詞脑沿;
使用#include需要處理重復引用藕畔,#import能防止同一個文件被多次包含,則不需要處理重復引用;