蘑菇街2015校招 Java研发笔试题 详解,2015java
蘑菇街2015校招 Java研發(fā)筆試題 詳解,2015java
1. 對(duì)進(jìn)程和線程描述正確的是( )
A. ?父進(jìn)程里的所有線程共享相同的地址空間,父進(jìn)程的所有子進(jìn)程共享相同的地址空間。
B. ?改變進(jìn)程里面主線程的狀態(tài)會(huì)影響其他線程的行為,改變父進(jìn)程的狀態(tài)不會(huì)影響其他子進(jìn)程。
C. 多線程會(huì)引起死鎖,多進(jìn)程則不會(huì)。
D.? 以上都不對(duì)。
解析:A錯(cuò),進(jìn)程擁有獨(dú)立的地址空間;B錯(cuò),主線程和子線程是并行關(guān)系的時(shí)候,并沒有依賴關(guān)系。父進(jìn)程和子進(jìn)程中,子進(jìn)程是父進(jìn)程的一個(gè)副本,創(chuàng)建子進(jìn)程后,子進(jìn)程會(huì)有自己的空間,然后把父進(jìn)程的數(shù)據(jù)拷貝到子進(jìn)程的空間里。運(yùn)行時(shí),誰先運(yùn)行是不確定的,這由系統(tǒng)決定;C錯(cuò),多線程和多進(jìn)程都會(huì)引起死鎖,一般說的死鎖指的是進(jìn)程間的死鎖。
進(jìn)程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。進(jìn)程有獨(dú)立的地址空間,一個(gè)進(jìn)程崩潰后,在保護(hù)模式下不會(huì)對(duì)其它進(jìn)程產(chǎn)生影響,而線程只是一個(gè)進(jìn)程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨(dú)的地址空間,一個(gè)線程死掉就等于整個(gè)進(jìn)程死掉,所以多進(jìn)程的程序要比多線程的程序健壯,但在進(jìn)程切換時(shí),耗費(fèi)資源較大,效率要差一些。但對(duì)于一些要求同時(shí)進(jìn)行并且又要共享某些變量的并發(fā)操作,只能用線程,不能用進(jìn)程。如果有興趣深入的話,我建議你們看看《現(xiàn)代操作系統(tǒng)》或者《操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》。對(duì)就個(gè)問題說得比較清楚。
2. ?數(shù)據(jù)庫(kù)里面建索引的常用數(shù)據(jù)結(jié)構(gòu)是()
A.單向鏈表 B.棧 C.B+樹 D.隊(duì)列
解析:索引是對(duì)記錄按照多個(gè)字段進(jìn)行排序的一種方式。對(duì)表中的某個(gè)字段建立索引會(huì)創(chuàng)建另一種數(shù)據(jù)結(jié)構(gòu),其中保存著字段的值,每個(gè)值又指向與它相關(guān)的記錄。這種索引的數(shù)據(jù)結(jié)構(gòu)是經(jīng)過排序的,因而可以對(duì)其執(zhí)行二分查找。索引的缺點(diǎn)是占用額外的磁盤空間。因?yàn)樗饕4嬖跀?shù)據(jù)庫(kù)中,所以如果為同一個(gè)表中的很多字段都建立索引,那這個(gè)文件可能會(huì)很快膨脹到文件系統(tǒng)規(guī)定的上限。
?在數(shù)據(jù)庫(kù)系統(tǒng)的使用過程當(dāng)中,數(shù)據(jù)的查詢是使用最頻繁的一種數(shù)據(jù)操作。最基本的查詢算法當(dāng)然是順序查找(linear search),遍歷表然后逐行匹配行值是否等于待查找的關(guān)鍵字,其時(shí)間復(fù)雜度為O(n)。但時(shí)間復(fù)雜度為O(n)的算法規(guī)模小的表,負(fù)載輕的數(shù)據(jù)庫(kù),也能有好的性能。??但是數(shù)據(jù)增大的時(shí)候,時(shí)間復(fù)雜度為O(n)的算法顯然是糟糕的,性能就很快下降了。好在計(jì)算機(jī)科學(xué)的發(fā)展提供了很多更優(yōu)秀的查找算法,例如二分查找(binary search)、二叉樹查找(binary tree search)等。如果稍微分析一下會(huì)發(fā)現(xiàn),每種查找算法都只能應(yīng)用于特定的數(shù)據(jù)結(jié)構(gòu)之上,例如二分查找要求被檢索數(shù)據(jù)有序,而二叉樹查找只能應(yīng)用于二叉查找樹上,但是數(shù)據(jù)本身的組織結(jié)構(gòu)不可能完全滿足各種數(shù)據(jù)結(jié)構(gòu)(例如,理論上不可能同時(shí)將兩列都按順序進(jìn)行組織),所以,在數(shù)據(jù)之外,數(shù)據(jù)庫(kù)系統(tǒng)還維護(hù)著滿足特定查找算法的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)以某種方式引用(指向)數(shù)據(jù),這樣就可以在這些數(shù)據(jù)結(jié)構(gòu)上實(shí)現(xiàn)高級(jí)查找算法。這種數(shù)據(jù)結(jié)構(gòu),就是索引。索引是對(duì)數(shù)據(jù)庫(kù)表中一個(gè)或多個(gè)列的值進(jìn)行排序的結(jié)構(gòu)。與在表中搜索所有的行相比,索引用指針指向存儲(chǔ)在表中指定列的數(shù)據(jù)值,然后根據(jù)指定的次序排列這些指針,有助于更快地獲取信息。通常情?況下,只有當(dāng)經(jīng)常查詢索引列中的數(shù)據(jù)時(shí),才需要在表上創(chuàng)建索引。索引將占用磁盤空間,并且影響數(shù)據(jù)更新的速度。但是在多數(shù)情況下,索引所帶來的數(shù)據(jù)檢索速度優(yōu)勢(shì)大大超過它的不足之處。目前大部分?jǐn)?shù)據(jù)庫(kù)系統(tǒng)及文件系統(tǒng)都采用B-Tree或其變種B+Tree作為索引結(jié)構(gòu)。
3. 蘑菇街公司里面隨便找四名員工。那么這四名員工里面,至少有兩個(gè)人的生肖是相同的概率是()
A.41/96 B.55/96 C.72/128 D.90/128
解析:P(A)=1-12*11*10*9/12^4=41/96。
4. ?蘑菇街是一家擁有500名員工的年輕富有活力的公司,小俠們(男性員工)誠(chéng)實(shí)可靠,只說真話。而小仙們(女性員工)調(diào)皮可愛,只說假話。某一天一位客戶來公司參觀,就問公司的員工,你們公司有幾個(gè)小仙呀?公司的員工們很熱心的一一做了回答,第一個(gè)員工說一個(gè),第二個(gè)員工說二個(gè)...第五百個(gè)員工說五百個(gè)。請(qǐng)問蘑菇街到底有幾個(gè)小仙?
A.1 B.250 C.499 D.500
解析:首先,只可能有一個(gè)員工說的對(duì),其他都說的是錯(cuò)的,不可能兩個(gè)人都說的對(duì)。那么男的只有一個(gè),剩下的499都是女的。
5. ?IP地址131.53.12.71是一個(gè)()類IP地址?
A.A B.B C.C D.D
解析:A類網(wǎng)絡(luò)的IP地址范圍為1.0.0.1-127.255.255.254;B類網(wǎng)絡(luò)的IP地址范圍為:128.1.0.1-191.255.255.254;C類網(wǎng)絡(luò)的IP地址范圍為:192.0.1.1-223.255.255.254。由于A類地址的特點(diǎn)是網(wǎng)絡(luò)標(biāo)識(shí)的第一位二進(jìn)制數(shù)取值必須為“0”。所以網(wǎng)段號(hào)到127,后面是具體的主機(jī)號(hào)的分配。
?
6. ?如果某系統(tǒng)12*5=104成立,則系統(tǒng)采用的是()進(jìn)制?
A.6 B.7 C.8 D.9
7. 編程實(shí)現(xiàn)一個(gè)函數(shù),輸入為一個(gè)給定的由英文單詞組成的字符串,按照英文單詞的順序反轉(zhuǎn)輸出。例如,給定的字符串是"hi welcome to mogujie", 那么輸出為"mogujie to welcome hi"?
?
public class InterruptString {public static void main (String args[]){String str = "hi welcome to mogujie";for(int i = inverse(str).length - 1; i >= 0 ; i--){System.out.print( inverse(str)[i]+" ");}}public static String[] inverse(String str){ String strArray[] = str.split(" ");return strArray; } }?
8. 輸入一個(gè)整型數(shù)組,數(shù)組里面有正數(shù)也有負(fù)數(shù),數(shù)組中連續(xù)的一個(gè)或多個(gè)整數(shù)組成子數(shù)組,每個(gè)子數(shù)組都有一個(gè)和。求所有子數(shù)組的和的最大值。要求時(shí)間復(fù)雜度為O(n)。例如,輸入的數(shù)字為:1,-2,3,10,-4,7,2,-5,則和最大的子數(shù)組為3,10,-4,7,2.和為18.
public class SonArray {public static void main(String args[]){Integer[] arrayIntegers = {1,-2,3,10,-4,7,2,-5};String[] str = sonArray(arrayIntegers).split(" ");System.out.println("The Big Sum is:" + str[0]); }static String sonArray(Integer[] array){int sum = 0, max = 0;for(int i = 0; i < array.length; i++){sum += array[i];if(sum < 0){sum = 0;}max = sum > max?sum:max;}return max+" ";} }9.?給定一串字符串(英文段落),用戶輸入某個(gè)單詞,求該單詞出現(xiàn)的總次數(shù),和出現(xiàn)在第幾個(gè)位置上。
// Java語言是先編譯后執(zhí)行import java.util.ArrayList;
public class DivString {
public static void main(String args[]){
String str = "i love china i china china love love love xu";
String strArray[] = str.split(str);
ArrayList<String> arrayList = new ArrayList<String>();
for(int i = 0; i < strArray.length; i++){
if(strArray[i])
arrayList.add(strArray[i]);
}
}
}
總結(jié)
以上是生活随笔為你收集整理的蘑菇街2015校招 Java研发笔试题 详解,2015java的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网易笔试题:最大的奇约数
- 下一篇: 十大排序算法(Java)