軟件工程師面試題
談?wù)勚羔樅鸵玫膮^(qū)別?
指針用操作符“*”和“->”,引用使用操作符“&”. 相同點(diǎn)是:指針與引用都是讓你間接引用其他對(duì)象。
區(qū)別:(1). 指針是一個(gè)實(shí)體,指向一塊內(nèi)存,它的內(nèi)容是所指內(nèi)存的地址;而引用僅是個(gè)別名,是某塊內(nèi)存的別名。
(2). 引用使用時(shí)無(wú)需解引用(*),指針需要解引用;
(3). 引用只能在定義時(shí)被初始化一次,之后不可變,“從一而終”;指針可變;
(4). 引用沒(méi)有 const類型,指針有 const類型,const 的指針不可變;
(5). 引用不能為空,指針可以為空;
(6). “sizeof 引用”得到的是所指向的變量(對(duì)象)的大小,而“sizeof 指針”得到的是指針本身(所指向的變量或?qū)ο蟮牡刂?的大小;typeid(T) == typeid(T&) 恒為真,sizeof(T) == sizeof(T&) 恒為真,但是當(dāng)引用作為成員時(shí),其占用空間與指針相同(沒(méi)找到標(biāo)準(zhǔn)的規(guī)定)。
(7). 指針和引用的自增(++)運(yùn)算意義不一樣;
你在程序代碼中用assert嗎?assert一般用于做什么?
(1) 是我常用。
(2)主要用于DEBUG下斷言,即假設(shè)一定是這樣的,否則就是錯(cuò)誤的。例如 asser ( a > 100 );
i++ 相比 ++i 哪個(gè)更高效?為什么?
答:(1)++i 比 i++效率高。
(2)i++要多調(diào)用一次類的構(gòu)造和析夠函數(shù)
C#中的委托是什么?事件是不是一種委托?
委托是指具有相同屬性(也稱具有相同的函數(shù)簽名:返回類型相同,參數(shù)類型、參數(shù)順序及參數(shù)個(gè)數(shù)相同)的函數(shù)或方法的抽象,關(guān)鍵字為delegate。主要用途是三個(gè):1)函數(shù)回調(diào);2)傳遞方法;3)事件機(jī)制
事件就是一個(gè)狹義的委托,也就是事件是一個(gè)用于事件驅(qū)動(dòng)模型的專用委托,對(duì)事件的聲明, 實(shí)際是聲明一個(gè)私有的委托變量,對(duì)委托變量進(jìn)行封裝,即委托變量加上event關(guān)鍵字后,不管其前面的訪問(wèn)修飾符是public還是private,編譯器都會(huì)將其編譯為private。
委托是一個(gè)類,它定義了方法的類型,使得可以將方法當(dāng)作另一個(gè)方法的參數(shù)來(lái)進(jìn)行傳遞,這種將方法動(dòng)態(tài)地賦給參數(shù)的做法,可以避免在程序中大量使用If-Else(Switch)語(yǔ)句,同時(shí)使得程序具有更好的可擴(kuò)展性。以委托為參數(shù)的函數(shù)具有一定的通用性。
使用委托可以將多個(gè)方法綁定到同一個(gè)委托變量,當(dāng)調(diào)用此變量時(shí)(這里用“調(diào)用”這個(gè)詞,是因?yàn)榇俗兞看硪粋(gè)方法),可以依次調(diào)用所有綁定的方法。
請(qǐng)敘述屬性與索引器的區(qū)別。
屬性:它是存取類的字段,索引器:Indexer它是特殊的屬性,用它可以使用戶像訪問(wèn)數(shù)組一樣訪問(wèn)類的`成員。
請(qǐng)?jiān)斒鲈赿otnet中類(class)與結(jié)構(gòu)(struct)的異同。
類class可以進(jìn)行實(shí)例化,它是引用類型,內(nèi)存分配在棧中,效率高,它有默認(rèn)的構(gòu)造函數(shù),有析構(gòu)函數(shù)可以使用 abstract 和 sealed, protected 修飾符。要用new進(jìn)行初始化,
結(jié)構(gòu)它是屬于值類型,內(nèi)存分配在堆中,效率低,它沒(méi)有默認(rèn)的構(gòu)造函數(shù),但是可以添加構(gòu)造函數(shù),沒(méi)有析構(gòu)函數(shù)沒(méi)有 abstract 和 sealed(因?yàn)椴荒芾^承)不能有protected 修飾符 可以不使用new 初始化,但是可以在結(jié)構(gòu)中初始化實(shí)例字段。
在C#中,string str = null與string str = “” 請(qǐng)盡量使用文字或圖象說(shuō)明其中的區(qū)別。
回答要點(diǎn):說(shuō)明詳細(xì)的空間分配。
答:string str = null是不給他分配內(nèi)存空間,而string str = “” 給它分配長(zhǎng)度為空字符串的內(nèi)存空間.
請(qǐng)?jiān)斒鲈赿otnet中類(class)與結(jié)構(gòu)(struct)的異同
答:Class可以被實(shí)例化,屬于引用類型,是分配在內(nèi)存的堆上的,Struct屬于值類型,是分配在內(nèi)存的棧上的.
簡(jiǎn)要談一下您對(duì)微軟.NET構(gòu)架下remoting和webservice兩項(xiàng)技術(shù)的理解以及實(shí)際中的應(yīng)用。
答:WS主要是可利用HTTP,穿透防火墻。而Remoting可以利用TCP/IP,二進(jìn)制傳送提高效率。
如何區(qū)別重載方法?
不同的參數(shù)類型,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序。
請(qǐng)說(shuō)明在.net中常用的幾種頁(yè)面間傳遞參數(shù)的方法,并說(shuō)出他們的優(yōu)缺點(diǎn)。
session(viewstate) 簡(jiǎn)單,但易丟失
application 全局
cookie 簡(jiǎn)單,但可能不支持,可能被偽造
input ttype="hidden" 簡(jiǎn)單,可能被偽造
url參數(shù)簡(jiǎn)單,顯示于地址欄,長(zhǎng)度有限
數(shù)據(jù)庫(kù)穩(wěn)定,安全,但性能相對(duì)弱
【軟件工程師面試題】相關(guān)文章:
筆試面試題—軟件測(cè)試工程師04-21
嵌入式軟件工程師面試題11-16
2017軟件測(cè)試面試題06-13
傲盾軟件面試題11-29
廣州某公司軟件工程師面試題目11-26
2016嵌入式軟件開(kāi)發(fā)工程師面試題09-24
楓葉軟件面試題與答案11-16
品恩科技軟件測(cè)試面試題12-06
Java工程師面試題11-09