2019京東java_第1頁
2019京東java_第2頁
2019京東java_第3頁
2019京東java_第4頁
2019京東java_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1、在軟件開發過程中,我們可以采用不同的過程模型,下列有關增量模型描述正確的是()是一種線性開發模型,具有不可回溯性把待開發的軟件系統模塊化,將每個模塊作為一個增量組件,從而分批次地分析、設計、編碼和測試這些增量組件適用于已有產品或產品原型(樣品),只需客戶化的工程項目軟件開發過程每迭代一次,軟件開發又前進一個層次解析:增量模型是把待開發的軟件系統模塊化,將每個模塊作為一個增量組件,從而分批次地分析、設計、編碼和測試這些增量組件。運用增量模型的軟件開發過程是遞增式的過程。相對于瀑布模型而言,采用增量模型進行開發,開發人員不需要一次性地把整個軟件產品提交給用戶,而是可以分批次進行提交。2、下面有

2、關值類型和引用類型描述正確的是()?值類型的變量賦值只是進行數據復制,創建一個同值的新對象,而引用類型變量賦值,僅僅是把對象的引用的指針賦值給變量,使它們共用一個內存地址。值類型數據是在棧上分配內存空間,它的變量直接包含變量的實例,使用效率相對較高。而引用類型數據是分配在堆上,引用類型的變量通常包含一個指向實例的指針,變量通過指針來引用實例。引用類型一般都具有繼承性,但是值類型一般都是封裝的,因此值類型不能作為其他任何類型的基類。值類型變量的作用域主要是在棧上分配內存空間內,而引用類型變量作用域主要在分配的堆上。解析:B錯在,值類型變量不包含實例,實例是針對于對象的概念,當類實例化為對象的時候

3、,這個時候可以稱為是類的一個實例。同時,效率比較高這個概念比較模糊。C錯在,封裝的概念也是針對類而言的,值類型數據不存在封裝概念。D錯在,值類型變量可以作為成員變量存儲在堆里,例如一個Class A中包含一個int value,那么value是作為成員變量存儲在堆中的。D選項表述有漏洞。3、如何在多線程中避免發生死鎖?允許進程同時訪問某些資源。允許進程強行從占有者那里奪取某些資源。進程在運行前一次性地向系統申請它所需要的全部資源。把資源事先分類編號,按號分配,使進程在申請,占用資源時不會形成環路。解析:死鎖:在多道程序設計環境下,多個進程可能競爭一定數量的資源,。一個進程申請資源,如果資源不可

4、用,那么進程進入等待狀態。如果所申請的資源被其他等待進程占有,那么該等待的進程有可能無法改變狀態,這種情況下稱之為死鎖。死鎖的四個條件:互斥:至少有一個資源必須處在非共享模式,即一次只能有一個進程使用,如果另一進程申請該資源,那么申請進程必須延遲直到該資源釋放為止。占有并等待:一個進程必須占有至少一個資源,并等待另一個資源,而該資源為其他進程所占有。非搶占:資源不能被搶占。循環等待:有一組進程P0,P1,.Pn,P0等待的資源被P1占有,P1等待的資源被P2占有,Pn-1等待的資源被Pn占有,Pn等待的資源被P0占有。4、以下為求0到1000以內所有奇數和的算法,從中選出描述正確的算法()s=

5、0;i=1;s=s+i;i=i+2;如果i1000,則返回;結束s=0;i=1;i=i+2;s=s+i;如果i1000,則返回;結束s=1;i=1;s=s+i;i=i+2;如果i1000,則返回;結束s=1;i=1;i=i+2;s=s+i;如果i1000,則返回;結束解析:D算的是1+3+。+10001,A是0+1+3+。+999,就是D多算了一個5、關于遞歸法的說法不正確的是()程序結構更簡潔占用CPU的處理時間更多要消耗大量的內存空間,程序執行慢,甚至無法執行遞歸法比遞推法的執行效率更高解析:遞歸就是一層一層的調用函數進棧,會大量存儲重復的數據,占用大量內存,且會有棧溢出的可能。而遞推就是

6、不用存儲重復的數據,從底層獲得了數據直接遞給上一層即可。6、字符串”ABCD”和字符串”DCBA”進行比較,如果讓比較的結果為真,應選用關系運算符() =解析:比較的時候比的是ASCII碼,從第一位開始比,如果第一位能比較出誰大誰小則直接返回,若相等,比較下一個字符,因此選B7、以下運算符中運算優先級最高的是()+ OR 解析:以上是我整理的運算符優先級,數字越小表示優先級越高。在這里我選的是+號,如果+號表示的是正號的話那么優先級是大于除/號的,這題目略微的不嚴謹,望周知。8、采用哪種遍歷方法可唯一確定一棵二叉樹?()給定一棵二叉樹的先序和后序遍歷序列給定一棵二叉樹的后序和中序遍歷序列給定先

