版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
培訓(xùn)班常見(jiàn)問(wèn)題(作者:張孝祥):1.你們會(huì)帶著我們做完整個(gè)完整的項(xiàng)目嗎?答:小的項(xiàng)目會(huì),大的項(xiàng)目則不也許,1.眾所周知,隨便拿出一個(gè)中檔大小的項(xiàng)目,也需要好多個(gè)純熟的開(kāi)發(fā)人員開(kāi)發(fā)好多個(gè)月才干勉強(qiáng)做得差不多,培訓(xùn)期間沒(méi)有這么多時(shí)間,并且你還要先學(xué)會(huì)了很多技術(shù)后才干開(kāi)始做項(xiàng)目。2.一個(gè)項(xiàng)目中的很多東西都是反復(fù)性的工作量的累積,技術(shù)方面都大同小異。做一個(gè)項(xiàng)目就好比蓋一座樓房,只要告訴你整個(gè)樓房的整體結(jié)構(gòu),然后帶著你蓋上一間兩間房子,其他剩下的幾百間房子,老師想繼續(xù)蓋給你看,或者讓你自己蓋剩下的房間,你肯定也不樂(lè)意吧。以后有的是練手的機(jī)會(huì),拿著人家發(fā)給你的工資,你再去做這些反復(fù)性的工作也不遲,豈不是更好!2.業(yè)務(wù)重要?還是編碼實(shí)戰(zhàn)更重要?答:1.對(duì)軟件公司來(lái)說(shuō),兩者都很重要,有的項(xiàng)目是業(yè)務(wù)為重心,有的則是以技術(shù)作為核心;以業(yè)務(wù)為重心的項(xiàng)目與做鞋差不多,沒(méi)有多大技術(shù)含量和壁壘,只有積累了一定的經(jīng)驗(yàn),誰(shuí)都可以做,利潤(rùn)很薄,例如大多數(shù)管理系統(tǒng),靠的是人海戰(zhàn)術(shù)和時(shí)間糾纏;以技術(shù)為核心的項(xiàng)目則很有技術(shù)壁壘,不是誰(shuí)都能做的,利潤(rùn)率很高,例如,360殺毒軟件、baidu,qq,迅雷下載,大型bbs項(xiàng)目和淘寶這樣的電子商務(wù)網(wǎng)站。2.對(duì)程序員來(lái)說(shuō),編碼實(shí)戰(zhàn)更重要,業(yè)務(wù)則不算什么!程序員和軟件公司的工作就是要把用戶(hù)的需求和業(yè)務(wù)變成代碼,即為人作嫁,一開(kāi)始,需求和業(yè)務(wù)都在用戶(hù)那里,用戶(hù)最懂業(yè)務(wù),你不用了解業(yè)務(wù),你的任務(wù)就是了解用戶(hù)的業(yè)務(wù)后編寫(xiě)代碼,在開(kāi)始做項(xiàng)目前,用戶(hù)會(huì)把業(yè)務(wù)告訴給你的。一個(gè)軟件公司歷來(lái)都不是只做自己熟悉業(yè)務(wù)的項(xiàng)目,而是來(lái)了業(yè)務(wù)不熟悉的項(xiàng)目機(jī)會(huì),肯定也會(huì)沖上去做,軟件公司通常都是在做自己以前沒(méi)做過(guò)的項(xiàng)目,即做以前不了解業(yè)務(wù)的項(xiàng)目,只有項(xiàng)目做完了才完全熟悉了業(yè)務(wù),這才叫做項(xiàng)目,否則就成了賣(mài)產(chǎn)品了,所以,軟件工程里說(shuō)的需求調(diào)研和理解業(yè)務(wù)的過(guò)程,也是在從側(cè)面說(shuō)明,程序員是在接到項(xiàng)目之后才開(kāi)始了解其業(yè)務(wù)的,而在此之前,對(duì)業(yè)務(wù)可以是完全不懂的。3.是培訓(xùn)內(nèi)容和信息量大好?還是培訓(xùn)內(nèi)容少而精的好?答:內(nèi)容和信息量大培訓(xùn)課程體系,對(duì)大多人來(lái)說(shuō)是更合適的。程序員做的工作總是在變化的,沒(méi)有一成不變的工作,為了適應(yīng)這種變化,你的知識(shí)面必須很廣泛。假如你學(xué)的知識(shí)內(nèi)容很少,即使你把這些內(nèi)容練的滾瓜爛熟了,除非你出去找的一份工作正好就是你以前練習(xí)的那些東西,這時(shí)候會(huì)讓人感覺(jué)你比誰(shuí)都厲害,但這種千載難逢的好事怎么就被你碰上了呢?軟件開(kāi)發(fā)畢竟不同于刷盤(pán)子,不是在反復(fù)干一件事情。軟件開(kāi)發(fā)的工作總是要面臨不同的需求和問(wèn)題,假如培訓(xùn)課程的內(nèi)容和信息量很大,即使由于時(shí)間關(guān)系,你暫時(shí)沒(méi)有完全消化和純熟這么多內(nèi)容,但是,你在工作中不管碰到什么新問(wèn)題,都有那么一點(diǎn)點(diǎn)印象,知道大約的解決辦法和思緒,你就可以慢慢地通過(guò)查閱資料和最終解決這個(gè)問(wèn)題,軟件開(kāi)發(fā)的工作本來(lái)就是這么一種現(xiàn)狀,假如你學(xué)的知識(shí)量很少,一旦碰到了新問(wèn)題,你完全就沒(méi)有了思緒,完全無(wú)從下手,這是何等痛苦,只有灰溜溜走人的份了吧。4.我們培養(yǎng)的不是IT蟻?zhàn)搴停桑悦窆は瓤纯碔T蟻?zhàn)搴虸T民工的悲慘命運(yùn)吧!()搜素程序員的悲哀,尚有更多辛酸的故事,但是,我并不同情他們,我只是說(shuō)他們自己無(wú)能!程序員這個(gè)職業(yè)能發(fā)明出許數(shù)年輕的富翁,不靠父母不靠天,尚有那個(gè)職業(yè)這么有機(jī)會(huì)和誘惑呢。但是,程序員毀壞身體是真,可是,不讓你做程序員,你去打游戲,聊QQ不也照樣壞身體嗎?.net不只是有ASP.net+SQLServer這套,我們不培養(yǎng)IT蟻?zhàn)?,假如你不想?yún)挓┸浖_(kāi)發(fā),那就不能只學(xué)ASP.net+SQLServer,這個(gè)沒(méi)有太多技術(shù)含量的單一純熟工種。別的培訓(xùn)機(jī)構(gòu)培養(yǎng)的是技術(shù)單一的純熟技工,傳智播客培養(yǎng)的是具有很強(qiáng)學(xué)習(xí)和解決問(wèn)題能力的技術(shù)高手和未來(lái)技術(shù)經(jīng)理。很多工廠(chǎng)說(shuō),清華畢業(yè)的學(xué)生剛進(jìn)工廠(chǎng)時(shí)的動(dòng)手操作不如技校畢業(yè)的學(xué)生純熟,但過(guò)一段時(shí)間后,清華學(xué)生則能解決工廠(chǎng)生成過(guò)程出現(xiàn)中的各種新問(wèn)題和弊端,甚至能提出創(chuàng)新和發(fā)明,后勁十足,由于清華培養(yǎng)的就不是一個(gè)單一工種的純熟工人,而是知識(shí)全面和具有創(chuàng)新能力的高級(jí)工程師。別的機(jī)構(gòu)和傳智播客培養(yǎng)出來(lái)的學(xué)生差別好比如此。這套面試題重要目的是幫助那些還沒(méi)有.Net軟件開(kāi)發(fā)實(shí)際工作經(jīng)驗(yàn),而正在努力尋找.Net軟件開(kāi)發(fā)工作的朋友在筆試時(shí)更好地贏(yíng)得筆試和面試。由于這套面試題涉及的范圍很泛,很廣,很雜,大家不也許一天兩天就看完和學(xué)完這套面試寶典,即使你已經(jīng)學(xué)過(guò)了有關(guān)的技術(shù),那么至少也需要一個(gè)月的時(shí)間才干消化和掌握這套面試寶典,所以,大家應(yīng)當(dāng)早作準(zhǔn)備,從拿到這套面試寶典之日起,就要堅(jiān)持在天天閑暇之余學(xué)習(xí)其中幾道題目,日積月累,等到出去面試時(shí),一切都水到渠成,面試時(shí)就自然會(huì)游刃有余了?;卮饐?wèn)題的思緒:先正面敘述一些基本的核心知識(shí),然后描述一些特殊的東西,最后再來(lái)一些錦上添花的東西。要注意有些不是錦上添花,而是畫(huà)蛇添足的東西,不要隨便寫(xiě)上。把答題像寫(xiě)書(shū)同樣寫(xiě)。我要回答一個(gè)新技術(shù)的問(wèn)題大約思緒和環(huán)節(jié)是:我們想干什么,干這個(gè)碰到了什么問(wèn)題,現(xiàn)在用什么方式來(lái)解決。其實(shí)我們講課也是這樣一個(gè)思緒。例如,講ajax時(shí),我們希望不改變本來(lái)的整個(gè)網(wǎng)頁(yè),而只是改變網(wǎng)頁(yè)中的局部?jī)?nèi)容,例如,用戶(hù)名校驗(yàn),級(jí)聯(lián)下拉列表,下拉樹(shù)狀菜單。用傳統(tǒng)方式,就是瀏覽器自己直接向服務(wù)器發(fā)請(qǐng)求,服務(wù)器返回新頁(yè)面會(huì)蓋掉老頁(yè)面,這樣就不流暢了。答題時(shí),先答是什么,再答有什么作用和要注意什么(這部分最重要,展現(xiàn)自己的心得)答案的段落分別,層次分明,條理清楚都非常重要,從這些表面的東西也可以看出一個(gè)人的習(xí)慣、辦事風(fēng)格、條理等。要講你做出答案的思緒過(guò)程,或者說(shuō)你記住答案的思想都寫(xiě)下來(lái)。把答題想著是辯論賽。答題就是給別人講道理、擺事實(shí)。答題不局限于什么格式和形式,就是要將自己的學(xué)識(shí)展現(xiàn)出來(lái)!別由于人家題目本來(lái)就模棱兩可,你就心里膽怯和沒(méi)底氣了,不敢回答了。你要大膽地指出對(duì)方題目很模糊和你的觀(guān)點(diǎn),不要把面試官想得有多高,其實(shí)他和你就是差不多的,你想想,假如他把你招進(jìn)去了,你們以后就是同事了,可不是差不多的嗎?關(guān)于就業(yè)薪水,假如你是應(yīng)屆生,那不能要高工資,要拿高工資,就去中關(guān)村!少數(shù)人基礎(chǔ)的確很好,在校期間的確又做過(guò)一些項(xiàng)目,那仍然是可以要到相對(duì)高的工資的。初級(jí)程序員薪水:2023-4500中級(jí)程序員薪水:4000-7000高級(jí)程序員薪水:7000以上公司招聘程序員更看重的要用到的編碼技術(shù)、而不是那些業(yè)務(wù)不太相關(guān)的所謂項(xiàng)目經(jīng)歷:1.公司想招什么樣的人2.公司面試會(huì)問(wèn)什么,.3.簡(jiǎn)歷怎么寫(xiě)4如何達(dá)成簡(jiǎn)歷上的標(biāo)準(zhǔn)(培訓(xùn)中心教項(xiàng)目的目的)對(duì)于一些公司接到了一些項(xiàng)目,想招聘一些初中級(jí)的程序員過(guò)來(lái)幫助寫(xiě)代碼,完畢這個(gè)項(xiàng)目,你更看重的是他的專(zhuān)業(yè)技術(shù)功底,還是以前做過(guò)幾個(gè)項(xiàng)目的經(jīng)歷呢?我們先排除掉那些編碼技術(shù)功底好,又正好做過(guò)相似項(xiàng)目的情況,事實(shí)上,這種魚(yú)和熊掌兼得的情況并不常見(jiàn)。其實(shí)公司很清楚,只要招聘進(jìn)來(lái)的人技術(shù)真的很明白,那他什么項(xiàng)目都可以做出來(lái),公司招人不是讓你去反復(fù)做你以前的項(xiàng)目,而是做一個(gè)新項(xiàng)目,業(yè)務(wù)方面,你只要進(jìn)了項(xiàng)目團(tuán)隊(duì),自然就能掌握。所以,大多數(shù)招聘單位在招聘那些編碼級(jí)別的程序員時(shí)也沒(méi)指望能招聘到做過(guò)類(lèi)似項(xiàng)目的人,也不會(huì)刻意去找做過(guò)類(lèi)似項(xiàng)目的人,用人單位也不是想把你招進(jìn),然后把你以前做過(guò)的項(xiàng)目重做一遍,所以,用人單位更看重招進(jìn)來(lái)的人對(duì)要用到的編碼技術(shù)的功底到底如何,技術(shù)扎實(shí)不扎實(shí),項(xiàng)目則只要跟著開(kāi)發(fā)團(tuán)隊(duì)走,自然就沒(méi)問(wèn)題。除非是一些非常專(zhuān)業(yè)的行業(yè),要招聘特別高級(jí)的開(kāi)發(fā)人員和系統(tǒng)分析師,招聘單位才特別注重他的項(xiàng)目經(jīng)驗(yàn)和行業(yè)經(jīng)驗(yàn),要去找到行業(yè)高手,公司才關(guān)心項(xiàng)目和與你聊項(xiàng)目的細(xì)節(jié),這樣的人通常都不是通過(guò)常規(guī)招聘渠道去招聘進(jìn)來(lái)的,而是通過(guò)各種手段挖過(guò)來(lái)的,這情況不再我今天要討論的范圍中。技術(shù)學(xué)得明白不明白,人家?guī)讉€(gè)問(wèn)題就把你的深淺問(wèn)出來(lái)了,只要問(wèn)一些具體的技術(shù)點(diǎn),就很容易看出你是真懂還是假懂,很容看出你的技術(shù)深度和實(shí)力,所以,技術(shù)是來(lái)不得半點(diǎn)虛假的,必須扎扎實(shí)實(shí)。由于項(xiàng)目的種類(lèi)繁多,涉及到現(xiàn)實(shí)生活中的各行各業(yè),什么五花八門(mén)的業(yè)務(wù)都有,例如,酒店房間預(yù)定管理,公司車(chē)輛調(diào)度管理,學(xué)校課程教室管理,超市進(jìn)銷(xiāo)存管理,知識(shí)內(nèi)容管理,等等……成千上萬(wàn)等等,但是,不管是什么項(xiàng)目,采用的無(wú)非都是我們學(xué)習(xí)的那些目前流行和常用的技術(shù)。技術(shù)好、經(jīng)驗(yàn)豐富,則項(xiàng)目做出來(lái)的效率高些,程序更穩(wěn)定和更容易維護(hù)些;技術(shù)差點(diǎn),碰碰磕磕最后也能把項(xiàng)目做出來(lái),無(wú)非是做的周期長(zhǎng)點(diǎn)、返工的次數(shù)多點(diǎn),程序代碼寫(xiě)得差些,用的技術(shù)笨拙點(diǎn)。假如一個(gè)人不是完完全全做過(guò)某個(gè)項(xiàng)目,他是不太關(guān)心該項(xiàng)目的業(yè)務(wù)的,對(duì)其中的一些具體細(xì)節(jié)更是一竅不知,(假如我招你來(lái)做圖書(shū)管理,你項(xiàng)目經(jīng)歷說(shuō)你做過(guò)汽車(chē)調(diào)度,那我能問(wèn)你汽車(chē)調(diào)度具體怎么回事嗎?不會(huì),所以,你很容易蒙混過(guò)去的)而一個(gè)程序員的整個(gè)職業(yè)生涯中能實(shí)實(shí)在在和完完整整做出來(lái)的項(xiàng)目沒(méi)幾個(gè),更別說(shuō)在多個(gè)不同行業(yè)的項(xiàng)目了,有的程序員更是一輩子都只是在做某一個(gè)行業(yè)的項(xiàng)目,結(jié)果他就成了這個(gè)行業(yè)的專(zhuān)家(專(zhuān)門(mén)干一件事的家伙)。所以,技術(shù)面試官通常沒(méi)正好親身經(jīng)歷過(guò)你簡(jiǎn)歷寫(xiě)的那些項(xiàng)目,他不也許去問(wèn)你寫(xiě)的那些項(xiàng)目的具體細(xì)節(jié),而是只能泛泛地問(wèn)你這個(gè)項(xiàng)目是多少人做的,做了多長(zhǎng)時(shí)間,開(kāi)發(fā)的過(guò)程,你在做項(xiàng)目的過(guò)程中有什么心得和收獲,用的什么技術(shù)等面上的問(wèn)題,所以,簡(jiǎn)歷上的項(xiàng)目經(jīng)歷可以具有很多水分,很容易作假,技術(shù)面試官也無(wú)法在項(xiàng)目上甄別你的真?zhèn)巍:?jiǎn)歷該怎么寫(xiě):精通那些技術(shù),有一些什么項(xiàng)目經(jīng)歷教項(xiàng)目是為了鞏固和靈活整合運(yùn)用技術(shù),增強(qiáng)學(xué)習(xí)的趣味性,熟悉做項(xiàng)目的流程,或得一些專(zhuān)業(yè)課程中無(wú)法獲得的特有項(xiàng)目經(jīng)驗(yàn),增強(qiáng)自己面試的信心。講的項(xiàng)目應(yīng)當(dāng)真實(shí)可靠才有價(jià)值,否則,表面上是項(xiàng)目,事實(shí)上還是知識(shí)點(diǎn)的整合,對(duì)鞏固技術(shù)點(diǎn)和增強(qiáng)學(xué)習(xí)的趣味性,但無(wú)法獲得實(shí)際的項(xiàng)目經(jīng)驗(yàn)。(項(xiàng)目重要是增長(zhǎng)你經(jīng)驗(yàn)的可信度,獲得更多面試機(jī)會(huì),真正能不能找到工作,找到好工作,重要看你鍵盤(pán)上的功夫了)建議大家盡量開(kāi)自己的blog,堅(jiān)持天天寫(xiě)技術(shù)blog。在簡(jiǎn)歷上寫(xiě)上自己的blog地址,可以多轉(zhuǎn)載一些技術(shù)文章。1.如何過(guò)簡(jiǎn)歷關(guān)?善意的謊言我先講解幾個(gè)軟件求職相關(guān)的真實(shí)故事,以幫助大家了解大多數(shù)軟件開(kāi)發(fā)公司是如何賽選簡(jiǎn)歷和錄用新員工的。1.傳智播客學(xué)員A是大四在讀的應(yīng)屆畢業(yè)生,他自信技術(shù)學(xué)得很不錯(cuò),實(shí)質(zhì)上的確也達(dá)成用人單位的標(biāo)準(zhǔn),他不樂(lè)意編寫(xiě)兩年工作經(jīng)驗(yàn)的虛假簡(jiǎn)歷,希望憑借自己的真實(shí)情況去面對(duì)求職,投遞了很多份簡(jiǎn)歷,都沒(méi)有回應(yīng);而他周邊的很多相似背景的學(xué)員由于使用了假簡(jiǎn)歷,都不久找到了薪水4.5k/月左右的工作,最后萬(wàn)不得已,他修改了自己的簡(jiǎn)歷,增長(zhǎng)了一些水分,以?xún)赡旯ぷ鹘?jīng)驗(yàn)的身份去投遞簡(jiǎn)歷,結(jié)果就不久找到了滿(mǎn)意的工作。2.一個(gè)穿著和氣質(zhì)給人的印象都很不錯(cuò)的女生征詢(xún)時(shí),問(wèn):“假如在傳智播客學(xué)完了,能找到工作嗎?”,我問(wèn)了她一些基本情況后,得知她是鄭州航空工業(yè)管理學(xué)院本科畢業(yè),并且畢業(yè)時(shí)間已有兩年,談話(huà)中感覺(jué)很有工作經(jīng)驗(yàn),英語(yǔ)也不錯(cuò),所以,我斬釘截鐵地告訴她:“她學(xué)完后絕對(duì)能找到一份滿(mǎn)意的工作”,并說(shuō)出了一些因素:(1)她自身的談吐氣質(zhì)就決定了她找工作沒(méi)問(wèn)題,應(yīng)聘工作除了規(guī)定有那些必需的技能外,關(guān)鍵一點(diǎn)還要看這個(gè)人的性格和素養(yǎng),按她的條件,假如她要找軟件開(kāi)發(fā)方面的工作,只需要把技術(shù)補(bǔ)上就可以了,這一點(diǎn)在傳智播客學(xué)習(xí)是很容易補(bǔ)上的;(2)要想找到好工作,除了掌握必需的技術(shù)外,通常都需要編寫(xiě)兩年工作經(jīng)驗(yàn)的簡(jiǎn)歷,她的畢業(yè)是證的確兩年前的,編造兩年軟件開(kāi)發(fā)的工作經(jīng)驗(yàn)更容易,至少不用專(zhuān)門(mén)去做假的畢業(yè)證了。她聽(tīng)完后,很贊同我的觀(guān)念,說(shuō)她現(xiàn)在就在一家軟件公司做人力資源,負(fù)責(zé)挑選應(yīng)聘者的簡(jiǎn)歷,按領(lǐng)導(dǎo)的吩咐:“凡是工作經(jīng)驗(yàn)低于兩年的簡(jiǎn)歷直接刪除到垃圾桶”,可見(jiàn),假如你是以社會(huì)招聘的身份應(yīng)聘的,那么你的簡(jiǎn)歷一方面到達(dá)了類(lèi)似這個(gè)女生的人力資源之手,即使你的技術(shù)再厲害,假如你的工作經(jīng)驗(yàn)一欄上寫(xiě)得低于了兩年,那簡(jiǎn)歷就永無(wú)露臉之日了,何談后來(lái)的筆試和面試呢?3.與傳智播客同一樓的一個(gè)軟件開(kāi)發(fā)單位,由于項(xiàng)目經(jīng)理讀過(guò)傳智播客老師們的書(shū)籍和看過(guò)傳智播客的視頻,所以他們公司想到了從傳智播客學(xué)員中招聘開(kāi)發(fā)人員,提出薪水在2800元左后,我們公司老師對(duì)他們誰(shuí),2800元,我們學(xué)員肯定不會(huì)去!他們公司說(shuō)對(duì)于沒(méi)有實(shí)際經(jīng)驗(yàn)的新手開(kāi)出2800元的薪水已經(jīng)很不錯(cuò)了,我們老師說(shuō),傳智播客學(xué)員通過(guò)簡(jiǎn)歷包裝都能找到平均4500元的工資,樓下公司說(shuō)假簡(jiǎn)歷他們一聊就能聊出來(lái),沒(méi)工作經(jīng)驗(yàn)的人是騙不住他們的,我們的老師當(dāng)時(shí)就無(wú)語(yǔ)了,…,由于就在前幾天,我們就有一個(gè)學(xué)員成功潛伏進(jìn)了他們公司,并且工資是4500元,但我們老師不能當(dāng)他們的面來(lái)說(shuō)這事,就讓他們一直蒙在鼓里還很自信吧!4.前面談到簡(jiǎn)歷上的工作經(jīng)驗(yàn)很重要,可是大多數(shù)要找工作的同學(xué)往往是沒(méi)有工作經(jīng)驗(yàn)的,所以,只能在簡(jiǎn)歷上加點(diǎn)水分。但是,只要你將簡(jiǎn)歷上寫(xiě)成了兩年以上的工作經(jīng)驗(yàn),是不是一定就能得到筆試和面試的機(jī)會(huì)呢?寫(xiě)兩年工作經(jīng)驗(yàn)只是有效簡(jiǎn)歷的開(kāi)始,離簡(jiǎn)歷被用人單位相中尚有一段差距。一個(gè)好的畢業(yè)學(xué)校、優(yōu)秀的英語(yǔ)水平、中共黨員的政治面貌、某省或直轄市的優(yōu)秀畢業(yè)生、奧林匹克競(jìng)賽獲幾等獎(jiǎng)等榮耀都會(huì)給用人單位一個(gè)很好的印象,假如你有這些榮耀,一定要在簡(jiǎn)歷的基本信息部分寫(xiě)清楚。但是,很多人是沒(méi)有這些榮耀的,那么只能平平淡淡列出自己的一些基本信息,這也沒(méi)有很大的關(guān)系,頂多就是自己的簡(jiǎn)歷不能脫穎而出。假如你沒(méi)有上過(guò)大學(xué),學(xué)歷一欄怎么著也不能寫(xiě)為高中,起碼也要寫(xiě)個(gè)大專(zhuān)或以上,畢業(yè)院校編個(gè)二線(xiàn)城市的不知名的小學(xué)院,假如你不樂(lè)意去做假證,等到別人面試你時(shí),再說(shuō)“閑棄以前上的學(xué)校不好,由于對(duì)編程太感愛(ài)好,就輟學(xué)了!”技術(shù)類(lèi)面試、筆試題匯總(整理者:楊中科,部分內(nèi)容從互聯(lián)網(wǎng)中整理而來(lái))注:標(biāo)明*的問(wèn)題屬于選擇性掌握的內(nèi)容,能掌握更好,沒(méi)掌握也沒(méi)關(guān)系。下面的參考解答只是幫助大家理解,不用背,面試題、筆試題千變?nèi)f化,不要夢(mèng)想著把題覆蓋了,下面的題是供大家查漏補(bǔ)缺用的,真正的把這些題搞懂了,才干“以不變應(yīng)萬(wàn)變”?;卮饐?wèn)題的時(shí)候能聯(lián)系做過(guò)項(xiàng)目的例子是最佳的,有的問(wèn)題后面我已經(jīng)補(bǔ)充聯(lián)系到項(xiàng)目中的相應(yīng)的案例了。1、簡(jiǎn)述private、protected、public、internal修飾符的訪(fǎng)問(wèn)權(quán)限。private:私有成員,在類(lèi)的內(nèi)部才可以訪(fǎng)問(wèn)。protected:保護(hù)成員,該類(lèi)內(nèi)部和繼承類(lèi)中可以訪(fǎng)問(wèn)。public:公共成員,完全公開(kāi),沒(méi)有訪(fǎng)問(wèn)限制。internal:當(dāng)前程序集內(nèi)可以訪(fǎng)問(wèn)。2、ADO.NET中的五個(gè)重要對(duì)象Connection:重要是啟動(dòng)程序和數(shù)據(jù)庫(kù)之間的連接。沒(méi)有運(yùn)用連接對(duì)象將數(shù)據(jù)庫(kù)打開(kāi),是無(wú)法從數(shù)據(jù)庫(kù)中取得數(shù)據(jù)的。Close和Dispose的區(qū)別,Close以后還可以O(shè)pen,Dispose以后則不能再用。Command:重要可以用來(lái)對(duì)數(shù)據(jù)庫(kù)發(fā)出一些指令,例如可以對(duì)數(shù)據(jù)庫(kù)下達(dá)查詢(xún)、新增、修改、刪除數(shù)據(jù)等指令,以及調(diào)用存在數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程等。這個(gè)對(duì)象是架構(gòu)在Connection對(duì)象上,也就是Command對(duì)象是透過(guò)連接到數(shù)據(jù)源。DataAdapter:重要是在數(shù)據(jù)源以及DataSet之間執(zhí)行數(shù)據(jù)傳輸?shù)墓ぷ?,它可以透過(guò)Command對(duì)象下達(dá)命令后,并將取得的數(shù)據(jù)放入DataSet對(duì)象中。這個(gè)對(duì)象是架構(gòu)在Command對(duì)象上,并提供了許多配合DataSet使用的功能。DataSet:這個(gè)對(duì)象可以視為一個(gè)暫存區(qū)(Cache),可以把從數(shù)據(jù)庫(kù)中所查詢(xún)到的數(shù)據(jù)保存起來(lái),甚至可以將整個(gè)數(shù)據(jù)庫(kù)顯示出來(lái),DataSet是放在內(nèi)存中的。DataSet的能力不只是可以?xún)?chǔ)存多個(gè)Table而已,還可以透過(guò)DataAdapter對(duì)象取得一些例如主鍵等的數(shù)據(jù)表結(jié)構(gòu),并可以記錄數(shù)據(jù)表間的關(guān)聯(lián)。DataSet對(duì)象可以說(shuō)是ADO.NET中重量級(jí)的對(duì)象,這個(gè)對(duì)象架構(gòu)在DataAdapter對(duì)象上,自身不具有和數(shù)據(jù)源溝通的能力;也就是說(shuō)我們是將DataAdapter對(duì)象當(dāng)做DataSet對(duì)象以及數(shù)據(jù)源間傳輸數(shù)據(jù)的橋梁。DataSet包含若干DataTable、DataTableTable包含若干DataRow。DataReader:當(dāng)我們只需要循序的讀取數(shù)據(jù)而不需要其它操作時(shí),可以使用DataReader對(duì)象。Dat(yī)aReader?qū)ο笾皇且淮我还P向下循序的讀取數(shù)據(jù)源中的數(shù)據(jù),這些數(shù)據(jù)是存在數(shù)據(jù)庫(kù)服務(wù)器中的,而不是一次性加載到程序的內(nèi)存中的,只能(通過(guò)游標(biāo))讀取當(dāng)前行的數(shù)據(jù),并且這些數(shù)據(jù)是只讀的,并不允許作其它的操作。由于DataReader在讀取數(shù)據(jù)的時(shí)候限制了每次只讀取一筆,并且只能只讀,所以使用起來(lái)不僅節(jié)省資源并且效率很好。使用DataReader對(duì)象除了效率較好之外,由于不用把數(shù)據(jù)所有傳回,故可以減少網(wǎng)絡(luò)的負(fù)載。ADO.NET使用Connection對(duì)象來(lái)連接數(shù)據(jù)庫(kù),使用Command或DataAdapter?qū)ο髞?lái)執(zhí)行SQL語(yǔ)句,并將執(zhí)行的結(jié)果返回給DataReader或DataAdapter,然后再使用取得的DataReader或DataAdapter對(duì)象操作數(shù)據(jù)結(jié)果。3、列舉ASP.NET頁(yè)面之間傳遞值的幾種方式。1.使用QueryString,如....?id=1;response.Redirect()2.使用Session變量3.使用Server.Transfer4.Cookie傳值5.Application傳值6.PreviosPageServer.Transfer和Response.Redirect的區(qū)別:Server.Transfer是服務(wù)器內(nèi)部的轉(zhuǎn)接,瀏覽器不知曉;Response.Redirect是有瀏覽器參與的,所以在地址欄中可以看到地址的變化。4、C#中的委托是什么?事件是不是一種委托?事件和委托的關(guān)系。委托可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法。委托可以理解為指向一個(gè)函數(shù)的指針。委托和事件沒(méi)有可比性,由于委托是類(lèi)型,事件是對(duì)象,下面說(shuō)的是委托的對(duì)象(用委托方式實(shí)現(xiàn)的事件)和(標(biāo)準(zhǔn)的event方式實(shí)現(xiàn))事件的區(qū)別。事件的內(nèi)部是用委托實(shí)現(xiàn)的。由于對(duì)于事件來(lái)講,外部只能“注冊(cè)自己+=、注銷(xiāo)自己-=”,外界不可以注銷(xiāo)其他的注冊(cè)者,外界不可以積極觸發(fā)事件,因此假如用Delegate就沒(méi)法進(jìn)行上面的控制,因此誕生了事件這種語(yǔ)法。事件是用來(lái)閹割委托實(shí)例的,類(lèi)比用一個(gè)自定義類(lèi)閹割List。事件只能add、remove自己,不能賦值。事件只能+=、-=,不能=。加分的補(bǔ)充回答:事件內(nèi)部就是一個(gè)private的委托和add、remove兩個(gè)方法。面試聊:用Reflector查看.Net的類(lèi)的內(nèi)部實(shí)現(xiàn),解決問(wèn)題。5、override與重載(overload)的區(qū)別重載是方法的名稱(chēng)相同。參數(shù)或參數(shù)類(lèi)型不同,進(jìn)行多次重載以適應(yīng)不同的需要。重載(overload)是面向過(guò)程的概念。Override是進(jìn)行基類(lèi)中函數(shù)的重寫(xiě)。Override是面向?qū)ο蟮母拍?、C#中索引器是否只能根據(jù)數(shù)字進(jìn)行索引?是否允許多個(gè)索引器參數(shù)?參數(shù)的個(gè)數(shù)和類(lèi)型都是任意的。加分的補(bǔ)充回答:用reflector反編譯可以看出,索引器的內(nèi)部本質(zhì)上就是set_item、get_item方法。加分的補(bǔ)充回答:回答傳智播客.net培訓(xùn)中講解設(shè)計(jì)模式中開(kāi)發(fā)的SettingsProvider就是用的string類(lèi)型的參數(shù)名做索引器參數(shù)。7、屬性和public字段的區(qū)別是什么?調(diào)用set方法為一個(gè)屬性設(shè)值,然后用get方法讀取出來(lái)的值一定是set進(jìn)去的值嗎?屬性可以對(duì)設(shè)值、取值的過(guò)程進(jìn)行非法值控制,比如年齡嚴(yán)禁設(shè)值負(fù)數(shù),而字段則不能進(jìn)行這樣的設(shè)立。雖然一般情況下get讀取的值就是set設(shè)立的值,但是可以讓get讀取的值不是set設(shè)立的值的,極端的例子。PublicAge{get{return100;}set{}}。加分的補(bǔ)充回答:用reflector反編譯可以看出,屬性?xún)?nèi)部本質(zhì)上就是set_***、get_***方法,具體參考傳智播客.net培訓(xùn)視頻中串講.net基礎(chǔ)的部分。classPerson{publicintAge{get{return3;}set{}}}Personp1=newPerson();p1.Age=30;p1.Age++;Console.Write(p1.Age);//輸出38、三層架構(gòu)通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪(fǎng)問(wèn)層(DAL)。區(qū)分層次的目的即為了“高內(nèi)聚,低耦合”的思想。表現(xiàn)層(UI):通俗講就是展現(xiàn)給用戶(hù)的界面,即用戶(hù)在使用一個(gè)系統(tǒng)的時(shí)候的所見(jiàn)所得。業(yè)務(wù)邏輯層(BLL):針對(duì)具體問(wèn)題的操作,也可以說(shuō)是對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯解決。數(shù)據(jù)訪(fǎng)問(wèn)層(DAL):該層所做事務(wù)直接操作數(shù)據(jù)庫(kù),針對(duì)數(shù)據(jù)的增添、刪除、修改、更新、查找等每層之間是一種垂直的關(guān)系。三層結(jié)構(gòu)是N層結(jié)構(gòu)的一種,一般來(lái)說(shuō),層次之間是向下依賴(lài)的,下層代碼未擬定其接口(契約)前,上層代碼是無(wú)法開(kāi)發(fā)的,下層代碼接口(契約)的變化將使上層的代碼一起變化。優(yōu)點(diǎn):分工明確,條理清楚,易于調(diào)試,并且具有可擴(kuò)展性。缺陷:增長(zhǎng)成本。9、MVC模式(*)MVC(ModelViewController)模型-視圖-控制器aspx就是View,視圖;Model:DataSet、Reader、對(duì)象;Controller:cs代碼。MVC是典型的平行關(guān)系,沒(méi)有說(shuō)誰(shuí)在上誰(shuí)在下的關(guān)系,模型負(fù)責(zé)業(yè)務(wù)領(lǐng)域的事情,視圖負(fù)責(zé)顯示的事情,控制器把數(shù)據(jù)讀取出來(lái)填充模型后把模型交給視圖去解決。而各種驗(yàn)證什么的應(yīng)當(dāng)是在模型里解決了。它強(qiáng)制性的使應(yīng)用程序的輸入、解決和輸出分開(kāi)。MVC最大的好處是將邏輯和頁(yè)面分離。10、什么是裝箱(boxing)和拆箱(unboxing)?(*)裝箱:從值類(lèi)型接口轉(zhuǎn)換到引用類(lèi)型。拆箱:從引用類(lèi)型轉(zhuǎn)換到值類(lèi)型。objectobj=null;//引用類(lèi)型obj=1;//裝箱,boxing。把值類(lèi)型包裝為引用類(lèi)型。inti1=(int)obj;//拆箱。unboxing11、什么叫應(yīng)用程序域(AppDomain)(*)一種邊界,它由公共語(yǔ)言運(yùn)營(yíng)庫(kù)圍繞同一應(yīng)用程序范圍內(nèi)創(chuàng)建的對(duì)象建立(即,從應(yīng)用程序入口點(diǎn)開(kāi)始,沿著對(duì)象激活的序列的任何位置)。應(yīng)用程序域有助于將在一個(gè)應(yīng)用程序中創(chuàng)建的對(duì)象與在其他應(yīng)用程序中創(chuàng)建的對(duì)象隔離,以使運(yùn)營(yíng)時(shí)行為可以預(yù)知。在一個(gè)單獨(dú)的進(jìn)程中可以存在多個(gè)應(yīng)用程序域。應(yīng)用程序域可以理解為一種輕量級(jí)進(jìn)程。起到安全的作用。占用資源小。12、CTS、CLS、CLR分別作何解釋?zhuān)?)CTS:CommonTypeSystem通用系統(tǒng)類(lèi)型。Int32、Int16→int、String→string、Boolean→boolCLS:CommonLanguageSpecification通用語(yǔ)言規(guī)范。不同語(yǔ)言語(yǔ)法的不同。CLR:CommonLanguageRuntime公共語(yǔ)言運(yùn)營(yíng)時(shí),就是.Net提供的那些類(lèi)。13、在dotnet中類(lèi)(class)與結(jié)構(gòu)(struct)的異同?Class可以被實(shí)例化,屬于引用類(lèi)型,是分派在內(nèi)存的堆上的。類(lèi)是引用傳遞的。Struct屬于值類(lèi)型,是分派在內(nèi)存的棧上的。結(jié)構(gòu)體是復(fù)制傳遞的。加分的回答:Int32、Boolean等都屬于結(jié)構(gòu)體。14、堆和棧的區(qū)別?棧是編譯期間就分派好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的定義;局部值類(lèi)型變量、值類(lèi)型參數(shù)等都在棧內(nèi)存中。堆是程序運(yùn)營(yíng)期間動(dòng)態(tài)分派的內(nèi)存空間,你可以根據(jù)程序的運(yùn)營(yíng)情況擬定要分派的堆內(nèi)存的大小。15、能用foreach遍歷訪(fǎng)問(wèn)的對(duì)象的規(guī)定需要實(shí)現(xiàn)IEnumerable接口或聲明GetEnumerator方法的類(lèi)型。16、GC是什么?為什么要有GC?GC是垃圾收集器。程序員不用緊張內(nèi)存管理,由于垃圾收集器會(huì)自動(dòng)進(jìn)行管理。GC只能解決托管內(nèi)存資源的釋放,對(duì)于非托管資源則不能使用GC進(jìn)行回收,必須由程序員手工回收,一個(gè)例子就是FileStream或者SqlConnection需要程序員調(diào)用Dispose進(jìn)行資源的回收。要請(qǐng)求垃圾收集,可以調(diào)用下面的方法:GC.Collection()一般不需要手動(dòng)調(diào)用GC.Collection()。加分的回答:有一次用OLEAutomation的方式操作Excel的時(shí)候,Excel經(jīng)常不能正常退出,在MSDN網(wǎng)站上找到官方解答說(shuō)要調(diào)用一下GC.Collection(),至于為什么這樣就可以也沒(méi)找到答案。17、Strings=newString("xyz");創(chuàng)建了幾個(gè)StringObject?兩個(gè)對(duì)象,一個(gè)是“xyx”,一個(gè)是指向“xyx”的引用對(duì)象。18、值類(lèi)型和引用類(lèi)型的區(qū)別?1.將一個(gè)值類(lèi)型變量賦給另一個(gè)值類(lèi)型變量時(shí),將復(fù)制包含的值。引用類(lèi)型變量的賦值只復(fù)制對(duì)對(duì)象的引用,而不復(fù)制對(duì)象自身。2.值類(lèi)型不也許派生出新的類(lèi)型:所有的值類(lèi)型均隱式派生自System.ValueType。但與引用類(lèi)型相同的是,結(jié)構(gòu)也可以實(shí)現(xiàn)接口。3.值類(lèi)型不也許包含null值:然而,可空類(lèi)型功能允許將null賦給值類(lèi)型。4.每種值類(lèi)型均有一個(gè)隱式的默認(rèn)構(gòu)造函數(shù)來(lái)初始化該類(lèi)型的默認(rèn)值。19、C#中的接口和類(lèi)有什么異同。不同點(diǎn):不能直接實(shí)例化接口。接口不包含方法的實(shí)現(xiàn)。接口可以多繼承,類(lèi)只能單繼承。類(lèi)定義可在不同的源文獻(xiàn)之間進(jìn)行拆分。相同點(diǎn):接口、類(lèi)和結(jié)構(gòu)都可以從多個(gè)接口繼承。接口類(lèi)似于抽象基類(lèi):繼承接口的任何非抽象類(lèi)型都必須實(shí)現(xiàn)接口的所有成員。接口和類(lèi)都可以包含事件、索引器、方法和屬性。20、abstractclass和interface有什么區(qū)別?相同點(diǎn):都不能被直接實(shí)例化,都可以通過(guò)繼承實(shí)現(xiàn)其抽象方法。不同點(diǎn):接口支持多繼承;抽象類(lèi)不能實(shí)現(xiàn)多繼承。接口只能定義行為;抽象類(lèi)既可以定義行為,還也許提供實(shí)現(xiàn)。接口可以用于支持回調(diào)(CallBack);抽象類(lèi)不能實(shí)現(xiàn)回調(diào),由于繼承不支持。接口只包含方法(Method)、屬性(Property)、索引器(Index)、事件(Event)的署名,但不能定義字段和包含實(shí)現(xiàn)的方法;抽象類(lèi)可以定義字段、屬性、包具有實(shí)現(xiàn)的方法。接口可以作用于值類(lèi)型(Struct)和引用類(lèi)型(Class);抽象類(lèi)只能作用于引用類(lèi)型。例如,Struct就可以繼承接口,而不能繼承類(lèi)。加分的補(bǔ)充回答:講設(shè)計(jì)模式的時(shí)候SettingsProvider的例子。21、是否可以繼承String類(lèi)?String類(lèi)是sealed類(lèi)故不可以繼承。22、try{}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally{}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行?會(huì)執(zhí)行,在return前執(zhí)行。加分的補(bǔ)充回答(也助記):讀取數(shù)據(jù)庫(kù)中數(shù)據(jù)的條數(shù)的程序publicintQueryCount(){…..try{returncmd.ExecuteScalar();}finally{cmd.Dispose();}}假如C#設(shè)計(jì)的是先執(zhí)行cmd.Dispose()再執(zhí)行return就會(huì)出現(xiàn)return執(zhí)行失敗了,由于cmd已經(jīng)Dispose了。23、new關(guān)鍵字用法(*)new運(yùn)算符用于創(chuàng)建對(duì)象和調(diào)用構(gòu)造函數(shù)。new修飾符用于向基類(lèi)成員隱藏繼承成員。new約束用于在泛型聲明中約束也許用作類(lèi)型參數(shù)的參數(shù)的類(lèi)型。24、如何把一個(gè)Array復(fù)制到ArrayList里(*)實(shí)現(xiàn)1string[]s={"111","22222"};ArrayListlist=newArrayList();list.AddRange(s);實(shí)現(xiàn)2string[]s={"111","22222"};ArrayListlist=newArrayList(s);25、描述線(xiàn)程與進(jìn)程的區(qū)別?(*)1.線(xiàn)程(Thread)與進(jìn)程(Process)兩者都定義了某種邊界,不同的是進(jìn)程定義的是應(yīng)用程序與應(yīng)用程序之間的邊界,不同的進(jìn)程之間不能共享代碼和數(shù)據(jù)空間,而線(xiàn)程定義的是代碼執(zhí)行堆棧和執(zhí)行上下文的邊界。2.一個(gè)進(jìn)程可以涉及若干個(gè)線(xiàn)程,同時(shí)創(chuàng)建多個(gè)線(xiàn)程來(lái)完畢某項(xiàng)任務(wù),便是多線(xiàn)程。而同一進(jìn)程中的不同線(xiàn)程共享代碼和數(shù)據(jù)空間。用一個(gè)比方來(lái)說(shuō),假如一個(gè)家庭代表一個(gè)進(jìn)程,在家庭內(nèi)部,各個(gè)成員就是線(xiàn)程,家庭中的每個(gè)成員都有義務(wù)對(duì)家庭的財(cái)富進(jìn)行積累,同時(shí)也有權(quán)利對(duì)家庭財(cái)富進(jìn)行消費(fèi),當(dāng)面對(duì)一個(gè)任務(wù)的時(shí)候,家庭也可以派出幾個(gè)成員來(lái)協(xié)同完畢,而家庭之外的人則沒(méi)有辦法直接消費(fèi)不屬于自己家庭的財(cái)產(chǎn)。加分的回答:舉例,傳智播客的.Net培訓(xùn)中用多線(xiàn)程(ThreadPool)實(shí)現(xiàn)網(wǎng)站蜘蛛的案例。26、什么是強(qiáng)類(lèi)型,什么是弱類(lèi)型?哪種更好些?為什么?
C#中inti=3;i="a";不可以JavaScript中vari=3;i="a";可以強(qiáng)類(lèi)型是在編譯的時(shí)候就擬定類(lèi)型的數(shù)據(jù),在執(zhí)行時(shí)類(lèi)型不能更改,而弱類(lèi)型在執(zhí)行的時(shí)候才會(huì)擬定類(lèi)型。沒(méi)有好不好,兩者各有好處,強(qiáng)類(lèi)型安全,由于它事先已經(jīng)擬定好了,并且效率高。弱類(lèi)型更靈活,但是效率低,并且犯錯(cuò)概率高一般用于編譯型編程語(yǔ)言,如c++,java,c#,pascal等,弱類(lèi)型相比而言不安全,在運(yùn)營(yíng)的時(shí)候容易出現(xiàn)錯(cuò)誤,但它靈活,多用于解釋型編程語(yǔ)言,如javascript,vb等加分的補(bǔ)充回答:引用傳智播客.net培訓(xùn)呼喊中心項(xiàng)目中用強(qiáng)類(lèi)型DataSet的例子,侃一通用強(qiáng)類(lèi)型DataSet是多么方便。27、什么是反射?程序集包含模塊,而模塊又涉及類(lèi)型,類(lèi)型下有成員,反射就是管理程序集,模塊,類(lèi)型的對(duì)象,它可以動(dòng)態(tài)的創(chuàng)建類(lèi)型的實(shí)例,設(shè)立現(xiàn)有對(duì)象的類(lèi)型或者獲取現(xiàn)有對(duì)象的類(lèi)型,能調(diào)用類(lèi)型的方法和訪(fǎng)問(wèn)類(lèi)型的字段屬性。它是在運(yùn)營(yíng)時(shí)創(chuàng)建和使用類(lèi)型實(shí)例加分的補(bǔ)充回答:聊用反射實(shí)現(xiàn)編輯器動(dòng)態(tài)插件和如鵬網(wǎng)項(xiàng)目中插件體系實(shí)現(xiàn)第三方支付和定期任務(wù)的案例。28、int、DateTime、string是否可認(rèn)為null?int、DateTime不能,由于其為Struct類(lèi)型,而結(jié)構(gòu)屬于值類(lèi)型,值類(lèi)型不能為null,只有引用類(lèi)型才干被賦值null。string可認(rèn)為null。29、using關(guān)鍵字有什么用?什么是IDisposable?using可以聲明namespace的引入,還可以實(shí)現(xiàn)非托管資源的釋放,實(shí)現(xiàn)了IDisposiable的類(lèi)在using中創(chuàng)建,using結(jié)束后會(huì)自動(dòng)調(diào)用該對(duì)象的Dispose方法,釋放資源。加分的補(bǔ)充回答:using其實(shí)等價(jià)于try……finally,用起來(lái)更方便。int?→Nullable<int>30、Assembly.Load("foo.dll");這句話(huà)是否對(duì)的?(*)錯(cuò)誤,對(duì)的的應(yīng)當(dāng)是Assembly.Load("foo");或者Assembly.LoadFrom("foo.dll");31、XML與HTML的重要區(qū)別1.XML是區(qū)分大小寫(xiě)字母的,HTML不區(qū)分。2.在HTML中,假如上下文清楚地顯示出段落或者列表鍵在何處結(jié)尾,那么你可以省略</p>或者</li>之類(lèi)的結(jié)束標(biāo)記。在XML中,絕對(duì)不能省略掉結(jié)束標(biāo)記。HTML:<imgsrc="1.jpg"><br><br>XML:<imgsrc="1.jpg"></img><br/><br/>3.在XML中,擁有單個(gè)標(biāo)記而沒(méi)有匹配的結(jié)束標(biāo)記的元素必須用一個(gè)/字符作為結(jié)尾。這樣分析器就知道不用查找結(jié)束標(biāo)記了。4.在XML中,屬性值必須分裝在引號(hào)中。在HTML中,引號(hào)是可用可不用的。5.在HTML中,可以擁有不帶值的屬性名。在XML中,所有的屬性都必須帶有相應(yīng)的值。XML是用來(lái)存儲(chǔ)和傳輸數(shù)據(jù)的HTML是用來(lái)顯示數(shù)據(jù)的32、stringstr=null與stringstr=“”說(shuō)明其中的區(qū)別。答:stringstr=null是不給他分派內(nèi)存空間,而stringstr=\"\"給它分派長(zhǎng)度為空字符串的內(nèi)存空間。stringstr=null沒(méi)有string對(duì)象,stringstr=“”有一個(gè)字符串對(duì)象。33.寫(xiě)出一條Sql語(yǔ)句:取出表A中第31到第40記錄(SQLServer,以自動(dòng)增長(zhǎng)的ID作為主鍵,注意:ID也許不是連續(xù)的。答:解1:selecttop10*fromAwhereidnotin(selecttop30idfromA)解2:selecttop10*fromAwhereid>(selectmax(id)from(selecttop30idfromA)asA)解答3:ROW_NUMBER(推薦)34.面向?qū)ο蟮恼Z(yǔ)言具有________性、___(dá)______性、__(dá)__(dá)____(dá)性答:封裝、繼承、多態(tài)。不要背,腦子中要有聯(lián)想。35.在.Net中所有可序列化的類(lèi)都被標(biāo)記為_(kāi)____?答:[serializable]36.在.Net托管代碼中我們不用緊張內(nèi)存漏洞,這是由于有了______(dá)?答:GC。37、什么叫應(yīng)用程序域?什么是受管制的代碼?什么是托管代碼?什么是強(qiáng)類(lèi)型系統(tǒng)?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分別作何解釋?應(yīng)用程序域?yàn)榘踩浴⒖煽啃浴姹究刂埔约靶遁d程序集提供了隔離邊界。應(yīng)用程序域通常由運(yùn)營(yíng)庫(kù)宿主創(chuàng)建,運(yùn)營(yíng)庫(kù)宿主負(fù)責(zé)在運(yùn)營(yíng)應(yīng)用程序之前引導(dǎo)公共語(yǔ)言運(yùn)營(yíng)庫(kù)。應(yīng)用程序域提供了一個(gè)更安全、用途更廣的解決單元,公共語(yǔ)言運(yùn)營(yíng)庫(kù)可使用該單元提供應(yīng)用程序之間的隔離。受管制的代碼:在.Net環(huán)境中運(yùn)營(yíng)的任何代碼都是受管制的代碼(managedcode),.Net外部的代碼也運(yùn)營(yíng)在windows上,這些代碼稱(chēng)為未受管制的代碼(unmanagedcode)。使用基于公共語(yǔ)言運(yùn)營(yíng)庫(kù)的語(yǔ)言編譯器開(kāi)發(fā)的代碼稱(chēng)為托管代碼;托管代碼具有許多優(yōu)點(diǎn),例如:跨語(yǔ)言集成、跨語(yǔ)言異常解決、增強(qiáng)的安全性、版本控制和部署支持、簡(jiǎn)化的組件交互模型、調(diào)試和分析服務(wù)等。強(qiáng)類(lèi)型語(yǔ)言是可以嚴(yán)禁任何違反類(lèi)型系統(tǒng)的代碼的語(yǔ)言,或者說(shuō)是可以捕獲所有違反類(lèi)型系統(tǒng)的錯(cuò)誤的語(yǔ)言。我們說(shuō)C++相對(duì)于C是強(qiáng)類(lèi)型的,是由于C++嚴(yán)禁了一些C中的隱式轉(zhuǎn)換,比如將void*轉(zhuǎn)換為任意的指針類(lèi)型。裝箱和拆箱使值類(lèi)型可以被視為對(duì)象。對(duì)值類(lèi)型裝箱將把該值類(lèi)型打包到Object引用類(lèi)型的一個(gè)實(shí)例中。這使得值類(lèi)型可以存儲(chǔ)于垃圾回收堆中。拆箱將從對(duì)象中提取值類(lèi)型。每個(gè)類(lèi)型成員都有一個(gè)唯一的署名。方法署名由方法名稱(chēng)和一個(gè)參數(shù)列表(方法的參數(shù)的順序和類(lèi)型)組成。只要署名不同,就可以在一種類(lèi)型內(nèi)定義具有相同名稱(chēng)的多種方法。當(dāng)定義兩種或多種具有相同名稱(chēng)的方法時(shí),就稱(chēng)作重載。CTS通用類(lèi)型系統(tǒng)(commontypesystem)一種擬定公共語(yǔ)言運(yùn)營(yíng)庫(kù)如何定義、使用和管理類(lèi)型的規(guī)范。CLR公共語(yǔ)言運(yùn)營(yíng)庫(kù).NETFramework提供了一個(gè)稱(chēng)為公共語(yǔ)言運(yùn)營(yíng)庫(kù)的運(yùn)營(yíng)時(shí)環(huán)境,它運(yùn)營(yíng)代碼并提供使開(kāi)發(fā)過(guò)程更輕松的服務(wù)。CLS公共語(yǔ)言規(guī)范要和其他對(duì)象完全交互,而不管這些對(duì)象是以何種語(yǔ)言實(shí)現(xiàn)的,對(duì)象必須只向調(diào)用方公開(kāi)那些它們必須與之互用的所有語(yǔ)言的通用功能。為此定義了公共語(yǔ)言規(guī)范(CLS),它是許多應(yīng)用程序所需的一套基本語(yǔ)言功能。38、什么是code-Behind技術(shù)。就是代碼隱藏,在A(yíng)SP.NET中通過(guò)ASPX頁(yè)面指向CS文獻(xiàn)的方法實(shí)現(xiàn)顯示邏輯和解決邏輯的分離,這樣有助于web應(yīng)用程序的創(chuàng)建。比如分工,美工和編程的可以個(gè)干各的,不用再像以前asp那樣都代碼和html代碼混在一起,難以維護(hù)。39、接口是一種引用類(lèi)型,在接口中可以聲明(
a),但不可以聲明公有的域或私有的成員變量。
a)方法、屬性、索引器和事件;
??
c)索引器和字段;
?
d)事件和字段;
?40.在A(yíng)DO.NET中,對(duì)于Command對(duì)象的ExecuteNonQuery()方法和ExecuteReader()方法,下面敘述錯(cuò)誤的是(c)。
?
a)insert、update、delete等操作的Sql語(yǔ)句重要用ExecuteNonQuery()方法來(lái)執(zhí)行;
b)ExecuteNonQuery()方法返回執(zhí)行Sql語(yǔ)句所影響的行數(shù)。
?
c)Select操作的Sql語(yǔ)句只能由ExecuteReader()方法來(lái)執(zhí)行;
d)ExecuteReader()方法返回一個(gè)DataReder對(duì)象;
解答:ExecuteScalar→selectgetdate()。
41.下列關(guān)于C#中索引器理解對(duì)的的是(c
)
?
a)索引器的參數(shù)必須是兩個(gè)或兩個(gè)以上
b)索引器的參數(shù)類(lèi)型必須是整數(shù)型
c)索引器沒(méi)有名字
d)以上皆非
42.要?jiǎng)?chuàng)建多文檔應(yīng)用程序,需要將窗體的(d
)屬性設(shè)為true。
?
a)DrawGrid;
?
b)ShowInTaskbar;
c)Enabled;
?
d)IsMdiContainer;
?43.假如設(shè)treeView1=new
TreeView(),則treeView1.Nodes.Add("根節(jié)點(diǎn)")返回的是一個(gè)
(a)類(lèi)型的值。
?
a)TreeNode;
b)int;
c)string;
d)TreeView;
?44.下面關(guān)于XML的描述錯(cuò)誤的是(d)。
?
a)XML提供一種描述結(jié)構(gòu)化數(shù)據(jù)的方法;
b)XML
是一種簡(jiǎn)樸、與平臺(tái)無(wú)關(guān)并被廣泛采用的標(biāo)準(zhǔn);
?
c)XML文檔可承載各種信息;
d)XML只是為了生成結(jié)構(gòu)化文檔;
?45、以下的C#代碼,試圖用來(lái)定義一個(gè)接口:
?
public
interface
IFile
{
?
int
A;
int
delFile()
{
A
=
3;
?
}
?
void
disFile();
?
}
關(guān)于以上的代碼,以下描述錯(cuò)誤的是(d
)。
a)以上的代碼中存在的錯(cuò)誤涉及:不能在接口中定義變量,所以int
A代碼行將出現(xiàn)錯(cuò)誤;
b)以上的代碼中存在的錯(cuò)誤涉及:接口方法delFile是不允許實(shí)現(xiàn)的,所以不能編寫(xiě)具體的實(shí)現(xiàn)函數(shù);
c)代碼void
disFile();聲明無(wú)錯(cuò)誤,接口可以沒(méi)有返回值;
?
d)代碼void
disFile();應(yīng)當(dāng)編寫(xiě)為void
disFile(){};
空和null不同樣。
46在ASP.NET中有Button控件myButton,要是單擊控件時(shí),導(dǎo)航到其他頁(yè)面,
對(duì)的的代碼為(
c)。
?
a)private
void
myButton_Click(object
sender,
System.EventArgs
e){Redirect(“”);}
b)private
void
myButton_Click(object
sender,
System.EventArgs
e){Request.Redirect(“”);}
?
c)private
void
myButton_Click(object
sender,
System.EventArgs
e){Reponse.Redirect(“”);}
?
d)private
void
myButton_Click(object
sender,
System.EventArgs
e){Request.Redirect(“”);return
true;}
47.聲明一個(gè)委托public
delegat(yī)e
int
myCallBack(int
x);
則用該委托產(chǎn)生的回調(diào)方法的原型應(yīng)當(dāng)是(b
)。
a)void
myCallBack(int
x)
;
b)int
receive(int
num)
;
?
c)string
receive(int
x)
;
d)不擬定的;
?48.StringBuilder和String的區(qū)別?答:String在進(jìn)行運(yùn)算時(shí)(如賦值、拼接等)會(huì)產(chǎn)生一個(gè)新的實(shí)例,而StringBuilder
則不會(huì)。所以在大量字符串拼接或頻繁對(duì)某一字符串進(jìn)行操作時(shí)最佳使用StringBuilder,不要使用String
假如要操作一個(gè)不斷增長(zhǎng)的字符串,盡量不用String類(lèi),改用StringBuilder類(lèi)。兩個(gè)類(lèi)的工作原理不同:String類(lèi)是一種傳統(tǒng)的修改字符串的方式,它的確可以完畢把一個(gè)字符串添加到另一個(gè)字符串上的工作沒(méi)錯(cuò),但是在.NET框架下,這個(gè)操作實(shí)在是劃不來(lái)。由于系統(tǒng)先是把兩個(gè)字符串寫(xiě)入內(nèi)存,接著刪除本來(lái)的String對(duì)象,然后創(chuàng)建一個(gè)String對(duì)象,并讀取內(nèi)存中的數(shù)據(jù)賦給該對(duì)象。這一來(lái)二去的,耗了不少時(shí)間。而使用System.Text命名空間下面的StringBuilder類(lèi)就不是這樣了,它提供的Append方法,可以在已有對(duì)象的原地進(jìn)行字符串的修改,簡(jiǎn)樸并且直接。當(dāng)然,一般情況下覺(jué)察不到這兩者效率的差異,但假如你要對(duì)某個(gè)字符串進(jìn)行大量的添加操作,那么StringBuilder類(lèi)所花費(fèi)的時(shí)間和String類(lèi)簡(jiǎn)直不是一個(gè)數(shù)量級(jí)的。
49、.請(qǐng)敘述屬性與索引器的區(qū)別。
(*)沒(méi)啥意義屬性
索引器
通過(guò)名稱(chēng)標(biāo)記。
通過(guò)署名標(biāo)記。
通過(guò)簡(jiǎn)樸名稱(chēng)或成員訪(fǎng)問(wèn)來(lái)訪(fǎng)問(wèn)。
通過(guò)元素訪(fǎng)問(wèn)來(lái)訪(fǎng)問(wèn)。
可認(rèn)為靜態(tài)成員或?qū)嵗蓡T。
必須為實(shí)例成員。
屬性的
get
訪(fǎng)問(wèn)器沒(méi)有參數(shù)。
索引器的
get
訪(fǎng)問(wèn)器具有與索引器相同的形參表。
屬性的
set
訪(fǎng)問(wèn)器包含隱式
value
參數(shù)。
除了
value
參數(shù)外,索引器的
set
訪(fǎng)問(wèn)器還具有與索引器相同的形參表。
50.請(qǐng)敘述const與readonly的區(qū)別。(*)
const關(guān)鍵字用于修改字段或局部變量的聲明。它指定字段或局部變量的值不能被修改。常數(shù)聲明引入給定類(lèi)型的一個(gè)或多個(gè)常數(shù)。
const數(shù)據(jù)成員的聲明式必須包含初值,且初值必須是一個(gè)常量表達(dá)式。由于它是在編譯時(shí)就需要完全評(píng)估。
const成員可以使用另一個(gè)const成員來(lái)初始化,前提是兩者之間沒(méi)有循環(huán)依賴(lài)。
readonly在運(yùn)營(yíng)期評(píng)估賦值,使我們得以在保證“只讀訪(fǎng)問(wèn)”的前提下,把object的初始化動(dòng)作推遲到運(yùn)營(yíng)期進(jìn)行。
readonly關(guān)鍵字與const關(guān)鍵字不同:const字段只能在該字段的聲明中初始化。readonly字段可以在聲明或構(gòu)造函數(shù)中初始化。因此,根據(jù)所使用的構(gòu)造函數(shù),readonly字段也許具有不同的值。此外,const字段是編譯時(shí)常數(shù),而readonly字段可用于運(yùn)營(yíng)時(shí)常數(shù)。readonly只能在聲明時(shí)或者構(gòu)造函數(shù)里面初始化,并且不能在static修飾的構(gòu)造函數(shù)里面。參考資料:51.
請(qǐng)解釋ASP。NET中的web頁(yè)面與其隱藏類(lèi)之間的關(guān)系?一個(gè)ASP.NET頁(yè)面一般都相應(yīng)一個(gè)隱藏類(lèi),一般都在A(yíng)SP.NET頁(yè)面的聲明中指定了隱藏類(lèi)例如一個(gè)頁(yè)面Tst1.aspx的頁(yè)面聲明如下<%@Pagelanguage="c#"Codebehind="Tst1.aspx.cs"AutoEventWireup="false"Inherits="T1.Tst1"%>Codebehind="Tst1.aspx.cs"表白經(jīng)編譯此頁(yè)面時(shí)使用哪一個(gè)代碼文獻(xiàn)Inherits="T1.Tst1"表用運(yùn)營(yíng)時(shí)使用哪一個(gè)隱藏類(lèi)52.
什么是viewstate,能否禁用?是否所用控件都可以禁用?Viewstate是保存狀態(tài)的一種機(jī)制,EnableViewStat(yī)e屬性設(shè)立為false即可禁用。最有力的舉例子:Label、TextBox在禁用ViewStat(yī)e后不同的表現(xiàn)來(lái)說(shuō)明。53、你對(duì)webservice的體會(huì)?答:假如自己寫(xiě)的一些程序也希望別人可以通過(guò)Web服務(wù)來(lái)使用,也可以把自己編寫(xiě)的方法貼上標(biāo)簽[WebMethed]來(lái)實(shí)現(xiàn)Web服務(wù)。[是當(dāng)編寫(xiě)程序時(shí),希望實(shí)現(xiàn)一些別的網(wǎng)站已經(jīng)實(shí)現(xiàn)過(guò)的,也用Web服務(wù)可視成XML語(yǔ)言的編碼??梢允褂脛e人的編碼生成的XML找到自己需要的信息,來(lái)實(shí)現(xiàn)自己編寫(xiě)的程序的一些功能。把傳智播客.net培訓(xùn)的如鵬網(wǎng)項(xiàng)目中用WebService實(shí)現(xiàn)管理客戶(hù)端的例子說(shuō)出來(lái)。SOAP、WSDL。54您在什么情況下會(huì)用到虛方法?它與接口有什么不同?答案:子類(lèi)重新定義父類(lèi)的某一個(gè)方法時(shí),必須把父類(lèi)的方法定義為virtual在定義接口中不能有方法體,虛方法可以。實(shí)現(xiàn)時(shí),子類(lèi)可以不重新定義虛方法,但假如一個(gè)類(lèi)繼承接口,那必須實(shí)現(xiàn)這個(gè)接口。講到這里了55.不定項(xiàng)選擇:(1)以下敘述對(duì)的的是:BCA.接口中可以有虛方法。B.一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口。
C.接口不能被實(shí)例化。D.接口中可以包含已實(shí)現(xiàn)的方法。(2)從數(shù)據(jù)庫(kù)讀取記錄,你也許用到的方法有:BCD
A.ExecuteNonQuery
B.ExecuteScalar
C.Fill
D.ExecuteReader(3).對(duì)于一個(gè)實(shí)現(xiàn)了IDisposable接口的類(lèi),以下哪些項(xiàng)可以執(zhí)行與釋放或重置非托管資源相關(guān)的應(yīng)用程序定義的任務(wù)?(多選)
(
ABC
)
A.CloseB.DisposeC.Finalize
D.usingE.Quit
(4)以下關(guān)于ref和out的描述哪些項(xiàng)是對(duì)的的?(多選)
(
ACD
)
A.使用ref參數(shù),傳遞到ref參數(shù)的參數(shù)必須最先初始化。
B.使用out參數(shù),傳遞到out參數(shù)的參數(shù)必須最先初始化。
C.使用ref參數(shù),必須將參數(shù)作為ref參數(shù)顯式傳遞到方法。
D.使用out參數(shù),必須將參數(shù)作為out參數(shù)顯式傳遞到方法。
講到這里56.單項(xiàng)選擇:(1)下列選項(xiàng)中,(C)是引用類(lèi)型。a)enum類(lèi)型
b)struct類(lèi)型
c)string類(lèi)型
d)int類(lèi)型(2).關(guān)于A(yíng)SP.NET中的代碼隱藏文獻(xiàn)的描述對(duì)的的是(C)a)Web窗體頁(yè)的程序的邏輯由代碼組成,這些代碼的創(chuàng)建用于與窗體交互。編程邏輯唯一與用戶(hù)界面不同的文獻(xiàn)中。該文獻(xiàn)稱(chēng)作為“代碼隱藏”文獻(xiàn),假如用C#創(chuàng)建,該文獻(xiàn)將具有“.ascx.cs”擴(kuò)展名。b)項(xiàng)目中所有Web窗體頁(yè)的代碼隱藏文獻(xiàn)都被編譯成.EXE文獻(xiàn)。c)項(xiàng)目中所有的Web窗體頁(yè)的代碼隱藏文獻(xiàn)都被編譯成項(xiàng)目動(dòng)態(tài)鏈接庫(kù)(.dll)文獻(xiàn)。d)以上都不對(duì)的。(3).下列描述錯(cuò)誤的是(D)a)類(lèi)不可以多重繼承而接口可以;b)抽象類(lèi)自身可以定義成員而接口不可以;c)抽象類(lèi)和接口都不能被實(shí)例化;d)一個(gè)類(lèi)可以有多個(gè)基類(lèi)和多個(gè)基接口;57、DataReader和DataSet的異同?DataReader使用時(shí)始終占用SqlConnection,在線(xiàn)操作數(shù)據(jù)庫(kù)每次只在內(nèi)存中加載一條數(shù)據(jù),所以占用的內(nèi)存是很小的是只進(jìn)的、只讀的DataSet則是將數(shù)據(jù)一次性加載在內(nèi)存中.拋棄數(shù)據(jù)庫(kù)連接..讀取完畢即放棄數(shù)據(jù)庫(kù)連接(非連接模式)Dat(yī)aSet將數(shù)據(jù)所有加載在內(nèi)存中.所以比較消耗內(nèi)存...但是確比Dat(yī)aReader要靈活..可以動(dòng)態(tài)的添加行,列,數(shù)據(jù).對(duì)數(shù)據(jù)庫(kù)進(jìn)行回傳更新操作(動(dòng)態(tài)操作讀入到內(nèi)存的數(shù)據(jù))58、publicstat(yī)icconst;intA=1;這段代碼有錯(cuò)誤么?錯(cuò)誤:const不能被修飾為stat(yī)ic;由于定義為常量(const)后就是靜態(tài)的(stat(yī)ic)。59傳入某個(gè)屬性的set方法的隱含參數(shù)的名稱(chēng)是什么?value,它的類(lèi)型和屬性所聲名的類(lèi)型相同。60、C#支持多重繼承么?類(lèi)之間不支持,接口之間支持。類(lèi)對(duì)接口叫做實(shí)現(xiàn),不叫繼承。61、C#中所有對(duì)象共同的基類(lèi)是什么?System.Object62、通過(guò)超鏈接如何傳遞中文參數(shù)?答:用URL編碼,通過(guò)QueryString傳遞,用urlencode編碼用urldecode解碼63、string、String;int、Int32;Boolean、bool的區(qū)別String、Int32、Boolean等都屬于.Net中定義的類(lèi),而string、int、bool相稱(chēng)于C#中對(duì)這些類(lèi)定義的別名。CTS。64、Server.Transfer和Response.Redirect的區(qū)別是什么?(??迹┐穑篠erver.Transfer僅是服務(wù)器中控制權(quán)的轉(zhuǎn)向,在客戶(hù)端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;Response.Redirect則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。Server.Transfer是服務(wù)器請(qǐng)求資源,服務(wù)器直接訪(fǎng)問(wèn)目的地址的URL,把那個(gè)URL的響應(yīng)內(nèi)容讀取過(guò)來(lái),然后把這些內(nèi)容再發(fā)給瀏覽器,瀏覽器主線(xiàn)不知道服務(wù)器發(fā)送的內(nèi)容是從哪兒來(lái)的,所以它的地址欄中還是本來(lái)的地址。這個(gè)過(guò)程中瀏覽器和Web服務(wù)器之間通過(guò)了一次交互。Response.Redirect就是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,告訴瀏覽器重新去請(qǐng)求那個(gè)地址,一般來(lái)說(shuō)瀏覽器會(huì)用剛才請(qǐng)求的所有參數(shù)重新請(qǐng)求。這個(gè)過(guò)程中瀏覽器和Web服務(wù)器之間通過(guò)了兩次交互。65、不是說(shuō)字符串是不可變的嗎?strings="abc";s="123"不就是變了嗎?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)String是不可變的在這段代碼中,s原先指向一個(gè)String對(duì)象,內(nèi)容是"abc",然后我們將s指向"123",那么s所指向的那個(gè)對(duì)象是否發(fā)生了改變呢?答案是沒(méi)有。這時(shí),s不指向本來(lái)那個(gè)對(duì)象了,而指向了另一個(gè)String對(duì)象,內(nèi)容為"123",本來(lái)那個(gè)對(duì)象還存在于內(nèi)存之中,只是s這個(gè)引用變量不再指向它了。66、是否可以從一個(gè)static方法內(nèi)部發(fā)出對(duì)非static方法的調(diào)用?不可以。由于非static方法是要與對(duì)象關(guān)聯(lián)在一起的,必須創(chuàng)建一個(gè)對(duì)象后,才可以在該對(duì)象上進(jìn)行方法調(diào)用,而stat(yī)ic方法調(diào)用時(shí)不需要?jiǎng)?chuàng)建對(duì)象,可以直接調(diào)用。也就是說(shuō),當(dāng)一個(gè)static方法被調(diào)用時(shí),也許還沒(méi)有創(chuàng)建任何實(shí)例對(duì)象,假如從一個(gè)static方法中發(fā)出對(duì)非static方法的調(diào)用,那個(gè)非static方法是關(guān)聯(lián)到哪個(gè)對(duì)象上的呢?這個(gè)邏輯無(wú)法成立,所以,一個(gè)static方法內(nèi)部不能發(fā)出對(duì)非stat(yī)ic方法的調(diào)用。67、.Net中會(huì)存在內(nèi)存泄漏嗎,請(qǐng)簡(jiǎn)樸描述。(*)所謂內(nèi)存泄露就是指一個(gè)不再被程序使用的對(duì)象或變量一直被占據(jù)在內(nèi)存中。.Net中有垃圾回收機(jī)制,它可以保證一對(duì)象不再被引用的時(shí)候,即對(duì)象變成了孤兒的時(shí)候,對(duì)象將自動(dòng)被垃圾回收器從內(nèi)存中清除掉。雖然.Net可以回收無(wú)用的對(duì)象,但是.Net仍然存在由于使用不妥導(dǎo)致的內(nèi)存泄露問(wèn)題。.Net中的內(nèi)存泄露的情況:長(zhǎng)生命周期的對(duì)象持有短生命周期對(duì)象的引用就很也許發(fā)生內(nèi)存泄露,盡管短生命周期對(duì)象已經(jīng)不再需要,但是由于長(zhǎng)生命周期對(duì)象持有它的引用而導(dǎo)致不能被回收,這就是.Net中內(nèi)存泄露的發(fā)生場(chǎng)景,通俗地說(shuō),就是程序員也許創(chuàng)建了一個(gè)對(duì)象,以后一直不再使用這個(gè)對(duì)象,這個(gè)對(duì)象卻一直被引用,即這個(gè)對(duì)象無(wú)用但是卻無(wú)法被垃圾回收器回收的,這就是.Net中也許出現(xiàn)內(nèi)存泄露的情況,例如,緩存系統(tǒng),我們加載了一個(gè)對(duì)象放在緩存中(例如放在一個(gè)全局Dictionary對(duì)象中),然后一直不再使用它,這個(gè)對(duì)象一直被緩存引用,但卻不再被使用。formManager{publicstaticIList<Form>forms=new.....;}擴(kuò)展:使用弱引用那么即使被引用也可以被回收。68說(shuō)出一些常用的類(lèi)、接口,請(qǐng)各舉5個(gè)要讓人家感覺(jué)你對(duì).Net開(kāi)發(fā)很熟,所以,不能僅僅只列誰(shuí)都能想到的那些東西,要多列你在做項(xiàng)目中涉及的那些東西。就寫(xiě)你最近寫(xiě)的那些程序中涉及的那些類(lèi)。常用的類(lèi):StreamReader、WebClient、Dictionary<K,V>、StringBuilder、SqlConnection、FileStream、File、Regex、List<T>常用的接口:IDisposable、IEnumerable、IDbConnection、IComparable、ICollection、IList、IDictionary要出乎意料!不要僅僅完畢任務(wù)!69、BS與CS的聯(lián)系與區(qū)別。C/S是Client/Server的縮寫(xiě)。客戶(hù)端需要安裝專(zhuān)用的客戶(hù)端軟件。B/S是Brower/Server的縮寫(xiě),客戶(hù)機(jī)上只要安裝一個(gè)瀏覽器。在這種結(jié)構(gòu)下,用戶(hù)界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是重要邏輯在服務(wù)器端實(shí)現(xiàn)。瀏覽器通過(guò)WebServer同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互。C/S與B/S區(qū)別:1).硬件環(huán)境不同:C/S一般建立在專(zhuān)用的網(wǎng)絡(luò)上,小范圍里的網(wǎng)絡(luò)環(huán)境,局域網(wǎng)之間再通過(guò)專(zhuān)門(mén)服務(wù)器提供連接和數(shù)據(jù)互換服務(wù).B/S建立在廣域網(wǎng)之上的,不必是專(zhuān)門(mén)的網(wǎng)絡(luò)硬件環(huán)境,例與電話(huà)上網(wǎng),租用設(shè)備.信息自己管理.有比C/S更強(qiáng)的適應(yīng)范圍,一般只要有操作系統(tǒng)和瀏覽器就行2).對(duì)安全規(guī)定不同C/S一般面向相對(duì)固定的用戶(hù)群,對(duì)信息安全的控制能力很強(qiáng).一般高度機(jī)密的信息系統(tǒng)采用C/S結(jié)構(gòu)適宜.可以通過(guò)B/S發(fā)布部分可公開(kāi)信息.B/S建立在廣域網(wǎng)之上,對(duì)安全的控制能力相對(duì)弱,也許面向不可知的用戶(hù)。3).解決問(wèn)題不同C/S程序可以解決用戶(hù)面固定,并且在相同區(qū)域,安全規(guī)定高需求,與操作系統(tǒng)相關(guān).應(yīng)當(dāng)都是相同的系統(tǒng)。C/S的客戶(hù)端由于是本地程序,因此和本地硬件、程序的交互性很強(qiáng),比如可以控制本機(jī)的其他程序、可以讀寫(xiě)本地磁盤(pán)文獻(xiàn)、可以與硬件交互。B/S建立在廣域網(wǎng)上,面向不同的用戶(hù)群,分散地區(qū),這是C/S無(wú)法作到的.與操作系統(tǒng)平臺(tái)關(guān)系最小,正應(yīng)為如此B/S很難和本地硬件、程序、文獻(xiàn)進(jìn)行交互,比如很難控制本機(jī)的其他程序、很難讀寫(xiě)本地磁盤(pán)文獻(xiàn)、很難與硬件交互,當(dāng)然可以用ActiveX技術(shù)解決,比如網(wǎng)銀等就是這么解決的,這樣做的問(wèn)題就是也許會(huì)被客戶(hù)拒絕,并且只局限于Windows操作系統(tǒng)。C/S也分為兩層架構(gòu)和三層架構(gòu)。兩層架構(gòu):客戶(hù)端程序程序直連數(shù)據(jù)庫(kù);三層架構(gòu):客戶(hù)端訪(fǎng)問(wèn)服務(wù)端的服務(wù),重要邏輯代碼寫(xiě)在服務(wù)端的服務(wù)中,然后服務(wù)端服務(wù)再去訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),Oracle版分布式呼喊中心,WCF。70、編寫(xiě)一個(gè)單例(Singleton)類(lèi)。參考復(fù)習(xí)ppt。把構(gòu)造函數(shù)設(shè)立為private,設(shè)立一個(gè)public、static的對(duì)象實(shí)例publicFileManager{privateFileManager(){}publicstaticFileManagerInstance=newFileManager();}擴(kuò)展:搜“C#Singleton”
71、什么是sql注入?如何避免sql注入?用戶(hù)根據(jù)系統(tǒng)的程序構(gòu)造非法的參數(shù)從而導(dǎo)致程序執(zhí)行不是程序員盼望的惡意SQL語(yǔ)句。使用參數(shù)化的SQL就可以避免SQL注入。具體參考復(fù)習(xí)ppt。舉例子,擺事實(shí)!1'or1=172、數(shù)據(jù)庫(kù)三范式是什么?傳智播客風(fēng)格的非嚴(yán)謹(jǐn)卻一下子明了的解答方式:第二范式:表必須有主鍵。第三范式:表引用其他的表必須通過(guò)主鍵引用。73、說(shuō)出一些數(shù)據(jù)庫(kù)優(yōu)化方面的經(jīng)驗(yàn)?索引內(nèi)部原理:想象成Dictionary,插入、刪除、更新的速度慢了,加上索引也多占用了空間,查詢(xún)的速度快了。加上索引以后速度提高非常明顯。(1)在經(jīng)常檢索的字段上(select*fromPersonwhereName=@Name)使用索引提高查詢(xún)速度。(2)select中只列出必要的字段,而不是*。(3)避免隱式類(lèi)型轉(zhuǎn)換導(dǎo)致的全表掃描,在索引上使用函數(shù)也會(huì)導(dǎo)致全表掃描(由于索引只是為字段建立的,一旦使用表達(dá)式或者函數(shù),那么索引就是失效了,當(dāng)然也可以使用“函數(shù)索引”、“表達(dá)式索引”解決這個(gè)問(wèn)題),使用索引不一定能提高查詢(xún)速度。(4)避免在索引列上使用計(jì)算(whereName+'A'=@MyName)加分的回答:不進(jìn)行無(wú)意義優(yōu)化,根據(jù)性能查看器的報(bào)表,對(duì)最耗時(shí)的SQL進(jìn)行優(yōu)化。74、什么是數(shù)據(jù)庫(kù)事務(wù)?事務(wù)三個(gè)特性:一致性、原子性、隔離性。幾個(gè)SQL語(yǔ)句,要么所有執(zhí)行成功,要么所有執(zhí)行失敗。舉例就用最經(jīng)典的銀行轉(zhuǎn)賬的例子就行,然后再舉一個(gè)項(xiàng)目中用的例子:傳智播客.net培訓(xùn)中批量導(dǎo)入客戶(hù)數(shù)據(jù)的時(shí)候要么所有導(dǎo)入成功,要么所有導(dǎo)入失敗。事務(wù)的三個(gè)操作:Begin、Commit、RollBack。取剛插入數(shù)據(jù)的id值,就要用事務(wù)來(lái)隔離:Insert和selecttop1idfrom75、談?wù)勀銓?duì)設(shè)計(jì)模式的理解(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)世界上本沒(méi)有模式,用的人多了,也就有了模式。不用刻意記每種模式的名字,手中無(wú)模式,心中有模式。大部分設(shè)計(jì)模式就是接口、抽象類(lèi)的一個(gè)組合。ADO.Net基于接口編程,SafeDbCommand、SafeConnection。SettingsProvider。沒(méi)必要記模式的名字。舉例:傳智播客.net培訓(xùn)時(shí)SettingsProvider、第三方支付的例子。76、談?wù)刅iewState。談?wù)剬?duì)ASP.Net原理的理解。談?wù)凙SP.Net生命周期。Label、Textbox在禁用ViewState的時(shí)候自增的不同表現(xiàn)Http是無(wú)狀態(tài)的,WebForm為了實(shí)現(xiàn)基于http的“有狀態(tài)”從而簡(jiǎn)化開(kāi)發(fā),ViewState用來(lái)在兩次請(qǐng)求間保持狀態(tài)。頁(yè)面返回前將界面的狀態(tài)序列化到ViewState中,這樣就將狀態(tài)保存在了瀏覽器中,下次頁(yè)面提交的時(shí)候會(huì)順便再將ViewState提交到服務(wù)器,這樣服務(wù)器就根據(jù)ViewState還原了狀態(tài),這樣WebForm開(kāi)發(fā)就像有狀態(tài)同樣了。談?wù)勛远xAutoInc控件。77、post、get的區(qū)別get的參數(shù)會(huì)顯示在瀏覽器地址欄中,而post的參數(shù)不會(huì)顯示在瀏覽器地址欄中;使用post提交的頁(yè)面在點(diǎn)擊【刷新】按鈕的時(shí)候?yàn)g覽器一般會(huì)提醒“是否重新提交”,而get則不會(huì);用get的頁(yè)面可以被搜索引擎抓取,而用post的則不可以;用post可以提交的數(shù)據(jù)量非常大,而用get可以提交的數(shù)據(jù)量則非常小(2k),受限于網(wǎng)頁(yè)地址的長(zhǎng)度。用post可以進(jìn)行文獻(xiàn)的提交,而用get則不可以。參考閱讀:78、下面的程序執(zhí)行結(jié)果是什么?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)classPerson{publicintAge{get;set;}}inti1=20;inti2=i1;i1++;Console.WriteLine(i2);Personp1=newPerson();p1.Age=20;Personp2=p1;p1.Age++;Console.WriteLine(p2.Age);答案:2021解釋:引用類(lèi)型和值類(lèi)型的區(qū)別。79、Http默認(rèn)的端標(biāo)語(yǔ)是(80)、Ftp默認(rèn)的端標(biāo)語(yǔ)是(21)、SQLServer的默認(rèn)端標(biāo)語(yǔ)是(1433)(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)80、運(yùn)算符++a表達(dá)(先將a加1,然后表達(dá)式的值為a加1后的值),i++表達(dá)(表達(dá)式的值為a,然后a加1)。81、下面程序的執(zhí)行結(jié)果是什么?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)inti=10;Console.WriteLine(i++);Console.WriteLine(++i);Console.WriteLine(i=20);答案:101220解答:前兩個(gè)參考第80題,i++表達(dá)式的值為i自增之前的值,所以打印10,執(zhí)行完畢后i變成11,執(zhí)行++i的時(shí)候表達(dá)式的值為自增以后的值12。C#中賦值表達(dá)式的值為變量被賦值的值,因此最后一個(gè)就輸出i賦值后的值20while((line=reader.ReadLine())!=null){}82、假如不用VisualStudio,用哪個(gè)命令行編譯C#程序?(*)(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)答:csc.exe。83、下列哪個(gè)名詞和WebService不直接相關(guān)?(B)(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)A、UDDIB、GUIDC、WSDLD、SOAPSOAP和HTTP的關(guān)系:SOAP基于Http協(xié)議的,和普通網(wǎng)頁(yè)不同的是網(wǎng)頁(yè)返回HTML,SOAP則是符合SOAP協(xié)議的XML數(shù)據(jù)。84、.NetFramework中的類(lèi)是專(zhuān)門(mén)供C#調(diào)用的是嗎?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)答:錯(cuò)。VB.Net等語(yǔ)言都可以調(diào)用.NetFramework中的類(lèi)。CTS、CLS。85、開(kāi)放性問(wèn)題:說(shuō)出盡也許多的基于.NetFramework的語(yǔ)言。(*)(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)參考解答:C#、VB.Net、F#、PowerShell、IronPython、J#、Ruby.Net86、.Net、ASP.Net、C#、VisualStudio之間的關(guān)系是什么?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)答:.Net一般指的是.NetFramework,提供了基礎(chǔ)的.Net類(lèi),這些類(lèi)可以被任何一種.Net編程語(yǔ)言調(diào)用,.NetFramework還提供了CLR、JIT、GC等基礎(chǔ)功能。ASP.Net是.Net中用來(lái)進(jìn)行Web開(kāi)發(fā)的一種技術(shù),ASP.Net的頁(yè)面部分寫(xiě)在aspx
文獻(xiàn)中,邏輯代碼通常通過(guò)Code-behind的方式用C#、VB.Net等支持.Net的語(yǔ)言編寫(xiě)。C#是使用最廣泛的支持.Net的編程語(yǔ)言。除了C#尚有VB.Net、IronPython等。VisualStudio是微軟提供的用來(lái)進(jìn)行.Net開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境(IDE),使用VisualStudio可以簡(jiǎn)化很多工作,不用程序員直接調(diào)用csc.exe等命令行進(jìn)行程序的編譯,并且VisualStudio提供了代碼自動(dòng)完畢、代碼高亮等功能方便開(kāi)發(fā)。除了VisualStudio,尚有SharpDevelop、MonoDevelop等免費(fèi)、開(kāi)源的IDE,VisualStudioExpress版這個(gè)免費(fèi)版本。87、AJAX解決什么問(wèn)題?如何使用AJAX?AJAX有什么問(wèn)題需要注意?項(xiàng)目中哪里用到了AJAX?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)答:AJAX解決的問(wèn)題就是“無(wú)刷新更新頁(yè)面”,用傳統(tǒng)的HTML表單方式進(jìn)行頁(yè)面的更新時(shí),每次都要將請(qǐng)求提交到服務(wù)器,服務(wù)器返回后再重繪界面,這樣界面就會(huì)經(jīng)歷:提交→變白→重新顯示這樣一個(gè)過(guò)程,用戶(hù)體驗(yàn)非常差,使用AJAX則不會(huì)導(dǎo)致頁(yè)面重新提交、刷新。AJAX最本質(zhì)的實(shí)現(xiàn)是在Javascript中使用XMLHttpRequest進(jìn)行Http的請(qǐng)求,開(kāi)發(fā)中通常使用UpdatePanel、JQuery等方式簡(jiǎn)化AJAX的開(kāi)發(fā),UpdatePanel的方式實(shí)現(xiàn)AJAX最簡(jiǎn)樸,但是數(shù)據(jù)通訊量比較大,由于要來(lái)回傳整個(gè)ViewState,并且不靈活,對(duì)于復(fù)雜的需求則可以使用JQuery提供的ajax功能。UpdatePanel的內(nèi)部原理。AJAX最重要的問(wèn)題是無(wú)法跨域請(qǐng)求(.com→so.rupeng.com),也就是無(wú)法在頁(yè)面中向和當(dāng)前域名不同的頁(yè)面發(fā)送請(qǐng)求,可以使用在當(dāng)前頁(yè)面所在的域的服務(wù)端做代理頁(yè)面的方式解決。在如
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東松山職業(yè)技術(shù)學(xué)院《綠色制造與可持續(xù)發(fā)展》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東水利電力職業(yè)技術(shù)學(xué)院《工程項(xiàng)目管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東汕頭幼兒師范高等專(zhuān)科學(xué)?!吨袊?guó)古代文論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東嶺南職業(yè)技術(shù)學(xué)院《行業(yè)分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 【名師一號(hào)】2020-2021學(xué)年高中英語(yǔ)北師大版必修4-雙基限時(shí)練19
- 三年級(jí)英語(yǔ)上冊(cè)單詞
- 《肩關(guān)節(jié)解剖m》課件
- 語(yǔ)文書(shū)六年級(jí)上冊(cè)人教版
- 【全程復(fù)習(xí)方略】2021年高中化學(xué)選修三單元質(zhì)量評(píng)估(二)第2章-分子結(jié)構(gòu)與性質(zhì)-
- 【2021屆備考】2020全國(guó)名校數(shù)學(xué)試題分類(lèi)解析匯編(12月第一期):B9函數(shù)與方程
- 物理八年級(jí)上冊(cè)凸透鏡成像的規(guī)律(課件)
- 2024-2025學(xué)年新教材高中地理 第3單元 區(qū)域聯(lián)系與區(qū)域發(fā)展 第1節(jié) 大都市輻射對(duì)區(qū)域發(fā)展的影響-以上海市為例說(shuō)課稿 魯教版選擇性必修2
- 物業(yè)充電樁合作加盟協(xié)議書(shū)范文
- 機(jī)械工安全操作規(guī)程有哪些(11篇)
- 2024年執(zhí)業(yè)醫(yī)師考試-中醫(yī)執(zhí)業(yè)醫(yī)師考試近5年真題集錦(頻考類(lèi)試題)帶答案
- 2024-2030年中國(guó)真空滅弧室行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 全國(guó)計(jì)算機(jī)一級(jí)考試題庫(kù)(附答案)
- 【飛科電器公司基于杜邦分析法的財(cái)務(wù)分析案例(7700字論文)】
- 廣東省深圳市(2024年-2025年小學(xué)四年級(jí)語(yǔ)文)統(tǒng)編版期末考試(上學(xué)期)試卷及答案
- 兒童呼吸道合胞病毒感染臨床診治試題
- 2021-2022學(xué)年廣東省廣州市花都區(qū)六年級(jí)(上)期末英語(yǔ)試卷
評(píng)論
0/150
提交評(píng)論