Java階段性測試--知識點:陣列,物件導向,集合、執行緒,IO流

Java仗劍走天涯發表於2017-05-03

#Java基礎測試

涉及知識點:陣列,物件導向,過載,重寫,繼承,集合,排序,執行緒,檔案流


一、多項選擇題(可能是單選,也可能是多選)

1.下列識別符號命名不合法的是(   D  )

A.$_Name

B.$_

C.line

D.2variable

 

2.下列不屬於基本資料型別的是(  B C )

A.boolean        

B.Integer;       

C.String    

D.char

 

3.設資料的原始碼為10100110,那麼這個資料的補碼是多少(  C )

A.10100110

B.10100111

C.11011010

D.11011001

 

4. 給出下列程式碼片段:

  If ( x > 0 ) { System.out.println(“Hello.”); }

  else if ( x <-3 ) { System.out.pirntln ( “ I am Tom. ”); }

  else { System.out.println (“How are you?”); }

  請問將列印字串 “How are you ?”的x的範圍是( B   )。

A. x>0

B. x<=0&&x>=-3

C. x>=-3

D. x<=0||x>=-3

 

5.對函式void add(int a, int b){}下面不屬於函式過載的是(  AB )

A. public void add(int a, int b){}

B. int add(int a, int b){return a + b;}

C. int add(int a){return a + 10;}

D. double add(){return 9.0}

 

6.關於多型,下面描述正確的是(  C  )。【注:FatherSon的父類】

A. 當編譯時型別與執行時型別不一致時,才會有多型的體現。

B. Son s = new Father(); 這行程式碼在Java中是允許存在的

C. Father f = new Son();Father的引用變數f轉化成Son型別需要強轉

D. Father f = new Son(); f呼叫Son型別的方法,編譯可以通過。

 

7.下列說法正確的有( ACD  )

A.Java中介面允許多繼承

B.在自定義類時,既繼承類又實現介面,可以實現介面在前,繼承類在後

C.普通類繼承自抽象類時,必須重寫抽象類中的抽象方法

D.實現介面時,重寫介面中的方法時不用考慮方法的訪問許可權問題

 

8.對於說法有誤的是(  CD  )

A.定義類和成員時,要不寫訪問許可權修飾符,預設的訪問許可權是default

B.執行緒的預設優先順序別值對應的欄位是NORMAL_PRIORITY

C.執行緒優先順序別高的會一直霸佔的CPU的排程,級別低的必須等級別高的執行完才有執行的機會

D.建立不同包下類的物件時,可以直接使用類,無需考慮其他問題

 

9.下面關於集合的描述正確的有(   BC  )

A.集合中的類主要是由CollectionListMap介面派生來的

B.HashSet集合中存放元素時,元素位置是根據hashCode值放置的

C.當遍歷集合時,我們可以對集合進行刪除元素的操作

D.Stack類中呼叫peek()方法時,會依次取出集合中的元素

 

10.下面執行緒說法正確的有(  ACD   )

A.當前臺執行緒執行完之後,後臺執行緒隨之消亡

B.執行緒阻塞後會立即死亡

C.當遇到多個執行緒訪問同一資源出現資料混亂問題時,可以使用同步方法來解決

D.在繼承Thread類來定義執行緒類時,重寫的run方法可以使用this表示當前執行緒

 

 

第二題:

1、列印出所有的 "水仙花數 ",所謂 "水仙花數 “是指一個三位數,其各位數字立方和等於它本身


2利用封裝的思想,編寫程式:

建立一個叫做Person的實體類:

屬性:姓名、年齡、性別

行為:說話、計算加法、改名

建立一個測試類P_Test,在測試類中建立Person類的物件:名叫“張三”,性別“男”,年齡23歲,讓該物件呼叫成員方法:說出“Hello;計算23+78的值;將名字改為“Mike”。


第三題: 按照要求完成下列問題

【1】請隨機生成10個從5到150之間的數字(大於等於5小於等於150),將生成的隨機數儲存在整型陣列中(不考慮重複)


【2】使用氣泡排序對陣列中的元素進行降序排列


【3】有如下一個陣列{11,22,1,33,1,1,44,0,66,1,77,1,1,88}

要求將其中為1的元素值給去掉,通過合適的程式碼得到如下的新陣列

{11,22,33,44,0,66,77,88}(陣列長度等於資料長度)

 

第四題:.此題要求用IO流完成