7、序、中序和后序遍歷序列中的任意一個即可給定一棵二叉樹的先序和中序遍歷序列解析:前序加中序 或 后序加中序都是可以的。9、已知小頂堆:51,32,73,23,42,62,99,14,24,3943,58,65,80,120,請問62對應節點的左子節點是(沒有正確答案)99 73 3943 120解析:10、若串S=”UP!UP!JD”,則其子串的數目33 37 39 35解析:一個八個字符串 公式n(n+1)/2 + 111、一顆二叉樹的葉子節點有5個,出度為1的結點有3個,該二叉樹的結點總個數是?11 12 13 14解析:因為是二叉樹,所以度不能大于2。【度(子節點個數)】。5個葉子節點,三

8、個度為1,則有上一層有4個,葉子節點數=度為2的節點個數+1=5;所以度為2的節點數為4;總節點數 = 度為1的節點數 + 度為2的節點數 + 葉子節點數 = 3 + 4 +5 = 12。12、權值分別為9、3、2、8的結點,構造一棵哈夫曼樹,該樹的帶權路徑長度是?36 40 45 46解析:計算帶權路徑長度:結點的帶權路徑長度為從根結點到該結點之間的路徑長度與該結點的權的乘積=3*2+3*3+2*8+1*9=4013、在()中,只要指出表中任何一個結點的位置,就可以從它出發依次訪問到表中其他所有結點。線性單鏈表雙向鏈表線性鏈表循環鏈表解析:循環鏈表只要沿一個方向一直走下去就可以遍歷。14、打

9、電話使用的數據傳輸方式是(),手機上網使用的數據傳輸方式是()?電路交換,電路交換電路交換,分組交換分組交換,分組交換分組交換,電路交換解析:電路交換有預留,且分配一定空間,提供專用的網絡資源,提供有保證的服務,應用于電話網;分組交換無預留,且不分配空間,存在網絡資源爭用,提供有無保證的服務。分組交換可用于數據報網絡和虛電路網絡。我們常用的Internet就是數據報網絡,單位是Bit。15、后退N幀協議的發送窗口大小是(),接收窗口的大小是()?=1,=1=1,11,11,=1解析:滑動窗口協議有:1、停止等待協議,發送窗口=1,接受窗口=1;2、退后N幀協議,發送1,接收=1;3、選擇重傳協

10、議,發送1,接收1;16、網絡管理員把優盤上的源代碼給程序員參考,但要防止程序誤刪除或修改,以下正確的加載方式是()mount -o defaults /dev/sdb1 /toolsmount -r /dev/sdb1 /toolsmount -o ro /dev/sdb1 /toolsmount -o ro /dev/sdb /tools解析:-r: 將文件系統作為只讀文件系統進行安裝,而不考慮它先前在 /etc/file systems 文件中指定的內容或者先前的任何命令行選項。ro : 將已安裝的文件指定為只讀文件,而不考慮它先前在 /etc/file systems 文件中指定的選項

11、或者先前的任何命令行選項。缺省值是 rw。17、重復的數據,會增加磁盤空間的占有率,延長操作數據的時間。可以使用規范化處理數據冗余,以下對符合第一范式的表述正確的是:非鍵屬性和鍵(主鍵)屬性間沒有傳遞依賴非鍵屬性和鍵(主鍵)屬性間沒有部分依賴表中不應該有重復組。列重復拆成另外一張表;行重復拆成多行一個表中的列值與其他表中的主鍵匹配解析:指數據庫表的每一列(即每個屬性)都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。簡而言之,第一范式就是無重復的列。18、以下哪條SQL語句可以返回table1中的全部的key:select tabel1.key

12、 from table1 join tabel2 on table1.key=table2.keyselect tabel1.key from table1 right outer join tabel2 on table1.key=table2.keyselect tabel1.key from table1 left semi join tabel2 on table1.key=table2.keyselect tabel1.key from table1 left outer join tabel2 on table1.key=table2.key解析:由于需要返回table1中的全部的

