版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
筆試面試題匯總
一、筆試題
1、給你一種二叉樹(shù)的前序序列和中序序列,求其后續(xù)序列?(淘寶)
先看三個(gè)公式:
PreOrder(T)=T的根節(jié)點(diǎn)+PreOrder(T的左子樹(shù))+PreOrder(T的右子樹(shù));
InOrder(T)=InOrder(T的左子樹(shù))+T的根節(jié)點(diǎn)+InOrder(T的右子樹(shù));
PostOrder(T)=PostOrder(T的左子樹(shù))+PostOrder(T的右子樹(shù))+T的根節(jié)點(diǎn)。
根據(jù)以上的三給公式就可以很輕易處理一下兩個(gè)問(wèn)題:
前序+中序今后序;
中序+后序今前序。
當(dāng)然也可把樹(shù)畫(huà)出來(lái),再求他的多種序列。
2、Cache替代算法命中率最高是?(淘寶)
這個(gè)構(gòu)成原理就有講到了,可以找構(gòu)成原理的書(shū)看下,把多種替代算法在理解下,在書(shū)上的
P98-P99講得很詳細(xì)。
3、給一種次序表,然后再給你一種碼值,求在二分查找改碼值的比較次數(shù)?(淘寶)
自己去做二分的查找的過(guò)程,我們懂得二分查找是1。88)的,一次比較次數(shù)不小于log(n)肯定
是錯(cuò)的。詳細(xì)可以看下數(shù)據(jù)構(gòu)造的書(shū),P17-P18講的很詳細(xì)。
4、編譯程序中安排中間代瑪生成的目的是?(淘寶)
把與機(jī)器有關(guān)的工作集中到目的代碼生成階段,難度用工作量下降。便于移直和維護(hù)。利于優(yōu)
化。
5、假設(shè)在n進(jìn)制下,17*456=8206成立,n是多少?(淘寶)
從上面的等式中可以看到8,則進(jìn)制可定不小于8,因此可以從9進(jìn)制開(kāi)始枚舉,直至滿足等式,
就可以了。(提議:先都轉(zhuǎn)換成十進(jìn)制,在實(shí)現(xiàn)乘法運(yùn)算)
6、要從一億會(huì)員中抽出100萬(wàn)會(huì)員,考慮到公平性、相對(duì)?分散、相對(duì)隨機(jī),不能反狂,抽取速度
要快。有一種random函數(shù),能產(chǎn)生0-9的隨機(jī)數(shù)。請(qǐng)寫(xiě)出你能想到的抽取措施?并寫(xiě)明環(huán)節(jié)。
(淘寶)
用random函數(shù)產(chǎn)生兩個(gè)數(shù)xl、x2,那么會(huì)員號(hào)mod100等于xlx2的話,該會(huì)與就被選中。這
樣每個(gè)會(huì)員的中獎(jiǎng)概率是l/100o
7、Mal1oc和new的區(qū)別?
8、++、一、sizeof(字符串、構(gòu)造體)(融通)
9、字符串函數(shù)的實(shí)現(xiàn)(strlen.strepy等)(網(wǎng)龍、億聯(lián)網(wǎng)絡(luò))
10、字符串以單詞逆序
11、CSTK1NG類的某些基本函數(shù)的實(shí)現(xiàn)
12、DEBUG和RELESE兩種調(diào)試的區(qū)別
13、CONST的使用方法
我只要一聽(tīng)到被面試者說(shuō):"const意味著常數(shù)”,我就懂得我正在和一種業(yè)余者打交道。去年Dan
Saks已經(jīng)在他的文章里完全概括了const的所有使用方法,因此ESP(譯者:EmbeddedSystems
Programming)的每一位讀者應(yīng)當(dāng)非常熟悉const能做什么和不能做什么.假如你從沒(méi)有讀到那篇
文章,只要能說(shuō)出const意味著“只讀”就可以了。盡管這個(gè)答案不是完全的答案,但我接受它作
為一種對(duì)的的答案。(假如你想懂得更詳細(xì)的答案,仔細(xì)讀一下Saks的文章吧。)
假如應(yīng)試者能對(duì)的回答這個(gè)問(wèn)題,我將問(wèn)他一種附加的問(wèn)題:
下面的申明都是什么意思?
constinta;
intconsta;
constint*a;
int*consta;
intconst*aconst;
前兩個(gè)的作用是同樣,a是一種常整型數(shù)。第三個(gè)意味著a是一種指向常整型數(shù)的指針(也就是,
整型數(shù)是不可修改的,但指針可以)。第四個(gè)意思a是一種指向整型數(shù)的常指針(也就是說(shuō),指
針指向的整型數(shù)是可以修改的,但指針是不可修改的)。最終一種意味著a是一種指向常整型數(shù)
的常指針(也就是說(shuō),指針指向的整型數(shù)是不可修改的,同步指針也是不可修改的,假如應(yīng)試
者能對(duì)的回答這些問(wèn)題,那么他就給我留下了一種好印象。順帶提一句,也許你也許會(huì)問(wèn),雖
然不用關(guān)健字const,乜還是能很輕易寫(xiě)出功能對(duì)的的程序,那么我為何還要如此看重關(guān)鍵字
const呢?我也如下的幾下理由;
1)關(guān)鍵字const的作用是為給讀你代碼的人傳達(dá)非常有用的信息,實(shí)際上,申明一種參數(shù)為常
量是為了告訴了顧客這個(gè)參數(shù)的應(yīng)用目的。假如你曾花諸多時(shí)間清理其他人留下的垃圾,你就
會(huì)很快學(xué)會(huì)感謝這點(diǎn)多出的信息。(當(dāng)然,懂得用const的程序員很少會(huì)留下的垃圾讓他人來(lái)清
理的。)
2)通過(guò)給優(yōu)化器某些附加的信息,使用關(guān)鍵字const也許能產(chǎn)生更緊湊的代碼。
3)合理地使用關(guān)鍵字const可以使編譯器很自然地保于那些不但愿被變化的參數(shù),防止其被無(wú)
意的代碼修改。簡(jiǎn)而言之,這樣可以減少bug的出現(xiàn)。
14、虛基類抽象基類的使用方法
答:在派生類繼承基類時(shí),加上一種virtual關(guān)鍵詞則為虛擬基類繼承,如:
classderive:virtualpublicbase
{
};
虛基類重要處理在多重繼承時(shí),基類也許被多次繼承,虛基類,重要提供一種基類給
派生類,如:
classB
(
};
classDl:public3
(
);
classD2:public3
(
);
classC:publicDI,publicD2
(
);
這里C在DI,D2上繼承,但有兩個(gè)基類,導(dǎo)致混亂。因而使用虛基類,即:
classB
};
classDl:virtualpublicB
};
classD2:virtualpublicB
(
);
classC:publicDI,publicD2
15、Java線程中的sleep,yeiId,notify的作用和區(qū)別
sleep:讓線程睡眠
yeild:暫停目前正在執(zhí)行的線程對(duì)象,并執(zhí)行其他線程
notify:喚醒線程
16、面向?qū)ο蟮奶匦杂心男┓矫?/p>
封裝、繼承、多態(tài)
17、ServletConfig對(duì)象與ServletContext對(duì)象的作用和區(qū)別
servletconfig對(duì)象可以使用一種或多種<init-param>標(biāo)簽為servlet配置某些初始化參數(shù),
servlet配置了初始化參數(shù)后,web容器在創(chuàng)立servlet實(shí)例對(duì)象時(shí),會(huì)自動(dòng)將這些初始化參數(shù)
封裝到ServletConfig對(duì)象中,并在調(diào)用servlet的init措施時(shí),將ServletConfig對(duì)象傳遞
servlet,進(jìn)而,程序員通過(guò)ServletConfig對(duì)象就可以得到目前servlet的初始化參數(shù)信
息。
WEB容器在啟動(dòng)時(shí),它會(huì)為每個(gè)WEB應(yīng)用程序都創(chuàng)立一種對(duì)應(yīng)的ServletContext對(duì)象,它代表
目前web應(yīng)用。
ServletConfig對(duì)象中維護(hù)了ServletContext對(duì)象的引用,開(kāi)發(fā)人員在編寫(xiě)servlet時(shí),可以
通過(guò)ServletConfig.getServletContext措施獲得ServletContext對(duì)象。
18、編程:鏈表的反轉(zhuǎn)、兩個(gè)排好序鏈表結(jié)合成一種有序鏈表
19、寫(xiě)一種程序?qū)崿F(xiàn)字符串反轉(zhuǎn)。(新大陸)
20、爰態(tài)性意味著一種操作在不一樣的類中可以有不一樣的實(shí)現(xiàn)方式。(淘寶)
21、二分搜索算法
詳細(xì)可以看下數(shù)據(jù)構(gòu)造的書(shū),P17-P18講的很詳細(xì)。
22、樹(shù):節(jié)點(diǎn)個(gè)數(shù)與樹(shù)高的計(jì)算
這個(gè)可以用深搜和廣搜實(shí)現(xiàn),節(jié)點(diǎn)個(gè)數(shù)沒(méi)碰到一種還沒(méi)標(biāo)識(shí)的節(jié)點(diǎn)就加1并標(biāo)識(shí)該節(jié)點(diǎn)。把根
節(jié)點(diǎn)記為1,然后對(duì)于這沒(méi)標(biāo)識(shí)的節(jié)點(diǎn)就等于他父親的值+1,這過(guò)程中出現(xiàn)的最大值就是樹(shù)高。
對(duì)于樹(shù)的某些定義數(shù)據(jù)構(gòu)造書(shū)上有P138-P139.
23、操作系統(tǒng):內(nèi)存的大小端,生產(chǎn)者、消費(fèi)者問(wèn)題
1-2.生產(chǎn)者消費(fèi)者問(wèn)題:
生產(chǎn)者與消費(fèi)者問(wèn)題可以被描述為:一種有限緩沖區(qū)和兩類線程,它們是生產(chǎn)者和消費(fèi)者,
生產(chǎn)者把產(chǎn)品放入緩沖區(qū),相反消費(fèi)者便是從緩沖區(qū)中拿走產(chǎn)品。
生產(chǎn)者在緩沖區(qū)滿時(shí)必須等待,直到緩沖區(qū)有空間才繼續(xù)生產(chǎn)。消費(fèi)者在緩沖區(qū)空時(shí)必須
等待,直到緩沖區(qū)中有產(chǎn)品才能繼續(xù)讀取。
P,V操作來(lái)處理進(jìn)程同步與進(jìn)程通信的問(wèn)題。
信號(hào)量是最早出現(xiàn)的用來(lái)處理進(jìn)程同步與互斥問(wèn)題的機(jī)制,包括?種稱為信號(hào)量的變量及對(duì)
它進(jìn)行的兩個(gè)原語(yǔ)操作,信號(hào)量為一種整數(shù),我們?cè)O(shè)這個(gè)信號(hào)量為:sem。很顯然,我們規(guī)定在
sem不小于等于零的時(shí)候代表可供并發(fā)進(jìn)程使用的資源實(shí)體數(shù),sem不不小于零的時(shí)候,表達(dá)正
在等待使用臨界區(qū)的進(jìn)程的個(gè)數(shù)。根據(jù)這個(gè)原則,在給信號(hào)量附初值的時(shí)候,我們顯然就要設(shè)
初值不小于零。
P操作和v操作是不可中斷的程序段,稱為原語(yǔ)。P,V原語(yǔ)中P是荷蘭語(yǔ)的Passcrcn,相稱
于英文的pass,V是荷蘭語(yǔ)的Verhoog,相稱于英文中的incremneto
P原語(yǔ)操作的動(dòng)作是:
(1)sem減1:
(2)若sem減1后仍不小于或等于零,則進(jìn)程繼續(xù)執(zhí)行;
(3)若sem減1后不不小于零,則該進(jìn)程被阻塞后進(jìn)入與該信號(hào)相對(duì)應(yīng)的隊(duì)列中,然后轉(zhuǎn)進(jìn)
程調(diào)度。
V原語(yǔ)操作的動(dòng)作是:
(1)sem力口1:
(2)若相加成果不小于零,則進(jìn)程繼續(xù)執(zhí)行;
(3)若相加成果不不小于或等于零,則從該信號(hào)的等待隊(duì)列中喚醒一等待進(jìn)程,然后再返回原
進(jìn)程繼續(xù)執(zhí)行或轉(zhuǎn)進(jìn)程調(diào)度。
需要提醒大家一點(diǎn)就是P,V操作對(duì)于每一種進(jìn)程來(lái)說(shuō),都只能進(jìn)行一次。并且必須成對(duì)使用。
且在P,V愿語(yǔ)執(zhí)行期間不容許有中斷的發(fā)生。
24、軟件工程的類圖
類圖(Classdiagram)是最常用的UML圖,顯示出類、接口以及它們之間的靜態(tài)構(gòu)造和關(guān)系;它
用于描述系統(tǒng)的構(gòu)造化設(shè)計(jì)。
類
(Class)一般包括3個(gè)構(gòu)成部分。第一種是類名;第二個(gè)是屬性(attributes);第三個(gè)
是該類提供的措施。
Flight
flightNumber:Integer
departure!ime:Date
flightDuration:Minutes
delayFlight(numberOfMinutes:int):Date
getArrivalTime():Date
類與類間關(guān)系
常見(jiàn)的關(guān)系有:繼承(Generalization),關(guān)聯(lián)關(guān)系(Association),聚合關(guān)系(Aggregation),
組合關(guān)系(Composition),依賴關(guān)系(Dependency)o其中,聚合關(guān)系(Aggregation),
組合關(guān)系(Composition)屬于關(guān)聯(lián)關(guān)系(Association)。
詳見(jiàn)軟件工程教材。
25、C語(yǔ)言:c語(yǔ)言的關(guān)鍵字、運(yùn)算符的優(yōu)先級(jí)與結(jié)合性、宏、指針的理解、typedef等
3T.e語(yǔ)言的關(guān)鍵字
關(guān)鍵字是由C語(yǔ)言規(guī)定的具有特定意義的字符串,一般也稱為保留字。顧客定義的標(biāo)識(shí)
符不應(yīng)與關(guān)鍵字相似。
c語(yǔ)言關(guān)鍵字共32個(gè):
1、數(shù)據(jù)類型關(guān)健字(12個(gè)):
(1).char:申明字符型變量或函數(shù)
(2).double:申明雙精度變量或函數(shù)
(3).enum:中明枚舉類型
(4).float:申明浮點(diǎn)型變量或函數(shù)
(5).int:申明整型變量或函數(shù)
(6).long:申明長(zhǎng)整型變量或函數(shù)
(7).short:申明短整型變量或函數(shù)
(8).signed:申明有符號(hào)類型變量或函數(shù)
(9).struct:申明構(gòu)造體變量或函數(shù)
(10).union:申明聯(lián)合數(shù)據(jù)類型
(11).unsigned:申明無(wú)符號(hào)類型變量或函數(shù)
(12).void:申明函數(shù)無(wú)返回值或無(wú)參數(shù),申明無(wú)類型指針(基本上就這三個(gè)作用)
2、控制語(yǔ)句關(guān)鍵字(12個(gè)):
A.循環(huán)語(yǔ)句
(1).for:一種循環(huán)語(yǔ)句(可意會(huì)不可言傳)
(2).do:循環(huán)語(yǔ)句的循環(huán)體
(3).while:循環(huán)語(yǔ)句的循環(huán)條件
(4).break:跳出目前循環(huán)
(5).continue:結(jié)束目前循環(huán),開(kāi)始下一輪循環(huán)
B.條件語(yǔ)句
(D.if:條件語(yǔ)句
(2).else;條件語(yǔ)句否認(rèn)分支(與if連用)
(3).goto:無(wú)條件跳轉(zhuǎn)語(yǔ)句
C.開(kāi)關(guān)語(yǔ)句
(1).switch:用于開(kāi)關(guān)語(yǔ)句
(2).case:開(kāi)關(guān)語(yǔ)句分支
(3).default:開(kāi)關(guān)語(yǔ)句中的“其他”分支
D.
return:子程序返回語(yǔ)句(可以帶參數(shù),也看不帶參數(shù))
3、存儲(chǔ)類型關(guān)鍵字(4個(gè)):
(1).auto:申明自動(dòng)變量一般不使用
(2).extern:申明變量是在其他文獻(xiàn)正申明(也可以看做是引用變量)
(3).register:申明積存器變量
(4).static:申明靜態(tài)變量
4、其他關(guān)鍵字(4個(gè)):
(1).const:申明只讀變量
(2).sizeof:計(jì)算數(shù)據(jù)類型長(zhǎng)度
(3).typedef:用以給數(shù)據(jù)類型取別名(當(dāng)然尚有其他作用)
(4).volatile:闡明變量在程序執(zhí)行中可被隱含地變化
3-2.運(yùn)算符的優(yōu)先級(jí)與結(jié)合性、宏、指針的理解、typedef等
注:譚浩強(qiáng)那本書(shū)附錄很詳細(xì)。
c語(yǔ)言運(yùn)算符
1級(jí)優(yōu)先級(jí)左結(jié)合
0圓括號(hào)
[]下標(biāo)運(yùn)算符
->指向構(gòu)造體組員運(yùn)算符
.構(gòu)造體組員運(yùn)算符
2級(jí)優(yōu)先級(jí)右結(jié)合
!邏輯非運(yùn)算符
~按位取反運(yùn)算符
++前綴增量運(yùn)算符
~前綴增量運(yùn)算符
+正號(hào)運(yùn)算符
-負(fù)號(hào)運(yùn)算符
(類型)類型轉(zhuǎn)換運(yùn)算符
*指針運(yùn)算符
&地址與運(yùn)算符
sizeof長(zhǎng)度運(yùn)算符
3級(jí)優(yōu)先級(jí)左結(jié)合
?乘法運(yùn)算符
/除法運(yùn)算符
%取余運(yùn)算符
4級(jí)優(yōu)先級(jí)左結(jié)合
+加法運(yùn)算符
-減法運(yùn)算符
5級(jí)優(yōu)先級(jí)左結(jié)合
?左移運(yùn)算符
?右移運(yùn)算符
6級(jí)優(yōu)先級(jí)左結(jié)合
<、<=、>、>=關(guān)系運(yùn)算符
7級(jí)優(yōu)先級(jí)左結(jié)合
==等于運(yùn)算符
!=不等于運(yùn)算符
8級(jí)優(yōu)先級(jí)左結(jié)合
&按位與運(yùn)算符
9級(jí)優(yōu)先級(jí)左結(jié)合
-按位異或運(yùn)算符
10級(jí)優(yōu)先級(jí)左結(jié)合
I按位或運(yùn)算符
11級(jí)優(yōu)先級(jí)左結(jié)合
&&邏輯與運(yùn)算符
12級(jí)優(yōu)先級(jí)左結(jié)合
II邏輯或運(yùn)算符
13級(jí)優(yōu)先級(jí)右結(jié)合
?:條件運(yùn)算符
14級(jí)優(yōu)先級(jí)右結(jié)合
=+=-=*=/=%=&="=|=<<=>>=全為賦值運(yùn)算符
15級(jí)優(yōu)先級(jí)左結(jié)合
,逗號(hào)運(yùn)算符
26、網(wǎng)絡(luò):就。si模型
0SI七層模型簡(jiǎn)介
0SI是一種開(kāi)放性的通行系統(tǒng)互連參照模型,他是一種定義的非常好的協(xié)議規(guī)范。DSI模型有
7層構(gòu)造,每層都可以有幾種子層。
0SI的7層從上到下分別是
7應(yīng)用層6表達(dá)層5會(huì)話層4傳播層3網(wǎng)絡(luò)層2數(shù)據(jù)鏈路層1物理層
其中高層,既7、6、5、4層定義了應(yīng)用程序的功能,下面3層,既3、2、1層重要面向通過(guò)
網(wǎng)絡(luò)的端到端的數(shù)據(jù)流。下面我給大家簡(jiǎn)介一下這7層的功能:
1)應(yīng)用層:與其他計(jì)算機(jī)進(jìn)行通訊的一種應(yīng)用,它是對(duì)應(yīng)應(yīng)用程序的通信服務(wù)的。例如,
一種沒(méi)有通信功能的字處理程序就不能執(zhí)行通信的代碼,從事字處理工作的程序員也不關(guān)懷0S1
的第7層。不過(guò),假如添加了一種傳播文獻(xiàn)的選項(xiàng),那么字處理器的程序員就需要實(shí)現(xiàn)OSI的第
7層。示例:telnet.HTTP,等。
2)表達(dá)層:這一層的重要功能是定義數(shù)據(jù)格式及加密。例如,F(xiàn)TP容許你選擇以二進(jìn)制
或ASII格式傳播。假如選擇二進(jìn)制,那么發(fā)送方和接受方不變化文獻(xiàn)的內(nèi)容。假如選擇ASII格
式,發(fā)送方將把文本從發(fā)送方的字符集轉(zhuǎn)換成原則的ASII后發(fā)送數(shù)據(jù)。在接受方將原則的ASII
轉(zhuǎn)換成接受方計(jì)算機(jī)的字符集。示例:加密,ASII等。
3)會(huì)話層:他定義了怎樣開(kāi)始、控制和結(jié)束一種會(huì)話,包括對(duì)多種雙向小時(shí)的控制和管
理,以便在只完畢持續(xù)消息的一部分時(shí)可以告知應(yīng)用,從而使表達(dá)層看到的數(shù)據(jù)是持續(xù)的,在某
些狀況下,假如表達(dá)層收到了所有的數(shù)據(jù),則用數(shù)據(jù)代表表達(dá)層。示例:RPC,SQL等°
4)傳播層:這層的功能包括與否選擇差錯(cuò)恢復(fù)協(xié)議還是無(wú)差錯(cuò)恢復(fù)協(xié)議,及在同一主機(jī)
上對(duì)不一樣應(yīng)用的數(shù)據(jù)流的輸入進(jìn)行復(fù)用,還包括對(duì)收到的次序不對(duì)的數(shù)據(jù)包的重新排序功能。
示例:TCP,UDP,SPXo
5)網(wǎng)絡(luò)層:這層對(duì)端到端的包傳播進(jìn)行定義,他定義了可以標(biāo)識(shí)所有結(jié)點(diǎn)的邏輯地址,
還定義了路由實(shí)現(xiàn)的方式加學(xué)習(xí)的方式。為了適應(yīng)最大傳播單元長(zhǎng)度不不小于包長(zhǎng)度的傳播介質(zhì),
網(wǎng)絡(luò)層還定義了怎樣將一種包分解成更小的包的分段措施。示例:IP,IPX等。
6)數(shù)據(jù)鏈路層:他定義了在單個(gè)鏈路上怎樣傳播數(shù)據(jù)。這些協(xié)議與被討論的歌種介質(zhì)有
關(guān)。示例:ATM,FDDI等。
7)物理層:0SI的物理層規(guī)范是有關(guān)傳播介質(zhì)的特性原則,這些規(guī)范一般也參照了其他
組織制定的原則。連接頭、針、針的使用、電流、電流、編碼及光調(diào)制等都屬于多種物理層規(guī)范
中的內(nèi)容。物理層常用多種規(guī)范完畢對(duì)所有細(xì)節(jié)的定義。示例:RJ45,802.3等。
27、在一種工程中,假如一種文獻(xiàn)向要引用其他文獻(xiàn)中定義的一種變量或者函數(shù),請(qǐng)問(wèn)需要添
加什么關(guān)鍵字?答:extern。
28、volatile:闡明變量在程序執(zhí)行中可被隱含地變化
29、
voidfunc(void){
staticinti=0;
i++;
printf(線d\n”,i);
)
voidmain(){
func();
func();
)
請(qǐng)問(wèn)輸出是:
1
2
(關(guān)鍵考察static關(guān)鍵字)
30、指針的應(yīng)用方面,數(shù)組應(yīng)用,鏈表應(yīng)用。
31、某些簡(jiǎn)樸的字符串處理函數(shù),排序函數(shù)(冒泡,快排等)。
32、智力游戲:
你面前有一對(duì)黑白棋,同色給你足夠多的黑白棋(以防不夠用)。你每次從這一堆黑(B)白(W)
棋中隨機(jī)抽取出2顆棋子,假如同色(BB,W),則向這一堆中放入一顆黑棋,否則:RW)放入
一顆白棋。最終只剩余一顆。請(qǐng)問(wèn),最終狀態(tài)和初始狀態(tài)有和關(guān)系?
解:由于當(dāng)抽取出RW時(shí),放入W,即W沒(méi)有減少,而抽取出WW時(shí),放入的是B,因此K只能成
對(duì)減少。因此成果與W的奇偶有關(guān),W為奇,則剩余W;否則剩余B。
33、500Mtxt搜a(bǔ)bed串
34、封裝,繼承,多態(tài),析構(gòu)函數(shù),解析函數(shù)有關(guān)的題目
35、給你10萬(wàn)個(gè)關(guān)鍵詞,然后再給你某些文章(這些文章的大小為k的數(shù)量級(jí)的),然后把文
章中出現(xiàn)的關(guān)鍵詞過(guò)濾不確定的解答:先根據(jù)10萬(wàn)個(gè)關(guān)鍵詞構(gòu)建AC自動(dòng)機(jī),然后對(duì)每一篇文
章進(jìn)行一次AC自動(dòng)機(jī)處理,這樣的空間復(fù)雜度是10萬(wàn)個(gè)關(guān)鍵詞的字典樹(shù)的空間消耗。他的下
一種問(wèn)題是怎樣進(jìn)行空間優(yōu)化,當(dāng)事人表達(dá)不懂。
36、編程題:
String[]str={“test",null,"“中國(guó)“,“福富軟件”}
設(shè)一全局變量*然后讓字符數(shù)組變成t*o*s*t中*國(guó),福*富*軟*件并輸出
答案:
源碼(僅供參照):
publicclassTest{
publicstaticvoidmain(String[]args){
String[]str="中國(guó)",nul1,“福富軟件","test"};
for(inti=0;i<str.length;i++){
StringBuffersb=newStringBuffer();
sb.delete(0,sb.length());
sb.append(str[i]);
ifequals(str[i])||str[i]==null)
System.out.printing'*");
else{
intn=1;
intlen=str[i].length();
while((len-)>1){
sb.insert(n,;
n=n+2;
)//endwhile
System,out.println(sb);
lendelse
}//endfor
"/endmain
}//ondclass
37、編程題:實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接工具類,并實(shí)現(xiàn)增刪改查的功能。
二、面試題(計(jì)算機(jī)1、3、4、7班提供)
1、Linux的存儲(chǔ)管理?(融通)
Linux采用祈求調(diào)頁(yè)方略進(jìn)行存儲(chǔ)管理。祈求調(diào)頁(yè)方略在內(nèi)外村之間來(lái)回傳遞的是存儲(chǔ)頁(yè)而不
是整個(gè)進(jìn)程,從而使得進(jìn)程的地址映射具有了更大的靈活性,且容許進(jìn)程的大小比可用物理存
儲(chǔ)空間大得多。
2、Linux的常用命令?(如:1s及其參數(shù))(融通)
3、數(shù)據(jù)庫(kù)索引:怎樣建立及其作用?(實(shí)達(dá)電腦)
索引是對(duì)數(shù)據(jù)庫(kù)表中一列或多列的值進(jìn)行排序的一種構(gòu)造,使用索引可迅速訪問(wèn)數(shù)據(jù)庫(kù)表中的
特定信息,索引好比是一本書(shū)前面的目錄,用之能加緊數(shù)據(jù)庫(kù)的查詢速度
建立索引的一般格式:create[unique][cluster]index(索引名)on<表名>(<列
名》【<次序》】[,<列名>[<次序;
4、多進(jìn)程訪問(wèn)共有資源怎樣處理沖突?(實(shí)達(dá)電腦)
靠進(jìn)程間互斥來(lái)實(shí)現(xiàn)
5、UML的多種圖?(如請(qǐng)說(shuō)出幾種UML的圖)(融通)
用例圖,類圖,對(duì)象圖,活動(dòng)圖,狀態(tài)圖,次序圖,協(xié)作圖,構(gòu)件圖,布署圖。
6、最擅長(zhǎng)的科目?接下來(lái)的問(wèn)題:用一句話概括該科目?及有關(guān)該科目的某些問(wèn)題
7、在C語(yǔ)言里面用指針要注意哪些方面?(福富)
內(nèi)存泄露,內(nèi)存碎片,數(shù)組越界.
8、進(jìn)程間通信實(shí)現(xiàn)方式?(聯(lián)迪、實(shí)達(dá))
信號(hào),信號(hào)量,消息隊(duì)列,共享內(nèi)存,命名管道
9、Conststatic、final,typed、define等的使用方法?(網(wǎng)龍、實(shí)達(dá))
1)const是一種C語(yǔ)言的關(guān)鍵字,它限定一種變量不容許被變化。使用const在一定程度上
可以提高程序的安全性和可靠性;
2)C++的static有兩種使用方法:面向過(guò)程程序設(shè)計(jì)中的static和面向?qū)ο蟪绦蛟O(shè)計(jì)
中的static。前者應(yīng)用于一般變量和函數(shù),不波及類;后者重要闡明static在類中
的作用,面向過(guò)程程序設(shè)計(jì)中sialic使用方法重要有:靜態(tài)全局變量,靜態(tài)局部變
量,尚有靜態(tài)函數(shù),定義靜態(tài)函數(shù)的好處:靜態(tài)函數(shù)不能被其他文獻(xiàn)所用;其他文
獻(xiàn)中可以定義相似名字的函數(shù),不會(huì)發(fā)生沖突;面向?qū)ο笾械氖褂梅椒ㄓ校红o態(tài)數(shù)
據(jù)組員,靜態(tài)組員函數(shù)之類的
3)Final:Java關(guān)鍵字final有“這是無(wú)法變化的”或者“終態(tài)的”含義,它可以修飾
非抽象類、非抽象類組員措施和變量??梢孕揎椀膶?duì)象:final域final措施final
類。final類不能被繼承,沒(méi)有子類,final類中的措施默認(rèn)是final的。final措
施不能被子類的措施覆蓋,但可以被繼承。final組員變量表達(dá)常量,只能被賦值一
次,賦值后值不再變化。final不能用于修飾構(gòu)造措施。
4)Typedef:為既有類型創(chuàng)立一種新的名字,是一種在計(jì)算機(jī)編程語(yǔ)言中用來(lái)申明自定
義數(shù)據(jù)類型,配合多種原有數(shù)據(jù)類型來(lái)到達(dá)簡(jiǎn)化編程的目的的類型定義關(guān)建字。
5)Define:
a)簡(jiǎn)樸的define定義^defineMAXTIME1000
b)define的"函數(shù)定義"Sdefinemax(x,y)(x)》(y)?(x):(y)等等
10、堆和棧的區(qū)別?(聯(lián)迪、實(shí)達(dá)、臺(tái)達(dá))
棧區(qū)(stack)一由編譯器自動(dòng)分派群放,寄存函數(shù)的參數(shù)值,局部變量的值等。其操作方式類
似于數(shù)據(jù)構(gòu)造中的棧。
堆區(qū)(heap)一一般由程序員分派釋放,若程序員不移放,程序結(jié)束時(shí)也許由OSI可收。注意它
與數(shù)據(jù)構(gòu)造中的堆是兩回事,分派方式倒是類似于鏈表。詳細(xì)差異如下:
(1)申請(qǐng)方式:
stack:由系統(tǒng)自動(dòng)分派。例如,申明在函數(shù)中一種局部變量intb;系統(tǒng)自動(dòng)在棧中
為b開(kāi)辟空間;
heap:需要程序員自己申請(qǐng),并指明大小,在c中malloc函數(shù),如pl=(char
*)malloc(10);
(2)申請(qǐng)后系統(tǒng)的反應(yīng):
棧:只要棧的剩余空間不小于所申請(qǐng)空間,系統(tǒng)將為程序提供內(nèi)存,否則將報(bào)異常提醒棧
溢出。
堆:首先應(yīng)當(dāng)懂得操作系統(tǒng)有一種記錄空閑內(nèi)存地址的鏈表,當(dāng)系統(tǒng)收到程序的申請(qǐng)時(shí),
會(huì)遍歷該鏈表,尋找第一種空間不小于所申請(qǐng)空間的堆結(jié)點(diǎn),然后將該結(jié)點(diǎn)從空閑結(jié)點(diǎn)鏈
表中刪除,并將該結(jié)點(diǎn)的空間分派給程序;
(3)申請(qǐng)大小的限制:
棧:在Windows卜,棧是向低地址擴(kuò)展的數(shù)據(jù)構(gòu)造,是一塊持續(xù)的內(nèi)存的區(qū)域。這句話的
意思是棧頂?shù)牡刂泛蜅5淖畲笕萘渴窍到y(tǒng)預(yù)先規(guī)定好的,在WINDOWS下,棧的大小是2M
(也有的說(shuō)是1M,總之是一種編譯時(shí)就確定的營(yíng)數(shù)),假如申請(qǐng)的空間超過(guò)棧的剩余空
間時(shí),將提醒overflow。因此,能從棧獲得的空間較小。
堆:堆是向高地址擴(kuò)展的數(shù)據(jù)構(gòu)造,是不持續(xù)的內(nèi)存區(qū)域。這是由于系統(tǒng)是用鏈表來(lái)存儲(chǔ)
的空閑內(nèi)存地址的,自然是不持續(xù)的,而鏈表的遍歷方向是由低地址向高地址。堆的大小
受限于計(jì)算機(jī)系統(tǒng)中有效的虛擬內(nèi)存。由此可見(jiàn),堆獲得的空間比較靈活,也比較大。
(4)申請(qǐng)效率的比較:
棧由系統(tǒng)自動(dòng)分派,速度較快。但程序員是無(wú)法控制的。
堆是由new分派的內(nèi)存,一般速度比較慢,并且輕易產(chǎn)生內(nèi)存碎片,不過(guò)用起來(lái)最以
便.
(5)存儲(chǔ)內(nèi)容的比較:
棧:在函數(shù)調(diào)用時(shí),第一種進(jìn)棧的是主函數(shù)中后的下一條指令(函數(shù)調(diào)用語(yǔ)句的下一條可
執(zhí)行語(yǔ)句)的地址,然后是函數(shù)的各個(gè)參數(shù),在大多數(shù)的C編譯器中,參數(shù)是由右往左入
棧的,然后是函數(shù)中的局部變量。注意靜態(tài)變量是不入棧的,當(dāng)本次函數(shù)調(diào)用結(jié)束后,局
部變量先出棧,然后是參數(shù),最終棧頂指針指向最開(kāi)始存的地址,也就是主函數(shù)中的卜一
條指令,程序由該點(diǎn)繼續(xù)運(yùn)行。
堆:一般是在堆的頭部用一種字節(jié)寄存堆的大小。堆中的詳細(xì)內(nèi)容有程序員安排。
11、全局變量和靜態(tài)變量的存儲(chǔ)方式?(實(shí)達(dá))
都寄存在靜態(tài)存儲(chǔ)區(qū)
12、段式存儲(chǔ)和頁(yè)式存儲(chǔ)的原理?(正泰電氣)
頁(yè)式管理:
首先,各進(jìn)程的虛擬空間被劃分為若干個(gè)長(zhǎng)度相等的頁(yè)。頁(yè)長(zhǎng)的劃分和內(nèi)存外存之間數(shù)據(jù)
傳播速度以及內(nèi)存大小等有關(guān)。一般每個(gè)頁(yè)長(zhǎng)大概為L(zhǎng)4K,通過(guò)頁(yè)劃分之后,進(jìn)程的虛地址變
為頁(yè)號(hào)P與頁(yè)內(nèi)地址H所構(gòu)成;除了把進(jìn)程的虛擬空間劃分為大小相等的頁(yè)之外,頁(yè)式管理還
把內(nèi)存空間也按頁(yè)的大小劃分為片或頁(yè)面。這些頁(yè)面為系統(tǒng)中的任一進(jìn)程所共享(除去操作系
統(tǒng)區(qū)外)。從而,與分區(qū)管理不一樣樣,分頁(yè)管理師.顧客進(jìn)程在內(nèi)存空間內(nèi)除了在每個(gè)頁(yè)面
內(nèi)地址持續(xù)之外,每個(gè)頁(yè)面之間不再持續(xù)。第一是實(shí)現(xiàn)了內(nèi)存中碎片的減少,由于任一碎片都
會(huì)不不小于?種頁(yè)面,第二是實(shí)現(xiàn)了由持續(xù)存儲(chǔ)到非持續(xù)存儲(chǔ)這個(gè)飛躍,為在內(nèi)存中局部地,
動(dòng)態(tài)地存儲(chǔ)那些反復(fù)執(zhí)行或即將執(zhí)行的程序或數(shù)據(jù)段打下了基礎(chǔ)。
再者,頁(yè)式管理采用祈求調(diào)頁(yè)或預(yù)調(diào)頁(yè)技術(shù)式實(shí)現(xiàn)了內(nèi)外存儲(chǔ)器的統(tǒng)一管理。印內(nèi)存內(nèi)只
寄存那些常常被執(zhí)行或即將被執(zhí)行的貝,而那些小常彼執(zhí)行以及在近期內(nèi)小也許被執(zhí)行的貝,
則寄存于外存中待需要時(shí)再調(diào)入。
段式管理:
段式管理是把程序按內(nèi)容或過(guò)程(函數(shù))關(guān)系提成段,每段有自己的名字,一種顧客作業(yè)
或進(jìn)程所包括的段對(duì)應(yīng)于一種二維線性虛擬空間,也就是一種二維虛擬存儲(chǔ)器。段式管理程序
以段為單位分派內(nèi)存,然后通過(guò)地質(zhì)映射機(jī)構(gòu)把段式虛擬地址轉(zhuǎn)換成實(shí)際的內(nèi)存物理地址。和
頁(yè)式管理同樣,段式管理也采用只把那些常常訪問(wèn)的段駐留內(nèi)存,而把那些在未來(lái)一段時(shí)間內(nèi)
不被訪問(wèn)的段放入外存,待需要時(shí)自動(dòng)調(diào)入的措施實(shí)現(xiàn)二維虛擬存儲(chǔ)器。
13、TCP三次握手協(xié)議?(臺(tái)達(dá))
在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一種連接。
第一次握手:建立連接時(shí),客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待
服務(wù)器確認(rèn):SYN?同步序列編號(hào)(SynchronizeSequenceNumbers)o
第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+l),同步自己也發(fā)送一種SYN
包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+l),此包發(fā)
送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完畢三次握手。
完畢三次握手,客戶端與服務(wù)器開(kāi)始傳送數(shù)據(jù)。
!HOSTI
ReceiveSYN
(seq=x)
SendSYN
(seq=y,
ACK=x*1)
ReceiveACK
(ack=y*1)
14、對(duì)接口理解多少?(臺(tái)達(dá))
鼠標(biāo)、攝像頭、優(yōu)盤(pán)都是使用USB接口的設(shè)備,假如想要使用他們就必須連接在USB接口上,
這些設(shè)備的接口必須遵守USB接口的規(guī)范才能通過(guò)USB接口來(lái)使用??梢赃@樣說(shuō):接口是一套
規(guī)范,滿足這個(gè)規(guī)范的設(shè)備,我們就可以把他們組裝到一起,從而實(shí)現(xiàn)該設(shè)備的功能。
接口類型是指游戲設(shè)備與電視機(jī)或電腦主機(jī)之間的接11類型。詳細(xì)有勺電視機(jī)相連的AV接II,
與電腦主機(jī)相連的串口、USB接口、PCI接口、I-LINK(四針I(yè)EEE1394接口)、連接聲卡的MIDI
接口、無(wú)線接口等等。
15、什么叫死鎖?怎樣防止和處理死鎖?(實(shí)達(dá))
所謂死鎖:是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過(guò)程中,因爭(zhēng)奪資源而導(dǎo)致的一種力相等待的現(xiàn)
象,若無(wú)外力作用,它們都將無(wú)法推進(jìn)下去。此時(shí)稱系統(tǒng)處在死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖,這
些永遠(yuǎn)在互相等待的進(jìn)程稱為死鎖進(jìn)程。由于資源占用是互斥的,當(dāng)某個(gè)進(jìn)程提出申請(qǐng)資源后,
使得有關(guān)進(jìn)程在無(wú)外力協(xié)助下,永遠(yuǎn)分派不到必需的資源而無(wú)法繼續(xù)運(yùn)行,這就產(chǎn)生了一種特
殊現(xiàn)象死鎖。
產(chǎn)生死鎖的四個(gè)必要條件:
互斥條件(Mutualexclusion)
一種資源每次只能被一種進(jìn)程使用。
祈求與保持條件(占有等待)(Holdandwait)一種進(jìn)程因祈求資源而阻塞時(shí),對(duì)已獲得的
資源保持不放。
不剝奪條件(不可搶占)(Nopre-emption)
進(jìn)程已獲得的資源,在未使用完之前,不能強(qiáng)行剝奪。
循環(huán)等待條件(Circularwait)
若干進(jìn)程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系。
這四個(gè)條件是死鎖的必要條件,只要系統(tǒng)發(fā)生死鎖,這些條件必然成立,而只要上述條件之
一不滿足,就不會(huì)發(fā)生死鎖。
死鎖的解除與防止
理解了死鎖的原因,尤其是產(chǎn)生死鎖的四個(gè)必要條件,就可以最大也許地防止、防止和解除死
鎖。因此,在系統(tǒng)設(shè)計(jì)、進(jìn)程調(diào)度等方面注意怎樣不讓這四個(gè)必要條件成立,怎樣確定資源的
合理分派算法,防止進(jìn)程永久占據(jù)系統(tǒng)資源。此外,也要防止進(jìn)程在處在等待狀態(tài)的狀況下占
用資源,在系統(tǒng)運(yùn)行過(guò)程中,對(duì)進(jìn)程發(fā)出的每一種系統(tǒng)可以滿足的資源申請(qǐng)進(jìn)行動(dòng)態(tài)險(xiǎn)查,并根
據(jù)檢查成果決定與否分派資源,若分派后系統(tǒng)也許發(fā)生死鎖,則不予分派,否則予以分派。因
此,對(duì)資源的分派要予以合理的規(guī)劃。
有序資源分派法
這種算法資源按某種規(guī)則系統(tǒng)中的所有資源統(tǒng)一編號(hào)]例如打印機(jī)為1、磁帶機(jī)為2、磁盤(pán)為3、
等等),申請(qǐng)時(shí)必須以上升的次序。系統(tǒng)規(guī)定申請(qǐng)進(jìn)程:
1、對(duì)它所必須使用的并且屬于同一類的所有資源,必須一次申請(qǐng)完;
2、在申請(qǐng)不一樣類資源時(shí),必須按各類設(shè)備的編號(hào)依次申請(qǐng)。例如:進(jìn)程PA,使用資源的次
序是RI,R2;進(jìn)程PB,使用資源的次序是R2,R1;若采用動(dòng)態(tài)分派有也許形成環(huán)路條件,導(dǎo)
致死鎖。
采用有序資源分派法:R1的編號(hào)為1,R2的編號(hào)為2;PA:申請(qǐng)次序應(yīng)是:RI,R2PB:
申請(qǐng)次序應(yīng)是:RI,R2這樣就破壞了環(huán)路條件,防止了死鎖的發(fā)生
銀行算法
防止死鎖算法中最有代表性的算法是DijkstraE.W于1968年提出的銀行家算法:該算法
需要檢查申請(qǐng)者對(duì)資源的最大需求品,假如系統(tǒng)現(xiàn)存的各類資源可以滿足申請(qǐng)者的祈求,就滿
足申請(qǐng)者的祈求。這樣申請(qǐng)者就可很快完畢其計(jì)算,然后釋放它占用的資源,從而保證了系統(tǒng)
中的所有進(jìn)程都能完畢,因此可防止死鎖的發(fā)生。
死鎖排除的措施
1、撤銷(xiāo)陷于死鎖的所有進(jìn)程;
2、逐一撤銷(xiāo)陷于死鎖的進(jìn)程,直到死鎖不存在;
3、從陷于死鎖的進(jìn)程中逐一強(qiáng)迫放棄所占用的資源,直至死鎖消失。
4、從此外某些進(jìn)程那里強(qiáng)行剝奪足夠數(shù)顯的資源分派給死鎖進(jìn)程,以解除死鎖狀態(tài)
16、網(wǎng)絡(luò)編程的次序?(臺(tái)達(dá))
*TCP編程服務(wù)器端環(huán)節(jié):
1.創(chuàng)立Sockel,端口監(jiān)聽(tīng)
ServerSocketserverSocket=newServerSocket(4444);
2.接受客戶連接
SocketclientSocket=serverSocket.eiccept();
3.創(chuàng)立讀寫(xiě)對(duì)象
PrintWriterout=newPrintWriter(
clientSocket.gctOutputStreamO,t
rue);
BufferedReaderin=newBufferedReader(
newInputStreamRcader(
clientSocket.5etlnputS
treamO));
4.運(yùn)用讀寫(xiě)對(duì)象,與客戶端通信
StringinputLine,outputLine;
inputLine=in.readLineO;
out.printIn(outputLine);
5.關(guān)閉對(duì)象
out.close();
in.closeO;
clientSocket.close();
serverSocket.close();
*TCP編程客戶端環(huán)節(jié):
1.創(chuàng)立Socket
SocketechoSocket=newSocket("Hostname”,7);
2.創(chuàng)立讀寫(xiě)對(duì)象
PrintWriterout=newPrintWriter(echoSockel.getOutputStream(),true);
BufferedReaderin=newBufferedReader(newInputStreamReader(
echoSocket.getlnputStreamO));
3.運(yùn)用讀寫(xiě)對(duì)象,與服務(wù)器通信
StringuserString;
userString=in.readLineO;
out.printIn(userString);
4.關(guān)閉對(duì)象
out.closeO;
in.closeO;
echoSocket.closeO;
*UDP編程服務(wù)器端環(huán)節(jié):
1.創(chuàng)立socket
DatagramSocketsocket=newDatagramSocket(4445);
2.接受客戶祈求
byte[]buf=newbyte[256];
DatagramPacketpacket=newDatagramPacket(buf,buf.length);
socket,receive(packet);
3.數(shù)據(jù)準(zhǔn)備
StringdString=newDate().toStringO;
buf=dString.getBytesO;
4.提取客戶端信息
InetAddressaddress=packet.getAddressO;
intport=packet.getPort();
5.發(fā)送數(shù)據(jù)
packet=newDatagramPacket(buf,buf.length,address,port);
socket,send(packet);
6.關(guān)閉對(duì)象
socket.closeO;
*UDP編程客戶端環(huán)節(jié):
1.創(chuàng)立Socket
DatagramSocketsocket=newDatagramSocket();
2.準(zhǔn)備服務(wù)器信息
byte[]buf=newbyte[256];
InetAddressaddress=InetAddress.getByName(,,Hostname,/);
DatagramPacketpacket=newDatagramPacket(buf,
buf.length,address,4445);
3.向服務(wù)器發(fā)送祈求
socket,send(packet);
4.從服務(wù)器讀取信息
packet=newDatagramPacket(buf,buf.length);
socket,receive(packet);
5.關(guān)閉對(duì)象
socket.close();
17、給你一種字符串將所有嚴(yán)格遞增的子串輸出,現(xiàn)場(chǎng)寫(xiě)代碼實(shí)現(xiàn)。(淘寶)
intfront="l;
for(inti=l;str[i]!=\0f;++i){
if(str[i]-str[i-l]==l){
if(front==-l){
front=i-l;
)
)
else{
if(front!=-l){
for(intj=front;j<i;++j){
printf(“4c”,str[j]);
}
printfC\n*);
front=-l;
)
)
)
18、怎樣通過(guò)修改協(xié)議,使得服務(wù)器能一次性將客服端發(fā)過(guò)來(lái)的消息所有接受?(淘寶)
19、一種HR,兩個(gè)技術(shù)官和我這個(gè)應(yīng)聘者,請(qǐng)問(wèn)可以用軟件工程措施劃分為幾種類?(聯(lián)迪商
用)
20、耍想和A和B兩個(gè)進(jìn)程中的一種通信,請(qǐng)問(wèn)用什么措施與A通信,而不與B混淆?(聯(lián)迪
商用)
21、怎樣保證對(duì)同一數(shù)據(jù)訪問(wèn)的多種客戶端的數(shù)據(jù)一致?SQL語(yǔ)句怎么寫(xiě)?(淘寶)
22、NEW,DELETE,MALLOC和FREE的區(qū)別與聯(lián)絡(luò)?(淘寶)
1.malloc與free是C++/C語(yǔ)言的原則庫(kù)函數(shù),new/delete是C++的運(yùn)算符。它們都可用于申
請(qǐng)動(dòng)態(tài)內(nèi)存和釋放內(nèi)存。
2.對(duì)于非內(nèi)部數(shù)據(jù)類型的對(duì)象而言,光用malloc/free無(wú)法滿足動(dòng)態(tài)對(duì)象的規(guī)定。對(duì)象在創(chuàng)立
的同步要自動(dòng)執(zhí)行構(gòu)造函數(shù),對(duì)象在消滅之前要自動(dòng)執(zhí)行析構(gòu)函數(shù)。由于mallot/free是庫(kù)
函數(shù)而不是運(yùn)算符,不在編譯器控制權(quán)限之內(nèi),不可以把執(zhí)行構(gòu)造函數(shù)和析構(gòu)函數(shù)的任務(wù)
強(qiáng)加于malloc/freec
3.C++語(yǔ)言需要一種能完畢動(dòng)態(tài)內(nèi)存分派和初始化工作的運(yùn)算符new,以一種能完畢清理與釋
放內(nèi)存工作的運(yùn)算符deleteo注意new/delete不是庫(kù)函數(shù)。
4.C++程序常常要調(diào)用C函數(shù),而C程序只能用malloc/free管理動(dòng)態(tài)內(nèi)存
23、進(jìn)程與線程的區(qū)別與聯(lián)絡(luò)?(臺(tái)達(dá))
進(jìn)程概念
進(jìn)程是表達(dá)資源分派的基本單位,又是調(diào)度運(yùn)行的基本單位。例如,顧客運(yùn)行自己的程序,
系統(tǒng)就創(chuàng)立一種進(jìn)程,并為它分派資源,包括多種表格、內(nèi)存空間、磁盤(pán)空間、I/O設(shè)備等。
然后,把該進(jìn)程放人進(jìn)程的就緒隊(duì)列。進(jìn)程調(diào)度程序選中它,為它分派CPU以及其他有關(guān)資源,
該進(jìn)程才真正運(yùn)行。因此,進(jìn)程是系統(tǒng)中的并發(fā)執(zhí)行的單位。
在Mac、WindowsNT等采用微內(nèi)核構(gòu)造的操作系統(tǒng)中,進(jìn)程的功能發(fā)生了變化:它只是資
源分派的單位,而不再是調(diào)度運(yùn)行的單位。在微內(nèi)核系統(tǒng)中,真正調(diào)度運(yùn)行的基本單位是線程。
因此.實(shí)現(xiàn)并發(fā)功能的單.位是線程。
線程概念
線程是進(jìn)程中執(zhí)行運(yùn)算的最小單位,亦即執(zhí)行處理機(jī)調(diào)度的基本單位。假如把進(jìn)程理解為
在邏輯上操作系統(tǒng)所完畢的任務(wù),那么線程表達(dá)完畢該任務(wù)的許多也許的子任務(wù)之一。例如,
假設(shè)顧客啟動(dòng)了一種窗口中的數(shù)據(jù)庫(kù)應(yīng)用程序,操作系統(tǒng)就將對(duì)數(shù)據(jù)庫(kù)的調(diào)用表達(dá)為一種進(jìn)程。
假設(shè)顧客要從數(shù)據(jù)庫(kù)中產(chǎn)生一份工資單報(bào)表,并傳到i種文獻(xiàn)中,這是一種子任務(wù);在產(chǎn)生工
資單報(bào)表的過(guò)程中,顧客又可以輸入數(shù)據(jù)庫(kù)查詢祈求,這又是一種子任務(wù)。這樣,操作系統(tǒng)則
把每一種祈求一一工資單報(bào)表和新輸人的數(shù)據(jù)查詢表達(dá)為數(shù)據(jù)庫(kù)進(jìn)程中的獨(dú)立的線程。線程可
以在處理器上獨(dú)立調(diào)度況行,這樣,在多處理器環(huán)境下就容許幾種線程各自在單獨(dú)處理器上進(jìn)
行。操作系統(tǒng)提供線程就是為了以便而有效地實(shí)現(xiàn)這種并發(fā)性
引入線程的好處
(1)易于調(diào)度。
(2)提高并發(fā)性。通過(guò)線程可以便有效地實(shí)現(xiàn)并發(fā)性。進(jìn)程可創(chuàng)立多種線程來(lái)執(zhí)行同一程序的
不一樣部分。(3)開(kāi)銷(xiāo)少。創(chuàng)立線程比創(chuàng)立進(jìn)程要快,所需開(kāi)銷(xiāo)很少。。
(4)利于充足發(fā)揮多處理器的功能。通過(guò)創(chuàng)立多線程進(jìn)程(即一種進(jìn)程可具有兩個(gè)或更多種線
程),每個(gè)線程在一種處理器上運(yùn)行,從而實(shí)現(xiàn)應(yīng)用程序的并發(fā)性,使每個(gè)處理器都得到充足運(yùn)
行。
進(jìn)程和線程的關(guān)系
(1)一種線程只能屬于一種進(jìn)程,而一種進(jìn)程可以有多種線程,但至少有一種線程。
(2)資源分派給進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源。
(3)處理機(jī)分給線程,即真正在處理機(jī)上運(yùn)行的是線程。
(4)線程在執(zhí)行過(guò)程中,需要協(xié)作同步。不一樣進(jìn)程的線程間要運(yùn)用消息通信的措施實(shí)現(xiàn)同步。
24、ARM開(kāi)發(fā)板的UBOOT移植與流程?(瑞芯微)
u-boot啟動(dòng)過(guò)程的兩個(gè)階段:
第一階段(stage1)是依賴于CPU體系構(gòu)造的代碼(如設(shè)備初始化代碼等),一般用匯編語(yǔ)言
來(lái)實(shí)現(xiàn)。重要進(jìn)行如下方面的設(shè)置:設(shè)置ARM進(jìn)入SVC模式、嚴(yán)禁【RQ和FIQ、關(guān)比看門(mén)狗、
屏蔽所有中斷。設(shè)置時(shí)鐘(FCLK,HCLK,PCLK)、清空I/Dcache、清空TLB、嚴(yán)禁MMU和cache、
配置內(nèi)存控制器、為搬運(yùn)代碼做準(zhǔn)備、搬移uboot映像到RAM中(使用copy」oop實(shí)現(xiàn))、分
派堆棧、清空bss段(使用clbss」實(shí)現(xiàn))。
第二階段(stage2)一般用C語(yǔ)言來(lái)實(shí)現(xiàn)。
start_armboot():
一系列初始化(cpu,板卡,中斷,串口,控制臺(tái)等),啟動(dòng)I/Dcacheo初始化FLASH,根據(jù)
系統(tǒng)配置執(zhí)行其他初始叱操作。打印LOG,使能中斷,獲取環(huán)境變量,初始化網(wǎng)卡。最終進(jìn)入
main_loop()函數(shù)。在main_loop函數(shù)中會(huì)檢查bootdelay和bootcmd環(huán)境變量,假如bootcmd
已經(jīng)設(shè)置.過(guò),則在等待bootdelay個(gè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 稀土磁性材料成型工測(cè)試驗(yàn)證競(jìng)賽考核試卷含答案
- 加氫精制工9S考核試卷含答案
- 水文勘測(cè)船工風(fēng)險(xiǎn)識(shí)別水平考核試卷含答案
- 濕法水刺非織造布制作工操作技能評(píng)優(yōu)考核試卷含答案
- 玻璃鋼制品手糊工持續(xù)改進(jìn)能力考核試卷含答案
- 制線工崗前崗中實(shí)操考核試卷含答案
- 1-己烯裝置操作工安全行為能力考核試卷含答案
- 索道運(yùn)輸機(jī)械操作工安全意識(shí)評(píng)優(yōu)考核試卷含答案
- 松香改性反應(yīng)工成果能力考核試卷含答案
- 電極制造工操作規(guī)程考核試卷含答案
- 報(bào)案書(shū)(參考范文)
- 《民族圖形設(shè)計(jì)》課件
- 非新生兒破傷風(fēng)診療規(guī)范(2024年版)解讀
- 知識(shí)創(chuàng)業(yè)思維與方法(湖南師范大學(xué))知到智慧樹(shù)章節(jié)答案
- 汽車(chē)行業(yè)銷(xiāo)售經(jīng)理聘用合同
- 2024屋頂分布式光伏場(chǎng)站設(shè)備運(yùn)維規(guī)程
- (高清版)JT∕T 1402-2022 交通運(yùn)輸行政執(zhí)法基礎(chǔ)裝備配備及技術(shù)要求
- 哪些榮譽(yù)獎(jiǎng)項(xiàng)不可以作為評(píng)審因素
- 土地綜合整治 投標(biāo)方案(技術(shù)方案)
- 廣汽傳祺M8宗師版說(shuō)明書(shū)
- 檢驗(yàn)檢測(cè)行業(yè)市場(chǎng)概況分析報(bào)告
評(píng)論
0/150
提交評(píng)論