java題帶答案.doc
Java期末考試題庫選擇題 (ABCD)1、以下選項中,哪些屬于JDK工具?(多選)A、Java編譯器 B、Java運行工具 C、Java文檔生成工具 D、Java打包工具(C)2、Java屬于以下哪種語言?A、機器語言 B、 匯編語言 C、高級語言 D、以上都不對(AD)1、以下選項中,哪些屬于合法的標識符?(多選)ADA、Hello_World B、class C、123username D、username123(AD)2、關(guān)于方法重載的描述,以下選項中哪些是正確的?(多選)(AD)ABDA、方法名必須一致 B、返回值類型必須不同C、參數(shù)個數(shù)必須一致 D、參數(shù)的個數(shù)或類型不一致(C)3、以下關(guān)于變量的說法錯誤的是? CA、變量名必須是一個有效的標識符B、變量在定義時可以沒有初始值C、變量一旦被定義,在程序中的任何位置都可以被訪問D、在程序中,可以將一個byte類型的值賦給一個int類型的變量,不需要特殊聲明(ABCD)4、以下選項中,switch語句判斷條件可以接收的數(shù)據(jù)類型有哪些? (多選) ABCDA、int B、byte C、char D、short(AC)7、下列語句哪些屬于循環(huán)語句?(多選) ACA、for語句 B、if語句 C、while語句 D、switch語句(A)8、下面哪種寫法可以實現(xiàn)訪問數(shù)組arr的第1個元素?AA、arr0 B、arr(0) C、arr1 D、arr(1)(B)9、以下哪個選項可以正確創(chuàng)建一個長度為3的二維數(shù)組?(B)CA、 new int 23; B、 new int3;C、 new int3; D、 以上答案皆不對 (A)10、請先閱讀下面的代碼。int x = 1;int y = 2;if (x % 2 = 0) y+;else y-;System.out.println(y= + y);上面一段程序運行結(jié)束時,變量y的值為下列哪一項?A、1 B、2 C、3 D、switch語句(B)1、在類的繼承關(guān)系中,需要遵循以下哪個繼承原則?A、多重 B、單一 C、雙重 D、不能繼承(C)2、在Java語言中,以下哪個關(guān)鍵字用于在方法上聲明拋出異常?A.try B.catch C.throws D.throw(ABC)3、關(guān)于super關(guān)鍵字以下說法哪些是正確的?(多選)A、super關(guān)鍵字可以調(diào)用父類的構(gòu)造方法B、super關(guān)鍵字可以調(diào)用父類的普通方法C、super與this不能同時存在于同一個構(gòu)造方法中D、super與this可以同時存在于同一個構(gòu)造方法中(ABCD)4、以下說法哪些是正確的?(多選)A、Java語言中允許一個類實現(xiàn)多個接口B、Java語言中不允許一個類繼承多個類C、Java語言中允許一個類同時繼承一個類并實現(xiàn)一個接口D、Java語言中允許一個接口繼承一個接口(C)5、類中的一個成員方法被下面哪個修飾符修飾,該方法只能在本類被訪問?A、public B、 protected C、 private D、default(AC)6、關(guān)于抽象類的說法哪些是正確的?(多選)A、抽象類中可以有非抽象方法。B、如果父類是抽象類,則子類必須重寫父類所有的抽象方法。C、不能用抽象類去創(chuàng)建對象。D、接口和抽象類是同一個概念。(C)7、在Java中,要想讓一個類繼承另一個類,可以使用以下哪個關(guān)鍵字?A、inherits B、implements C、extends D、modifies(D)8、System類位于以下哪個包中?A、java.io B、java.util C、java.awt D、java.lang(B)1、Thread類位于下列哪個包中?A、java.io B、java.lang C、java.util D、java.awt(AC)2、關(guān)于線程的創(chuàng)建過程,下面四種說法正確的有哪些?(多選)A、定義Thread類的子類,重寫Thread類的run()方法,創(chuàng)建該子類的實例對象,調(diào)用對象的start()方法B、定義Thread類的子類,重寫Thread類的run()方法,創(chuàng)建該子類的實例對象,調(diào)用對象的run()方法C、定義一個實現(xiàn)Runnable 接口的類并實現(xiàn)run()方法,創(chuàng)建該類實例對象,將其作為參數(shù)傳遞給Thread類的構(gòu)造方法來創(chuàng)建Thread對象,調(diào)用Thread對象的start()方法D、定義一個實現(xiàn)Runnable 接口的類并實現(xiàn)run()方法,創(chuàng)建該類對象,然后調(diào)用run()方法(ABC)3、對于通過實現(xiàn)Runnable接口創(chuàng)建線程,下面說法正確的有哪些?(多選)A、適合多個相同程序代碼的線程去處理同一個資源的情況B、把線程同程序代碼、數(shù)據(jù)有效的分離,很好的體現(xiàn)了面向?qū)ο蟮脑O(shè)計思想C、可以避免由于Java的單繼承帶來的局限性D、編寫簡單,可以不通過Thread類直接創(chuàng)建線程(BC)4、對于線程的生命周期,下面四種說法正確的有哪些?(多選) A、調(diào)用了線程的start()方法,該線程就進入運行狀態(tài) (就緒,還要獲得CPU使用權(quán))B、線程的run()方法運行結(jié)束或被未catch的InterruptedException等異常終結(jié),那么該線程進入死亡狀態(tài)C、線程進入死亡狀態(tài),但是該線程對象仍然是一個Thread對象,在沒有被垃圾回收器回收之前仍可以像引用其它對象一樣引用它D、線程進入死亡狀態(tài)后,調(diào)用它的start()方法仍然可以重新啟動(ABD)5、對于死鎖的描述,下面四種說法正確有哪些?(多選)A、當(dāng)兩個線程互相等待對方釋放同步鎖時會發(fā)生死鎖B、Java虛擬機沒有檢測和處理死鎖的措施C、一旦出現(xiàn)死鎖,程序會發(fā)生異常D、處于死鎖狀態(tài)的線程處于阻塞狀態(tài),無法繼續(xù)運行(ABC)6、下面四個選項中,哪些是線程進入阻塞狀態(tài)的原因?(多選)A、線程試圖獲取某個對象的同步鎖,而該鎖被其它線程持有B、線程調(diào)用了另一個線程的join()方法C、當(dāng)線程調(diào)用了一個阻塞式的IO方法D、線程調(diào)用了setDaemon(boolean b)方法(C)7、線程調(diào)用sleep()方法后,該線程將進入以下哪種狀態(tài)?A、就緒狀態(tài) B、運行狀態(tài)C、阻塞狀態(tài) D、死亡狀態(tài)(D)8、在以下哪種情況下,線程進入就緒狀態(tài)?A、線程調(diào)用了sleep()方法時 B、線程調(diào)用了join()方法(終止)C、線程調(diào)用了yield()方法時 D、線程調(diào)用了notify()方法?(AB)9、下面四個選項中,對線程同步的目的描述正確的有哪些?(多選)A、鎖定資源,使同一時刻只有一個線程去訪問它,防止多個線程操作同一個資源引發(fā)錯誤B、提高線程的執(zhí)行效率C、讓線程獨占一個資源D、讓多個線程同時使用一個資源(ABCD)10、對于wait()方法,下面說法正確的是?(多選)A、wait()方法的調(diào)用者是同步鎖對象B、wait()方法使線程進入等待狀態(tài)C、調(diào)用同一鎖對象的notify()或notifyAll()方法可以喚醒調(diào)用wait()方法等待的線程D、調(diào)用wait()方法的線程會釋放同步鎖對象(C)1、先閱讀下面的程序片段:String str = abccdefcdh;String arr = str.split(c);System.out.println(arr.length);程序執(zhí)行后,打印的結(jié)果是幾?A、2個 B、 3個 C、4個 D、 5個(C)2、以下都是Math類的常用方法,其中用于計算絕對值的方法是哪個?A、ceil() B、 floor() C、 abs() D、random()(D)3、Random對象能夠生成以下哪種類型的隨機數(shù)?A、int B、string C、double D、A和C(C)4、String s = abcdedcba;則s.substring(3,4)返回的字符串是以下選項中的哪個?A、cd B、de C、d D、e(C)5、假若indexOf()方法未能找到所指定的子字符串,則返回以下選項中的哪個?A、 false B、 0 C、-1 D、以上答案都不對(B)6、要產(chǎn)生20,999之間的隨機整數(shù)可以使用以下哪個表達式?A(int)(20+Math.random()*97)B. 20+(int)(Math.random()*980)C. (int)Math.random()*999D. 20+(int)Math.random()*980(C)7、以下Math類的方法中,-4.4通過哪個方法運算后,結(jié)果為-5.0?A. round()四舍五入 B. min() C. floor() 小于參數(shù)最大整數(shù) D. ceil()大于參數(shù)最小整數(shù)(A)8、下面的程序段執(zhí)行后,輸出的結(jié)果是以下哪個選項?StringBuffer buf=new StringBuffer(Beijing2008);buf.insert(7,);System.out.println(buf.toString();A、Beijing2008 B、Beijing2008 C、Beijing2008 D、Beijing#2008 (A)9、閱讀下面的程序:public class test public static void main(String args) int i;float f = 2.3f;double d = 2.7;i = (int)Math.ceil(f) * (int)Math.round(d);System.out.println(i);程序執(zhí)行后,運行結(jié)果為以下哪個選項?A、 9 B、 5 C、6 D、 6.1(B) 10、先閱讀下面的程序片段:String str1=new String(java);String str2=new String(java);StringBuffer str3=new StringBuffer(java);對于上述定義的變量,以下表達式的值為true的是哪個?A、 str1=str2; B、str1.equals(str2); C、str1=str3; D、以上都不對(BC)1、要想保存具有映射關(guān)系的數(shù)據(jù),可以使用以下哪些集合?(多選)A、ArrayList B、TreeMap C、HashMap D、TreeSet(A)2、Java語言中,集合類都位于哪個包中?A、java.util B、java.lang C、java.array D、java.collections(D)3、使用Iterator時,判斷是否存在下一個元素可以使用以下哪個方法?A、next() B、hash() C、hasPrevious() D、hasNext()(ABD)4、關(guān)于foreach循環(huán)的特點,以下說法哪些是正確的?(多選)A、foreach循環(huán)在遍歷集合時,無需獲得容器的長度B、foreach循環(huán)在遍歷集合時,無需循環(huán)條件,也無需迭代語句C、foreach循環(huán)在遍歷集合時非常繁瑣D、foreach循環(huán)的語法格式為:for(容器中元素類型 臨時變量 :容器變量)。(C)5、在程序開發(fā)中,經(jīng)常會使用以下哪個類來存儲程序中所需的配置?A、HashMap B、TreeSet C、Properties D、TreeMap(AB)6、使用Enumeration遍歷集合時,需要使用以下哪些方法?(多選)A、hasMoreElements() B、nextElement() C、next() D、hashNext()(D)7、要想集合中保存的元素沒有重復(fù)并且按照一定的順序排列,可以使用以下哪個集合?A、LinkedList B、 ArrayList C、hashSet D、TreeSet(AB)8、下列哪些說法是正確的?(多選)A、LinkedList集合在增刪元素時效率較高B、ArrayList集合在查詢元素時效率較高C、HashMap不允許出現(xiàn)一對null鍵null值D、HashSet集合中元素可重復(fù)并且無序(ABC)9、以下哪些方法是LinkedList集合中定義的?(多選)A、getLast() B、getFirst() C、remove (int index) D、next()(B)10、獲取單列集合中元素的個數(shù)可以使用以下哪個方法?A、length() B、size() C、get(int index) D、add(Object obj)(AB)1、下面選項中,哪些是標準輸入輸出流?(多選)A、System. In B、System. Out C、InputStream D、OutputStream(C)2、以下選項中,哪個是FileOutputStream的父類?A.File B.FileOutput C.OutputStream D.InputStream(C)3、File類中以字符串形式返回文件絕對路徑的的方法是?A、getParent() B、getName()C、getAbsolutePath() D、getPath()(ABCD)4、下面哪些是常用的字符碼表?(多選)A、ASCII B、UTF-8 C、ISO8859-1 D、GB2312(AB)5、以下創(chuàng)建RandomAccessFile類實例對象的代碼,哪些是正確的? (多選)A、RandomAccessFile(new File(“D:itcastdir1test.java”),”rw”)B、RandomAccessFile( “D:itcastdir1test.java”,”r”)C、RandomAccessFile( “D:itcastdir1test.java”)D、RandomAccessFile( “D:itcastdir1test.java”,”wr”)(ACD)6、以下哪些屬于InputStream類的方法?(多選)A、int read(byte) B、void flush() C、void close() D、available()(A)7、以下選項中,哪個流中使用了緩沖區(qū)技術(shù)?A 、BuffereOutputStream B、 FileInputStream C、DataOutputStream D、FileReader(A)8、以下選項中,哪個是File類delete()方法返回值的類型?A、 boolean B、 int C、 String D、 Integer(D)9、以下選項中,哪個文件操作類可以實現(xiàn)一次讀入多個文件?A、 FileReader B、BufferedReader C、FileInputStream D、SequenceInputStream(A)10、以下對File類的public boolea isFile()方法的描述,哪個是正確的?A、判斷該File對象所對應(yīng)的是否是文件。B、判斷該File對象所對應(yīng)的是否是目錄。C、返回文件的最后修改時間。D、在當(dāng)前目錄下生成指定的目錄。(D)1、下面四個組件中哪一個不是Component的子類?A、Button B、Dialog C、Label D、MenuBar(D)2、每一個GUI程序中必須包含一個什么組件?A、按鈕 B、標簽 C、菜單 D、容器(ABD)3、下面四個選項中,哪些是事件處理機制中的角色?(多選)A、事件 B、事件源C、事件接口 D、事件監(jiān)聽器(A)4、當(dāng)鼠標按鍵被釋放時,會調(diào)用以下哪個事件處理器方法?A、mouseReleased() B、mouseUp()C、mouseOff() D、mouseLetGo()(D)5、ActionEvent的對象會被傳遞給以下哪個事件處理器方法?A、addChangeListener() B、addActionListener()C、stateChanged() D、actionPerformed()(ABCD)6、AWT中,常用的布局管理器包括哪些?(多選)A、FlowLayout布局管理器 B、BorderLayout布局管理器C、CardLayout布局管理器 D、GridLayout布局管理器(ABD)7、下面哪些是FlowLayout類中表示對齊方式的常量?(多選)A、FlowLayout.LEFT B、FlowLayout.CENTERC、FlowLayout.VERTICAL D、FlowLayout.RIGHT(ABC)8、下面對與Swing的描述,正確的有哪些?(多選)A、Swing 是在AWT基礎(chǔ)上構(gòu)建的一套新的圖形界面系統(tǒng)B、Swing提供了AWT 所能夠提供的所有功能C、Swing 組件是用Java代碼來實現(xiàn)的D、Swing組件都是重量級組件(D)9、下面四對AWT和Swing對應(yīng)組件中,錯誤的是?A、Button和JButtonB、Dialog和JDialogC、MenuBar和JMenuBarD、ComboBox和JComboBox(C)10、使用下面哪個組件可以接收用戶的輸入信息?A、JButton B、JLabelC、JTextField D、以上都可以(C) 1.使用UDP協(xié)議通信時,需要使用哪個類把要發(fā)送的數(shù)據(jù)打包?(d)的街A, Socket 辣C m05 3136t0 www B. DatagramSocket C. DatagramPacket D. ServerSocket(A)2. 以下哪個是 serverSocket 類用于接收來自客戶端請求的方法? ( ) A. accept() B. getOutputStream()C. receive( ) D. get()(ABD)3.以下說法哪些是正確的?(多選)()A.TCP連接中必須要明確客戶端與服務(wù)器端B.TCP協(xié)議是面向連接的通信協(xié)議,它提供了兩臺計算機之間可靠無差錯的數(shù)據(jù)傳輸C.UDP協(xié)議是面向無連接的協(xié)議,可以保證數(shù)據(jù)的完整性D.UDP協(xié)議消耗資源小,通信效率高,通常被用于音頻、視頻和普通數(shù)據(jù)的傳輸(B)4.以下哪個類用于實現(xiàn)TCP通信的客戶端程序?()A.ServerSocketB.SocketC.Client D.Server(C)5.進行UDP通信時,在接收端若要獲得發(fā)送端的IP地址,可以使用DatagramPacket的哪個方法?(A.getAddress() B.getPort()C.getName() D.getData()(A)6.以下哪個方法是DatagramSocket類用于發(fā)送數(shù)據(jù)的方法?()A.receive() B.accept()C.set() D.send()(B)7.在程序運行時,DatagramSocket的那個方法會發(fā)生阻塞()A.send() B.receive()C.close() D. connect()(C)8. TCP協(xié)議的“三次握手”中,第一-次握手指的是什么?()A.客戶端再次向服務(wù)器端發(fā)送確認信息,確認連接B.服務(wù)器端向客戶端回送一.個響應(yīng),通知客戶端收到了連接請求C.客戶端向服務(wù)器端發(fā)出連接請求,等待服務(wù)器確認D.以上答案全部錯誤(B)1、類的定義必須包含在以下哪種符號之間?A、方括號 B、花括號 C、雙引號“” D、圓括號()(D)2、下面哪一個是正確的類的聲明? A、 public void HH B、 public class Move()C、 public class void number D、 public class Car(B)3、在以下什么情況下,構(gòu)造方法會被調(diào)用?A、 類定義時 B、 創(chuàng)建對象時 C、 調(diào)用對象方法時 D、 使用對象的變量時(ABC)4、下面對于構(gòu)造方法的描述,正確有哪些?(多選)A、方法名必須和類名相同B、方法名的前面沒有返回值類型的聲明C、在方法中不能使用return語句返回一個值D、當(dāng)定義了帶參數(shù)的構(gòu)造方法,系統(tǒng)默認的不帶參數(shù)的構(gòu)造方法依然存在(ABCD)5、使用this調(diào)用類的構(gòu)造方法,下面的說法正確的是?(多選)A、使用this調(diào)用構(gòu)造方法的格式為this(參數(shù)1,參數(shù)2)B、只能在構(gòu)造方法中使用this調(diào)用其它的構(gòu)造方法C、使用this調(diào)用其它構(gòu)造方法的語句必須放在第一行D、不能在一個類的兩個構(gòu)造方法中使用this互相調(diào)用(ACD)6、下面哪些可以使用static關(guān)鍵字修飾?(多選)A、 成員變量 B、局部變量 C、成員方法 D、成員內(nèi)部類填空題(class )1、Java中的程序代碼都必須在一個類中定義,類使用_ _關(guān)鍵字來定義。(true和false )2、布爾常量即布爾類型的兩個值,分別是_ _和_。(基本數(shù)據(jù)類型、引用數(shù)據(jù)類型)4、Java中的變量可分為兩種數(shù)據(jù)類型,分別是_基本數(shù)據(jù)類型_和_引用數(shù)據(jù)類型_。(34)9、若int a=12,45,34,46,23; ,則a2= _。(56) 10、若int a32=123,345,34,56,34,56,則a21= _。(繼承)1、在Java語言中,允許使用已存在的類作為基礎(chǔ)創(chuàng)建新的類,這種技術(shù)我們稱為繼承_。(方法,抽象類)2、一個類如果實現(xiàn)一個接口,那么它就需要實現(xiàn)接口中定義的全部_方法_,否則該類就必須定義成_抽象類_。(import)3、在程序開發(fā)中,要想將一個包中的類導(dǎo)入到當(dāng)前程序中,可以使用_關(guān)鍵字。(子類、父類、基類)4、一個類可以從其它的類派生出來,派生出來的類稱為_,用于派生的類稱為_或者_ _。(Exception) 5、 JDK中定義了大量的異常類,這些類都是_ _類的子類或者間接子類。(final)6、定義一個Java類時,如果前面加使用_關(guān)鍵字修飾,那么該類不可以被繼承。(try、catch)9、異常的捕獲通常由try、catch兩部分組成, _代碼塊用來存放可能發(fā)生異常,_catch_代碼塊用來處理產(chǎn)生的異常。(填空題線程、通信)1、一個應(yīng)用程序中有多條并發(fā)執(zhí)行的線索,每條線索都被稱作一個線程_,它們會交替執(zhí)行,彼此間可以進行_通信_。(Thread、Runnable)2、在實現(xiàn)多線程的程序時有兩種方式,一是通過繼_Thread_承類,二是通過實現(xiàn)Runnable_接口。(就緒)3、yield()方法只能讓相同優(yōu)先級或者更高優(yōu)先級、處于_就緒_狀態(tài)的線程獲得運行的機會。(synchronized、對象、this)4、在Java語言中,同步方法需要用到關(guān)鍵字_synchronized_,對于同步方法而言無需指定同步鎖,它的同步鎖是方法所在的_對象_,也就是_this_(關(guān)鍵字)。(進程)5、在多任務(wù)系統(tǒng)中,每個獨立執(zhí)行的程序稱之為_線程_,也就是“正在運行的程序”。(新建狀態(tài)(New)、就緒狀態(tài)(Runnable)、運行狀態(tài)(Running)、阻塞狀態(tài)(Blocked)、死亡態(tài)(Terminated)6、線程的整個生命周期分為五個階段,分別是_新建_、就緒_、_運行_、_阻塞_、和死亡_。(10、1)7、線程的優(yōu)先級用110之間的整數(shù)來表示,其中_10_代表優(yōu)先級最高,_1_代表優(yōu)先級最低。(開啟一個新線程、run()方法)8、在Thread類中,提供了一個start()方法,該方法用于啟動線程_,當(dāng)新線程啟動后,系統(tǒng)會自動調(diào)用_run()_方法。(wait()、notify()、notifyAll()9、要想解決線程間的通信問題,可以使用_wait()_、notify()_、_notifyALL()_方法。(setDaemon(true)、start()10、要將某個線程設(shè)置為后臺線程,需要調(diào)用該線程的_setDaemon(true)_方法,該方法必須在_start()_方法之前調(diào)用。(String、StringBuffer)1、在Java中定義了兩個類來封裝對字符串的操作,它們分別是_和_ _。(Date、Calendar、DateFormat)2、Java中的操作日期的類有_、_、_等。(getRuntime()3、在程序中若想取得一個Runtime實例,則可以調(diào)用Runtime類的靜態(tài)方法_。(sqrt()4、Math類中用于計算所傳遞參數(shù)平方根的方法是_。(DateForma)5、Java中專門用于將日期格式化為字符串的類是_。(、e)6、Math類中有兩個靜態(tài)常量PI和E,分別代表數(shù)學(xué)常量_和_。(Random、java.util)7、Java中的用于產(chǎn)生隨機數(shù)的類是_,它位于_包中。(length()8、String類中用于返回字符串字符個數(shù)的方法是_。(靜態(tài))9、System類中所提供的屬性和方法都是_靜態(tài)_的,想要引用這些屬性和方法,直接使用System類調(diào)用即可。(edcba)10、已知 sb 為 StringBuffer 的一個實例,且 sb.toString() 的值為 abcde , 則執(zhí)行sb. reverse()后,sb.toString()的值為_。(集合)1、JDK中提供了一系列可以存儲任意對象的類,統(tǒng)稱為()(有序、可重復(fù),無序、不可重復(fù))3、Collection有兩個子接口分別是List和Set,List集合的特點是(),Set集合的特點是()(hashNext()、next())4、使用Iterator遍歷集合時,首先需要調(diào)用() 方法判斷是否存在下一個元素,若存在下一個元素,則調(diào)用()方法取出該元素。(Collection、Map)5、集合按照存儲結(jié)構(gòu)的不同可分為單列集合和雙列集合,單列集合的根接口是 ,雙列集合的根接口是 。(鍵、值)6、Map集合中的元素都是成對出現(xiàn)的,并且都是以 、 的映射關(guān)系存在。(ListIterator)7、Iterator有一個子類,不僅可以對集合進行從前向后遍歷,還可以從后向前遍歷,該類是 (put()、get())9、Map集合中存儲元素需要調(diào)用 方法,要想根據(jù)該集合的鍵獲取對應(yīng)的值需要調(diào)用 方法。(鍵、值)10、java.util包中提供了一個專門用來操作集合的工具類,這個類是 ,還提供了一個專門用于操作數(shù)組的工具類,這個類是 。(題字節(jié)流、字符流)1、Java中的IO流,按照傳輸數(shù)據(jù)不同,可分為_ 和 _。(File、java.io)2、在Java中,_ 類用于操作磁盤中文件和目錄,位于 _ 包中。(SequenceInputStream)3、在Java中,_ 類用來把兩個或更多的InputStream輸入流對象合并為單個InputStream輸入流對象使用。(RandomAccessFile)4、Java中提供了一個類 _ ,它不但具有讀寫文件的功能,并且可以隨機地從文件的任何位置開始執(zhí)行讀寫數(shù)據(jù)的操作。(管道流)5、在Java中,能實現(xiàn)線程間通信的流是_。(LineNumberReader、BufferedReader、setLineNumber(int)、getLineNumber()6、Java中提供了一個可以在讀文件的同時記錄行號的類,這個類是_,它是_的直接子類,它通過 _ 和 _ 方法設(shè)置和獲取當(dāng)前行號。(字節(jié)流、字符流)7、InputStreamReader類是用于將_ 轉(zhuǎn)換為 _。(PrintStream、setOut(PrintStream out)8、System.out是 _ _類的對象,稱為標準輸出流,調(diào)用System類的 _ 方法可以實現(xiàn)標準輸出流的重定向。(Unicode)9、Java中一個字符占用兩個字節(jié),所有字符采用的都是 _ 碼表。(newLine()10、BufferedWriter的 _ 方法可以寫入一個換行符。(GUI、java.awt、javax.swing)1、 在Java中,圖形用戶界面簡稱 _,它的組件包含在_和_這兩個包中。(適配器)2、 為了避免實現(xiàn)監(jiān)聽器中定義的所有方法,造成代碼的臃腫,在JDK中提供了一些_類,這些類實現(xiàn)了接口所有的方法,但是方法中沒有任何代碼,屬于一種空實現(xiàn)。(Graphics)3、 在Java中,_類相當(dāng)于一個抽象的畫筆對象,使用它可以在組件上繪制圖形。(事件監(jiān)聽器)4、 _負責(zé)監(jiān)聽事件源上發(fā)生的事件,并對各種事件做出響應(yīng)處理。(面向連接、客戶端、服務(wù)器端)1.TCP協(xié)議的特點是(),即在傳輸數(shù)據(jù)前先在()和()建立邏輯連接。(2、0-65535)2. 在計算機中,端口號是用_字 節(jié),也就是16位的二進制數(shù)表示,它的取值范圍是_。(鏈路層、網(wǎng)絡(luò)層、運輸層、應(yīng)用層)3. TCP/IP協(xié)議被分為四個層,分別是_,_,_,_。(InetAddress)4.在JDK中,IP地址用_類來表示,該類提供了許多和IP地址相關(guān)的操作。(DatagramPacket、DatagramSocket)5. 使用UDP協(xié)議開發(fā)網(wǎng)絡(luò)程序時,需要使用兩個類,分別是_和_。封裝、繼承、多態(tài))1、 面向?qū)ο蟮娜筇卣魇欠庋b性_、_繼承性_和_ _。(new)2、 在Java中,可以使用關(guān)鍵字_來創(chuàng)建類的實例對象。(成員變量、局部變量)3、 定義在類中的變量被稱為_ _,定義在方法中的變量被稱為_(靜態(tài)變量)7、 被static關(guān)鍵字修飾的成員變量被稱為_ _,它可以被該類所有的實例對象共享。(private)10、所謂類的封裝是指在定義一個類時,將類中的屬性私有化,即使用_ _關(guān)鍵字來修飾。判斷題(錯)1、Java語言不區(qū)分大小寫。(對)2、0 xC5表示的是一個十六進制整數(shù)。(錯)3、continue 語句只用于循環(huán)語句中,它的作用是跳出循環(huán)。(對)4、“/*/”中可以嵌套“/”注釋,但不能嵌套“/*/”注釋。(錯)5、-5%3的運算結(jié)果是2。(錯)1、抽象方法必須定義在抽象類中,所以抽象類中的方法都是抽象方法。(對)2、Java中被final關(guān)鍵字修飾的變量,不能被重新賦值。(錯)3、不存在繼承關(guān)系的情況下,也可以實現(xiàn)方法重寫。(對)4、package聲明語句應(yīng)當(dāng)為Java源文件中的第一條語句。(對)5、接口中只能定義常量和抽象方法。(錯)1、當(dāng)我們創(chuàng)建一個線程對象時,該對象表示的線程就立即開始運行。(對)2、如果前臺線程全部死亡,后臺線程也會自動死亡。(對)3、同步代碼塊中的鎖對象可以是任意類型的對象.(錯)4、靜態(tài)方法不能使用synchronized關(guān)鍵字來修飾。(錯)5、線程結(jié)束等待或者阻塞狀態(tài)后,會進入運行狀態(tài)。(錯)1、String對象和StringBuffer對象都是字符串變量,創(chuàng)建后都可以修改。(錯)2、用運算符“=”比較字符串對象時,如果兩個字符串的值相同,結(jié)果為true。(對)3、System類中的currentTimeMillis()方法返回一個long類型的值。(錯)4、Date、Calendar以及DateFormat類都位于java.util包中。(對)5、String類的方法 replace (CharSequence srt1, CharSequence srt2)返回一個新的字符串,它是通過用srt2替換此字符串中出現(xiàn)的所有 srt1得到的。(錯)1、Set集合是通過鍵值對的方式來存儲對象的。( )(對)2、集合中不能存放基本數(shù)據(jù)類型,而只能存放引用數(shù)據(jù)類型。( )(對)3、如果創(chuàng)建的TreeSet集合中沒有傳入比較器,則該集合中存入的元素需要實現(xiàn)Comparable接口。( )(錯)4、使用Iterator迭代集合元素時,可以調(diào)用集合對象的方法增刪元素。( )(對)5、LinkedList在內(nèi)部維護了一個雙向循環(huán)鏈表,每一個元素節(jié)點都包含前一個元素節(jié)點和后一個元素節(jié)點的引用。( )(錯)1、如果一個File表示目錄下有文件或者子目錄,調(diào)用delete()方法也可以將其刪除。( )(對)2、裝飾設(shè)計模式中,裝飾對象應(yīng)該包含一個被裝飾對象的引用。( )(對)3、使用ObjectInputStream與ObjectOutputStream類來讀取或存儲的對象必須要實現(xiàn)Serializable接口,否則程序?qū)⒊霈F(xiàn)NotSerializableException異常。( )(對)4、InputStream類的close()方法是用于關(guān)閉流并且釋放流所占的系統(tǒng)資源。( )(錯)5、一般來說,把字符轉(zhuǎn)換成計算機識別的字節(jié)序列稱為解碼,而把字節(jié)序列轉(zhuǎn)換為普通人能看懂的明文字符稱為編碼。( )(對)1、容器(Container)是一個可以包含基本組件和其它容器的組件。( )(錯)2、可以通過實現(xiàn)ActionListener接口或者繼承ActionAdapter類來實現(xiàn)動作時間監(jiān)聽器。(對)3、CardLayout布局管理器將界面看做一系列卡片,在任何時候只有其中一張卡片是可見的。( )(錯)4、非模態(tài)對話框是指用戶需要等到處理完對話框后才能繼續(xù)與其它窗口進行交互。( )(錯)5、JFrame的默認布局管理器是FlowLayout。( )(錯)1.由于UDP是面向無連接的協(xié)議,可以保證數(shù)據(jù)的完整性,因此在傳輸重要數(shù)據(jù)時建議使用UDP協(xié)議().(對)2.在網(wǎng)絡(luò)通信中,對數(shù)據(jù)傳輸格式、傳輸速率、傳輸步驟等作了統(tǒng)一規(guī)定, 只有通信雙方共同遵守這個規(guī)定才能完成數(shù)據(jù)的交互,這種規(guī)定稱為網(wǎng)絡(luò)傳輸協(xié)議。()(對) 3.在創(chuàng)建發(fā)送端的DatagramPacket對象時,需要指定發(fā)送端的目標IP地址和端口號。()(錯)4. IPv4版本的IP地址使用4個字節(jié)來表示,IPv6版本的IP地址使用8個字節(jié)來表示。()(對) 5.使用TCP協(xié)議通信時,通信的兩端以IO的方式進行數(shù)據(jù)的交互。()對)1、在定義一個類的時候,如果類的成員被private所修飾,該成員不能在類的外部被直接訪問。(對)2、Java中的每個類都至少有一個構(gòu)造方法,一個類中如果沒有定義構(gòu)造方法,系統(tǒng)會自動為這個類創(chuàng)建一個默認的構(gòu)造方法。(錯)3、聲明構(gòu)造方法時,不能使用private關(guān)鍵字修飾。(對)4、類中static修飾的變量或方法,可以使用類名或?qū)ο蟮囊米兞吭L問。(錯)5、方法內(nèi)部類中不能訪問外部類的成員變量。思考題1. 簡述JAVA的特點面向?qū)ο?、跨平臺性、健壯性、安全性、可移植性、多線程性、動態(tài)性等。2. 簡述JRE和JDK的區(qū)別。JDK是Java開發(fā)工具包,它包含編譯工具、解釋工具、文檔制作工具、打包工具多種與開發(fā)相關(guān)的工具。JRE是Java程序運行時環(huán)境,它包含Java虛擬機、運行時的類包、Java應(yīng)用啟動器以及一個bin目錄。3. 什么是方法重載方法重載是指的是在一個類中可以聲明多個同名的方法,而方法中參數(shù)的個數(shù)或者數(shù)據(jù)類型不一致。調(diào)用這些同名的方法時,JVM會根據(jù)實際參數(shù)的不同綁定到不同的方法。4. 簡述break,continue,return語句的區(qū)別 break 跳出本一層循環(huán);continue 跳出本次循環(huán),繼續(xù)執(zhí)行下次循環(huán);return 程序返回,不再執(zhí)行下面的代碼(結(jié)束當(dāng)前的方法 直接返回)5. 構(gòu)造方法和普通的成員方法有什么區(qū)別構(gòu)造方法是類的一個特殊成員,它會在類實例化對象時被自動調(diào)用。而普通方法只有在使用的時候才會被調(diào)用。在定義構(gòu)造方法時要求方法名與類名相同、在方法名的前面沒有返回值類型的聲明、在方法中不能使用return語句返回一個值。6. 請簡述垃圾回收的優(yōu)點和原理java的一個重大特點就是引進了垃圾回收機制,它使得java程序員在編寫程序的時候不用考慮內(nèi)存管理。由于有了垃圾回收機制,java中的對象不再有“作用域”的概念,只有對象的引用才有“作用域”。垃圾回收機制有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。7. 什么是方法重寫在繼承關(guān)系中,子類的方法與父類的某一方法具有相同的方法名、返回類型和參數(shù)列表,則稱子類的該方法重寫父類的方法。8. 什么是多態(tài)9. 在面向?qū)ο笳Z言中,接口的多種不同的實現(xiàn)方式即為多態(tài)。在同一個方法中。這總由于參數(shù)類型不同而導(dǎo)致執(zhí)行效果各異的現(xiàn)象。10. 請簡述方法重寫和方法重載的區(qū)別重寫是子類的方法覆蓋父類的方法,要求方法名和參數(shù)都相同,重載是在同一個類中的兩個或兩個以上的方法,擁有相同的方法名,但是參數(shù)卻不相同,方法體也不相同。11. 在JAVA中創(chuàng)建線程有幾種方法一種是繼承java.lang包下的Thread類,重寫Thread類的run()方法, 另一種就是實現(xiàn)Runnable接口, Sleep()和wait()有什么區(qū)別 調(diào)用sleep()方法,正在執(zhí)行的線程主動讓出CPU去執(zhí)行其他線程,在sleep()方法指定的時間過后,CPU才會回到這個線程上繼續(xù)往下執(zhí)行,如果當(dāng)前線程進入了同步鎖,sleep()方法并不會釋放鎖,即使當(dāng)前線程使用sleep()方法讓出了CPU,但其它被同步鎖擋住了的線程也無法得到執(zhí)行。wait()在一個已經(jīng)進入了同步鎖的線程內(nèi)進行調(diào)用,讓當(dāng)前線程暫時讓出同步鎖,以便其它正在等待此鎖的線程可以得到同步鎖并運行。當(dāng)其它線程調(diào)用了notify()方法后,調(diào)用wait()方法的線程就會解除wait狀態(tài),當(dāng)再次獲得同步鎖后,程序可以繼續(xù)向下執(zhí)行。12. 請簡述synchronized和java.util.concurrent.locks.Lock的異同點 要相同點:Lock能完成synchronized所實現(xiàn)的所有功能;主要不同點:Lock有比synchronized更精確的線程語義和更好的性能。synchronized會自動釋放鎖,而Lock一定要求程序員手工釋放,并且必須在finally從句中釋放。13. 進程和線程之間有什么不同進程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。進程有獨立的地址空間,一個進程崩潰后,在保護模式下不會對其它進程產(chǎn)生影響,而線程只是一個進程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨的地址空間,一個線程死掉就等于整個進程死掉,所以多進程的程序要比多線程的程序健壯,但在進程切換時,耗費資源較大,效率要差一些。但對于一些要求同時進行并且又要共享某些變量的并發(fā)操作,只能用線程,不能用進程。14. .String和StringBuffer類有什么區(qū)別 String類是不可變類,即字符串值一旦初始化后就不可能改變。StringBuffer是可變字符串類,類似String的緩沖區(qū),可以修改字符串的值。15. 集合中的List,Set,Map有什么區(qū)別List的特點是元素有序、元素可重復(fù)。List接口的主要實現(xiàn)類有ArrayList和LinkedList。Set的特點是元素?zé)o序、元素不可重復(fù)。Set接口的主要實現(xiàn)類有HashSet和TreeSet。Map的特點是存儲的元素是鍵(Key)、值(Value)映射關(guān)系,元素都是成對出現(xiàn)的。Map接口的主要實現(xiàn)類有HashMap和TreeMap。16. 簡述流的概念Java程序通過流來完成輸入和輸出,流是輸入或輸出信息的抽象。流通過Java的輸入/輸出系統(tǒng)與外設(shè)連接進行數(shù)據(jù)通信。17. 簡要說明管道流管道流分為管道輸入流(PipedInputStream)和管道輸出流(PipedOutputStream),通常由一個PipedInputStream實例對象和一個PipedOutputStream實例對象相互連接而實現(xiàn)管道通信,PipedOutputStream向管道寫入數(shù)據(jù),PipedInputStream從管道中讀取PipedOutputStream寫入的數(shù)據(jù),管道流主要用來完成線程之間的通信。18. 簡述Java.awt包中提供哪些布局管理器BorderLayout邊框布局;BoxLayout布局;CardLayout卡片布局;FlowLayout流動布局;GridBagLayout網(wǎng)格包布局;GridLayout網(wǎng)格布局;GroupLayout布局;SpringLayout布局;19. TCP和UDP協(xié)議有什么區(qū)別UDP協(xié)議是無連接通信協(xié)議,所謂的無連接就是指數(shù)據(jù)的發(fā)送端和接收端不建立邏輯連接。TCP協(xié)議是面向連接的通信協(xié)議,即在傳輸數(shù)據(jù)前先在發(fā)送端和接收端建立邏輯連接,然后再傳輸 數(shù)據(jù),它提供了兩臺計算機之間可靠無差錯的數(shù)據(jù)傳輸。 編程題P77第1題請編寫程序,實現(xiàn)計算“1 +3+5+7+ . +99”的值。 提示: 使用循環(huán)語句實現(xiàn)自然數(shù)199的遍歷。 在遍歷過程中,通過條件判斷當(dāng)前遍歷的數(shù)是否為奇數(shù),如果是就果加,否則 不加。 public class Test01 public static void main(String args) int sum = 0;for (int i = 1; i 100; i+) if (i % 2 != 0)sum += i;System.out.println(sum);P112第1題1.請按照以下要求設(shè)計一個學(xué)生類Sudent,并進行測試。要求如下:Student類中包含姓名、成績兩個屬性。分別給這兩個屬性定義兩個方法,一個方法用于設(shè)置值,另一個方法用于獲取值。Student類中定義一個無參的構(gòu)造方法和一個接收兩個參數(shù)的構(gòu)造方法,兩個參數(shù)分別為姓名和成績屬性賦值。在測試類中創(chuàng)建兩個Student對象,一個使用無參的構(gòu)造方法,然后調(diào)用方法給姓名和成績賦值,另一個使用有參的構(gòu)造方法,在構(gòu)造方法中給姓名和成績賦值。class Student private String name;private double grade;public Student() public Student(String name, double grade) this.name = name;this.grade = grade;public String getName() return name;public void setName(String name) this.name = name;public double getGrade() return grade;public void setGrade(double grade) this.grade = grade;public class Test01 public static void main(String args) Student stu1 = new Student();stu1.setName(zhangsan);stu1.setGrade(99);Student stu2 = new Student(lisi, 100);P1621.設(shè)計一個學(xué)生類Student和它的一個子類UnderBTn金兩個參數(shù)的構(gòu)造方法,用一個包含兩Student類有name(姓名)和age(年齡)屬性,的屬屬性信息。于給name和age屬性賦值,一個show()方法打印udene有一個包含三個參數(shù)的(學(xué)位)屬性。本科生類Undergraduate增加一個degree(店第三個參數(shù)給degree專業(yè)陸構(gòu)造方法,前兩個參數(shù)用于給繼承的name和age屬性賦值。1值,一個show()方法用于打印Undergradduate的屬性信息。sduate對象,調(diào)用它們的show().在測試類中分別創(chuàng)建Student對象和Undergradecinle要求如下:和Circle. class Student public String name;public int age;public Student(String name,int age)this.name=name;this.age=age;public void show()System.out.println(name: +name+ age: +age);class UnderGraduate extends Studentpublic String degree;public Und