13、key,則需要左連接,而left semi join表示只打印出左邊表中 的key,但前提是左表中的key在右表中存在,否則會過濾掉19、Mysql中表user的建表語句如下,CREATETABLEuser(idbigint(20)NOTNULLAUTO_INCREMENTCOMMENT主鍵Id,namevarchar(255)DEFAULTNULLCOMMENT名稱,ageint(11)DEFAULTNULLCOMMENT年齡,addressvarchar(255)DEFAULTNULLCOMMENT地址,created_timedatetimeDEFAULTNULLCOMMENT創建時間,

14、updated_timedatetimeDEFAULTNULLCOMMENT更新時間,PRIMARYKEY(id),KEYidx_com1(name,age,address)ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT=用戶表;以下哪個查詢語句沒有使用到索引idx_com1?select * from user where name=張三 and age = 25 and address=北京大興區;select * from user where name=張三 and address=北京大興區;select * from user where age =

15、 25 and address=北京大興區;select * from user where address=北京大興區 and age = 25 and name=張三解析:索引的最左匹配特性:當b+樹的數據項是復合的數據結構,比如(name,age,sex)的時候,b+數是按照從左到右的順序來建立搜索樹的,比如當(張三,20,F)這樣的數據來檢索的時候,b+樹會優先比較name來確定下一步的所搜方向,如果name相同再依次比較age和sex,最后得到檢索的數據;但當(20,F)這樣的沒有name的數據來的時候,b+樹就不知道下一步該查哪個節點20、publicclassMainprivat

16、estaticintx=10;privatestaticIntegery=10;publicstaticvoidupdateX(intvalue)value=3*value;publicstaticvoidupdateY(Integervalue)value=3*value;publicstaticvoidmain(Stringargs)updateX(x);updateY(y);執行以上程序后,x和y的值分別是多少?10,1010,3030,1030,30解析:形參名value和字段x,字段y不同,運算改變了內存中value,但是xy沒有改變。當方法updateX的形參名改為x,此時運算會改

17、變內存中x的值,是30,y同理。總結:僅當形參名和字段名一樣,字段值才變。(本題一個叫value,一個叫x/y,不一樣,所以不變)21、JAVA的類加載期負責整個生命周期內的class的初始化和加載工作,就虛擬機的規范來說,以下代碼會輸出什么結果?publicclassTestpublicstaticvoidmain(Stringargs)System.out.println(Test2.a);classTest2publicstaticfinalStringa=JD;staticSystem.out.print(OK);只有JD只有OK輸出 JDOK輸出 OKJD解析:22、繼承是JAVA語

18、言的一個特性,針對類的繼承,虛擬機會如何進行父類和子類的初始化加載呢?請閱讀代碼選擇出該段代碼的輸入結果。publicclassTestpublicstaticvoidmain(Stringargs)System.out.print(B.c);classApublicstaticStringc=C;staticSystem.out.print(A);classBextendsAstaticSystem.out.print(B);ACABCCBC解析:類加載的初始化階段會執行靜態塊的代碼,通過子類去調用父類的靜態變量子類不會被初始化。23、根據類加載器加載類的初始化原理,推斷以下代碼的輸入結果為

19、?publicclassTestpublicstaticvoidmain(Stringargs)throwsExceptionClassLoaderclassLoader=ClassLoader.getSystemClassLoader();Classclazz=classLoader.loadClass(A);System.out.print(Test);clazz.forName(A);classAstaticSystem.out.print(A);TestAATestAATestTest解析:用ClassLoader加載類,是不會導致類的初始化(也就是說不會執行方法).Class.for

20、Name(.)加載類,不但會將類加載,還會執行會執行類的初始化方法。24、publicclassMainpublicstaticvoidmain(Stringargs)System.out.print(fun1();publicstaticStringfun1()trySystem.out.print(A);returnfun2();finallySystem.out.print(B);publicstaticStringfun2()System.out.print(C);returnD;執行以上程序后,輸出結果正確的是?ABCDACDBACBD不確定解析:try中執行完return的語句后,

21、不返回,執行finally塊,finally塊執行結束后,返回到try塊中,返回try塊中最后return的值25、importjava.util.ArrayList;importjava.util.List;publicclassMainpublicstaticvoidmain(Stringargs)Listlist=newArrayList();for(inti=0;i100;i+)list.add(a);JDK1.8中,執行以上程序后,該list進行了幾次擴容?4567解析:初始10,每次擴容為原先的1.5倍26、importjava.util.concurrent.ArrayBlock

22、ingQueue;importjava.util.concurrent.ThreadPoolExecutor;importjava.util.concurrent.TimeUnit;publicclassMainpublicstaticvoidmain(Stringargs)ThreadPoolExecutorexecutor=newThreadPoolExecutor(5,10,15,TimeUnit.SECONDS,newArrayBlockingQueue(5),newThreadPoolExecutor.CallerRunsPolicy();線程池executor在空閑狀態下的線程個數

23、是?0510不確定解析:前三個參數:核心線程有5個,最大線程數是10個,keepAliveTime是15s,如果線程池中的線程大于5,那么超15s的空閑線程就會被結束,也就是說,一定會保持5個線程不會被結束。當所有任務完成后,會保持5個空閑的線程27、publicclassMainpublicstaticArrayListlist=newArrayList();publicstaticvoidmain(Stringargs)throwsExceptionThreadt1=newMain().newMyThread();ThreadE10:E64t2=newThread(newMain().newMyRunnable();t1.setPriority(3);t2.setPriority(8);t1.start();t2.start();t2.join();for(inti=0;i100000;i+)i+;list.add(main);t1.join();for(Strings:list)System.out.println(s);classMyThreadextendsThr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論