1. 使用File類在D盤下建立目錄myFiles, 並在myFiles目錄下建立三個檔案分別為:info1.txt, info2.txt, info3.txt 。

2. 向info1.txt, info2.txt, info3.txt 中分別追加內容“第一個檔案內容,千鋒歡迎你”,“第二個檔案內容,中國移動培訓專家”,“第三個檔案內容,千鋒助你高薪就業”。 

3. 把info1.txt , info2.txt,info3.txt String類中的方法擷取到 檔名字,不包括擴充名,將名字變成大寫,並且給檔案重新命名成為 INFO1.txt,INFO2.txt ,INFO3.txt,並複製到myFiles\txt目錄下(須用程式建立txt資料夾)

4. 鍵盤輸入一個關鍵字“千鋒”,列出myFiles目錄下包含“千鋒”關鍵字的檔案 

5. 遞迴刪除myFiles目錄,並記錄刪除的資訊,格式為 “INFO1.txt  刪除成功(失敗)  2015-8-10 10:20:30”.將檔案儲存到D:\log.txt中,(注意:log.txt檔案不要提交)

 

執行效果:如下圖

 

 

第五題.按要求完成如下功能

【1】建立一明星Star類,屬性:star_No(明星編號)、star_Name(明星名字)、star_Masterpieces(明星的成名作)、star_Home(明星祖籍)、star_Marriage(明星婚否)、star_Info(明星資訊);封要求所有屬性封裝,重寫toString方法。 (4)

 

【2 根據下列提供的資訊建立Star物件,將每個字串中的欄位所對應的值設定到物件屬性中。

star_No:10000001 star_Name:胡軍 star_Masterpieces:天龍八部 star_Marriage:true star_Home:北京市Star_Info:胡軍出生在北京的一個藝術世家,屬於滿族鑲黃旗。父親胡寶善是男中音歌唱家,母親王亦滿是話劇演員,伯父是著名的男高音歌唱家胡鬆華,2013年,擔任北京東城區消防形象大使。

 

(2)star_No:10000002 star_Name:鹿晗 star_Masterpieces:重返20歲star_Marriage:false  star_Home:北京市Star_Info:鹿晗(LU HAN),中國男演員、歌手1990年4月20日出生於北京2008年赴韓國留學期間在明洞逛街時被韓國SM娛樂公司星探發掘,簽約成為旗下練習生2012年4月以EXO組合主唱、領舞門面擔當身份正式出道,在中外各國迅速獲得超高人氣。

(3)star_No:10000011 star_Name:孫儷 star_Masterpieces:後宮甄嬛傳star_Marriage:true star_Home:上海市 Star_Info:孫儷,本名孫麗,1982年9月26日出生於上海市,中國大陸女演員、歌手。5歲開始學舞蹈,11歲出訪國外表演,15歲擔任上海警備區文工團文藝兵3年;退伍後進入東方文化學院學習。

(4)star_No:10000101 star_Name:王寶強 star_Masterpieces:天下無賊 star_Marriage:true star_Home:河北省邢臺市南和縣Star_Info:王寶強,中國內地男演員,1984年5月29日出生於河北省邢臺市,6歲時開始練習武術,8歲在嵩山少林寺做俗家弟子,20歲時主演獨立電影《盲井》獲金馬獎最佳新人獎及法國、泰國電影節最佳男主角獎。

【3】建立用於存放明星物件的TreeMap<Star,String>,用於存放上述的幾個明星,使用自然排序進行排序,要求按照第一條件star_No明星編號升序排列,第二條件start_Name 降序排序

 

【4】使用HashMap<Star,String>集合進行儲存,將Star物件作為鍵,vlaue值為與該明星有關的作品名。並遍歷輸出集合元素(要求:明星編號和明星姓名和明星成名作相同的為同一明星)。

 

【5 要求在上題遍歷集合時,要求程式設計實現在當前專案中,根據獲取的每個具體物件的star_Name為名稱建立相應檔案,將明星物件進行序列化儲存

 

執行效果:如下圖

 

 

第六題  執行緒

寫兩個執行緒,一個執行緒列印1-52,另一個執行緒答應字母A-Z。列印順序為12A34B56C……5152Z。通過使用執行緒之間的通訊協調關係。

注:分別給兩個物件構造一個物件o,數字每列印兩個或字母每列印一個就執行o.wait()。在o.wait()之前不要忘了寫o.notify()

 

程式設計題程式碼見下一節

相關文章