版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java技術(shù)課程2019年春季期末考試復(fù)習(xí)題二、考試重點(diǎn)(占期末考試成績(jī)60%)一、 單項(xiàng)選擇題.計(jì)算機(jī)硬件能直接執(zhí)行的只能是( B )。A.符號(hào)語(yǔ)言程序 B.機(jī)器語(yǔ)言程序 C.匯編語(yǔ)言程序 D.高級(jí)語(yǔ)言程序. Java 語(yǔ)言屬于(C )。A.面向過(guò)程的解釋型語(yǔ)言B.面向過(guò)程的編譯型語(yǔ)言C.面向?qū)ο蟮慕忉屝驼Z(yǔ)言D.面向?qū)ο蟮木幾g型語(yǔ)言.根據(jù)TIOBE編程語(yǔ)言社區(qū)排行榜的統(tǒng)計(jì),使用率居于前三的編程語(yǔ)言是(A)。A. Java、C、C+B. Java、C找 C+Java、Python、RubyD. Objective-C 、C+、Java.下述Java平臺(tái)中,最適于開(kāi)發(fā)嵌入式系統(tǒng)應(yīng)用程序的是( C
2、 )。A. Java SEB. Java EEC. Java MED. Java Applet.下面關(guān)于Java類(lèi)文件的說(shuō)法錯(cuò)誤的是(D )。Java編譯器會(huì)為源程序中的每個(gè)類(lèi)單獨(dú)生成一個(gè)類(lèi)文件Java類(lèi)文件中存儲(chǔ)的代碼必須符合JVM規(guī)范Java類(lèi)文件中存儲(chǔ)的代碼是二進(jìn)制形式的代碼Java類(lèi)文件必須用Java語(yǔ)言編寫(xiě)得到.下列關(guān)于Eclipse 說(shuō)法錯(cuò)誤的是(A )。A.使用Eclipse 開(kāi)發(fā)Java程序時(shí),程序員編輯源程序后即可運(yùn)行該程序,因此無(wú)編譯程序的過(guò)程Eclipse 中的Workspace用于存儲(chǔ)工程的路徑C.在Windows系統(tǒng)下,Eclipse 程序包解壓縮后即可直接使用,無(wú)需
3、安裝Eclipse是一個(gè)基于Java的、可擴(kuò)展的、開(kāi)放源代碼的開(kāi)發(fā)平臺(tái).下列關(guān)于IDE開(kāi)發(fā)環(huán)境Eclipse的說(shuō)法錯(cuò)誤的是(D )。Eclipse可以通過(guò)插件(plugin )的方式擴(kuò)展其功能Eclipse聯(lián)盟是由 舊M公司捐資組建的Eclipse使用了 SWT圖形界面技術(shù)Eclipse的運(yùn)行不需要有JRE的支持.關(guān)于Eclipse 的視景說(shuō)法錯(cuò)誤的是(C )。A.每個(gè)視景都定義了工作臺(tái)中各個(gè)視圖的初始設(shè)置和布局. 一個(gè)工作臺(tái)窗口包含多個(gè)獨(dú)立的視景,但同一時(shí)刻只有一個(gè)視景是對(duì)用戶可見(jiàn)的C.視景的布局是可以改變的,但改變多次后無(wú)法再恢復(fù)到初始設(shè)置D.每個(gè)視景都有自己的視圖和編輯器,用戶可以在各個(gè)
4、視景間切換.在Java 中,由Java 編譯器自動(dòng)導(dǎo)入,而無(wú)需在程序中用import 導(dǎo)入的包是(A )。A. java.langB. java.awtC. java.ioD. java.applet10.在Java中,用package語(yǔ)句聲明一個(gè)包時(shí),該包的層次結(jié)構(gòu)必須是( B )。A.與文件的結(jié)構(gòu)相同B.與文件目錄的層次相同C.與文件類(lèi)型相同D.與文件大小相同11.下面不是包的用途的是(AA.規(guī)定一組類(lèi)的對(duì)外界面B.方便類(lèi)的查找和使用 C.防止命名沖突D.訪問(wèn)控制Java中用于描述對(duì)象的狀態(tài)的語(yǔ)法成分是(B )。A.修飾符B.變量C.方法D.語(yǔ)句Java中用于描述對(duì)象的行為的語(yǔ)法成分是(C
5、 )。A.常量B.變量C.方法D.語(yǔ)句應(yīng)用程序的main方法中有以下語(yǔ)句:String s1=new String(abc);String s2=new String(abc); boolean b1=s1.equals(s2);boolean b2=(s1=s2);System.out.print(b1+ +b2);則輸出的結(jié)果是( A )。A. true falseB. false trueC. true trueD. false false應(yīng)用程序的 main 方法中有以下語(yǔ)句: String s = 12; s = s + 34; System.out.println(s);則下述說(shuō)法
6、正確的是( C ) 。程序有錯(cuò)誤,不能通過(guò)編譯 TOC o 1-5 h z 程序沒(méi)有錯(cuò)誤,運(yùn)行輸出結(jié)果為:46程序沒(méi)有錯(cuò)誤,運(yùn)行輸出結(jié)果為:1234程序沒(méi)有錯(cuò)誤,運(yùn)行輸出結(jié)果為:12設(shè)有如下類(lèi)定義class Fruit / 水果類(lèi) int grams; / 克數(shù)(質(zhì)量) Fruit(int grams) this.grams = grams; int totalCalories() /卡路里(熱量) return grams * 10; 則創(chuàng)建一個(gè)Fruit 類(lèi)的對(duì)象實(shí)體的語(yǔ)句是( D )。Fruit f;B. Fruit(30);C. new Fruit();D. new Fruit(30)
7、;17.設(shè)有如下程序段 class Tes t private int m; public static void fun()/some code 要使成員變量 m 能夠被方法A. 將 private int m B. 將 private int m C. 將 private int m D. 將 private int m 18. 設(shè)有如下類(lèi)定義C )。則下面敘述最為準(zhǔn)確的是(A )。 A. 類(lèi) Bfun() 直接訪問(wèn),則下面選項(xiàng)正確的是(改成 protected int m改成public int m改成static int m改成 int mclass A private int i;
8、protected int j; class B extends A private int k; protected int m; 的對(duì)象包含數(shù)據(jù)域 i,j,k,m類(lèi) B 的對(duì)象包含數(shù)據(jù)域j,k,m類(lèi) B 的對(duì)象包含數(shù)據(jù)域k,m類(lèi) B 的對(duì)象包含數(shù)據(jù)域m下述關(guān)于重載和覆蓋的敘述正確的是( A )。子類(lèi)方法覆蓋父類(lèi)方法時(shí),子類(lèi)方法不能比父類(lèi)方法更“私有”靜態(tài)方法不能被重載C. 私有方法不能被重載D. 重載方法不能拋出父類(lèi)中的不可檢測(cè)異常下述關(guān)于構(gòu)造方法的敘述正確的是( B )。A. 構(gòu)造方法不能被重載B. 構(gòu)造方法不能被覆蓋C. 構(gòu)造方法可以返回一個(gè)基本數(shù)據(jù)類(lèi)型的數(shù)據(jù)或者一個(gè)對(duì)象的引用D. 構(gòu)
9、造方法的代碼在執(zhí)行時(shí),先執(zhí)行子類(lèi)中的代碼,然后再向上執(zhí)行它祖先中的代碼下面敘述正確的是( C )。語(yǔ)句“XextendsY”是正確的,當(dāng)且僅當(dāng)語(yǔ)句“XextendsY”是正確的,當(dāng)且僅當(dāng)語(yǔ)句“XextendsY”是正確的,當(dāng)且僅當(dāng)X 是一個(gè)類(lèi), Y 是一個(gè)接口X 是一個(gè)接口, Y 是一個(gè)類(lèi)X 和 Y 都是類(lèi),或都是接口D. 語(yǔ)句“ X extends Y ”是正確的,對(duì)于X 和 Y 是類(lèi)和接口的任意組合以下接口定義正確的是( D )。interface B void print() ; abstract interface B void print(); 為已定義接口 abstract voi
10、d print() ; abstract interface B extends A1, A2 / A1, A2interface B void print(); 給定下面程序段public class Navel private int size = 7;private static int length = 3;public static void main(String args) / TODO Auto-generated method stub new Navel().go();void go() int size = 5;System.out.println(new Gazer()
11、.adder(); class Gazer int adder() return size * length; 下面選項(xiàng)正確的是( B )。A. 輸出 15B. 輸出 21C. 拋出一個(gè)運(yùn)行時(shí)異常D. 編譯錯(cuò)誤給定下面程序段public class Testpublic static void aMethod() throws Exception trythrow new Exception();finallySystem.out.println(finally); public static void main(String args) try aMethod(); catch(Except
12、ion e) System.out.println(exception); System.out.println(finished); 下面選項(xiàng)正確的是( C )。通過(guò)編譯,程序運(yùn)行結(jié)果是finally通過(guò)編譯,程序運(yùn)行結(jié)果是 exception finished C. 通過(guò)編譯,程序運(yùn)行結(jié)果是finally exception finishedD. 編譯錯(cuò)誤,不能通過(guò)編譯 25. 下面關(guān)于異常的陳述正確的是( A )。 A. 語(yǔ)句“ catch(X x) ”能夠捕獲類(lèi) X 及其子類(lèi)對(duì)象的異常 B. Error 類(lèi)是一個(gè)運(yùn)行時(shí)異常 C. 任何可能拋出一個(gè)Error 類(lèi)對(duì)象的語(yǔ)句必須被封裝到一個(gè)
13、try 語(yǔ)句塊中D. 任何可能拋出一個(gè)Exception 類(lèi)對(duì)象的語(yǔ)句必須被封裝到一個(gè)try 語(yǔ)句塊中下面能夠創(chuàng)建一個(gè)DataOutputStream 對(duì)象的語(yǔ)句是( D )。A. New DataOutputStream(out.txt); B. New DataOutputStream(new File(out.txt); C. New DataOutputStream(new FileWriter(out.txt); D. New DataOutputStream(new FileOutputStream(out.txt); 27. 設(shè)在 Windows 系統(tǒng)上有文件d:temp.txt
14、 ,下述不能創(chuàng)建一個(gè)File 類(lèi)實(shí)例的語(yǔ)句是( A )。A. new File(d:temp.txt);B. new File(d:temp.txt);C. new File(d:/temp.txt);D. new File(d:/temp.txt);下面可以從一個(gè)輸入流中讀取一行內(nèi)容的方法是( B )。 A. next()B. nextLine()C. nextInt()D. nextDouble()給定下面程序段 public class Try6 implements Runnable public static void main(String args) Thread t = new
15、 Thread(this);t.start();public void run() System.out.println(test); 下面選項(xiàng)正確的是( A )。程序不能編譯通過(guò),因?yàn)殪o態(tài)方法中不能使用 this 引用程序能夠通過(guò)編譯,但是運(yùn)行的時(shí)候沒(méi)有任何輸出,因?yàn)闆](méi)有調(diào)用 run() 方法程序能夠編譯和運(yùn)行,并且在控制臺(tái)窗口顯示字符串 test上述都不對(duì))。當(dāng)你使用語(yǔ)句 Thread = new Thread(object) 創(chuàng)建線程對(duì)象時(shí), object 必須滿足的條件是( DA. object 是 Thread 類(lèi)的實(shí)例 B. object 是 JFrame 類(lèi)的實(shí)例C. objec
16、t 是 Applet 類(lèi)的實(shí)例 D. object 是 Runnable 接口的實(shí)例事件監(jiān)聽(tīng)接口中的方法的返回值是(C )。A. intB. String C. voidD. Object下面關(guān)于布局管理的敘述正確的是(D )。順序布局能夠用于放置水平大小隨容器大小變化而變化的組件網(wǎng)格布局能夠用于放置大小為常數(shù)定值的組件邊界布局能夠用于放置大小為常數(shù)定值的組件網(wǎng)格包布局能夠提供網(wǎng)格布局類(lèi)似的布局,并且允許個(gè)別的行和列具有自己特定的大小當(dāng) ActionEvent 事件發(fā)生時(shí),能夠取得事件源對(duì)象的方法是( B )。A. public Class getClass()B. public Object
17、 getSource()C. public Component getSource() D. public Component getTarget()用鼠標(biāo)單擊JFrame 窗口右上角的關(guān)閉按鈕,發(fā)生的事件是( B )。A. ItemEvent B. WindowEventC. MouseMotionEventD. ComponentEvent用來(lái)處理監(jiān)聽(tīng)器的組件是( B )。D. 代理器對(duì)象A. 事件源對(duì)象B. 監(jiān)聽(tīng)器對(duì)象C. 適配器對(duì)象下面關(guān)于 JDBC 的陳述錯(cuò)誤的是( D )。JDBC 本身是個(gè)商標(biāo)名JDBC 由一組用 Java 類(lèi)和接口組成的JDBC 可以使程序員能夠用純Java A
18、PI 來(lái)編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序JDBC驅(qū)動(dòng)程序必須由ORACLE公司開(kāi)發(fā)JDBC 接口 Statement 中定義的A. ResultSetB. int記錄數(shù)量JDBC 接口 Statement 中定義的A. ResultSet記錄數(shù)量JDBC 接口 Statement 中定義的ResultSetB. intexecute() 方法的返回類(lèi)型是( C )。C. booleanexecuteQuery () 方法的返回類(lèi)型是( A )。intC. booleanexecuteUpdate () 方法的返回類(lèi)型是( B )。boolean. 受影響的記錄數(shù)量D.D.受影響的受影響的40. 獲取 Res
19、utlSet 對(duì)象 rst 的第一行數(shù)據(jù),以下正確的是( C )。A. rst.hashNext();B. rst.next();C. rst.first();D. rst.nextRow();第一部分:多項(xiàng)選擇題題 1. 屬于 Java 運(yùn)行時(shí)環(huán)境的組成部件的是( CD ) 。A. Java 編程語(yǔ)言B. Java 類(lèi)文件C. Java APID. Java 虛擬機(jī)題2.下面哪些關(guān)鍵字能用來(lái)控制對(duì)類(lèi)成員的訪問(wèn)(AB。?A. publicB. protectedC. privateD. default題3.類(lèi)B是一個(gè)抽象類(lèi),類(lèi) C是類(lèi)B的非抽象子類(lèi),下列創(chuàng)建對(duì)象 x1的語(yǔ)句中正確的是(BC )
20、。A. B x1= new B();B. B x1= newC();C. C x1=new C();D. C x1= newB();題4.下面關(guān)于Java中異常處理try 塊的說(shuō)法正確的是(AC )。try塊后通常應(yīng)有一個(gè)catch 塊,用來(lái)處理try 塊中拋出的異常catch 塊后必須有finally 塊C.可能拋出異常的方法調(diào)用應(yīng)放在try 塊中D.對(duì)拋出的異常的處理必須放在 try 塊中題5. 關(guān)于BufferedReader 類(lèi)的readLine()方法,以下說(shuō)法正確的有( ACD )。A.方法readLine() 每次讀取一行數(shù)據(jù)B.方法readLine() 每次讀取一個(gè)字節(jié)C.該方
21、法可能拋出IOException 異常,調(diào)用該方法時(shí)通常應(yīng)將它放到try 塊中,并通過(guò)catch 塊處理異常D.如果讀到流的末尾,該方法返回的結(jié)果為null填空題.程序設(shè)計(jì)語(yǔ)言按思維模式可以分為面向過(guò)程的語(yǔ)言和面向?qū)ο蟮恼Z(yǔ)言兩類(lèi)。. Java 的三個(gè)版本是 _Java SE、 _Java EE 和 _Java ME。.完整的Java體系結(jié)構(gòu)包括四個(gè)組件,分別是_Java編程語(yǔ)言,、_Java類(lèi)文件格式_、_Java應(yīng)用程序編程接口和Java虛擬機(jī)。. Java運(yùn)行時(shí)環(huán)境是由 _Java虛擬機(jī)_和_核心類(lèi)_組合形成的。.在Java類(lèi)文件中存儲(chǔ)的二進(jìn)制代碼稱為_(kāi)字節(jié)碼它們是JVM的指令。.在主機(jī)操
22、作系統(tǒng)上由軟件實(shí)現(xiàn)的Java虛擬機(jī)實(shí)際上是用本地(如C/C+等)語(yǔ)言編寫(xiě)的程序。. Java虛擬機(jī)主要包括兩個(gè)模塊,一個(gè)是類(lèi)裝載器,另一個(gè)是執(zhí)行引擎。. JDK提供了開(kāi)發(fā)Java程序所需的各種工具(諸如 Java編譯器、Java虛擬機(jī)等程序)和資源,同時(shí)也提供了運(yùn) 行Java程序的 Java 運(yùn)行時(shí)環(huán)境。.環(huán)境變量相當(dāng)于給系統(tǒng)或用戶應(yīng)用程序設(shè)置的一些參數(shù),具體起什么作用和具體程序相關(guān)。.開(kāi)發(fā)一個(gè)完整的Java應(yīng)用程序系統(tǒng),為了便于管理,可能需要將一系列的程序文件、資源文件和其它相關(guān) 文件放到一個(gè) Java 項(xiàng)目中。. Eclipse 根據(jù)任務(wù)的不同把視圖和編輯器預(yù)先劃分為不同的類(lèi)別,預(yù)設(shè)好視圖
23、的排列方式,并把每一個(gè)類(lèi)別 稱為一個(gè)視景(或透視圖)。.為管理和使用大量的類(lèi)和接口,Java把一組類(lèi)和接口封裝在一個(gè) 包內(nèi)。.對(duì)象是程序的基本組成實(shí)體,類(lèi)是創(chuàng)建對(duì)象的模版 。. Java源程序中的類(lèi)可以分為兩種,分別是系統(tǒng)類(lèi)和用戶自己定義類(lèi)。.編譯程序的時(shí)候會(huì)自動(dòng)導(dǎo)入到程序中的系統(tǒng)包是java.lang 。.把基本數(shù)據(jù)類(lèi)型包裝成類(lèi)的好處是可以提供基本數(shù)據(jù)類(lèi)型的信息,還可以使用類(lèi)的方法對(duì)數(shù)據(jù)進(jìn)行操作。.在Java 中,int 類(lèi)型的包裝類(lèi)是 Integer , char類(lèi)型的包裝類(lèi)是 Character 。. Integer 類(lèi)的parseInt()方法的功能是把一個(gè)字符串轉(zhuǎn)換為一個(gè)整型數(shù)據(jù)。.
24、 Java把數(shù)據(jù)輸出到控制臺(tái)是使用標(biāo)準(zhǔn)輸出流或System.out 完成的。. Scanner類(lèi)是在java.util包中定義的。.創(chuàng)建一個(gè)連接到標(biāo)準(zhǔn)輸入流對(duì)象System.in 的 Scanner對(duì)象的語(yǔ)句是 Scanner myScanner = newScanner(System.in); 。.設(shè) myS是一個(gè) Scanner類(lèi)的實(shí)例,則語(yǔ) 句int x= myS.nextInt();的作用是讀取一個(gè)整數(shù),然后把這個(gè) 整數(shù)賦給變量 x。. Java提供的專門(mén)用于格式化輸出數(shù)據(jù)的方法是System.out.printf()。. Java提供的用于處理日期和時(shí)間信息的系統(tǒng)類(lèi)是java.uti
25、l.Date。.字符串常量是用雙引號(hào)括起來(lái)的字符序列。. Java用于處理處理字符串的類(lèi)有兩個(gè),分別是 String 類(lèi)和StringBufer 類(lèi)。. Java的編譯器會(huì)為每個(gè)字符串常量生成一個(gè)_String 類(lèi)的實(shí)例。的空間給這個(gè)對(duì)象。我們把創(chuàng)建好取得字符串的長(zhǎng)度的方法是調(diào)用字符串對(duì)象的length()方法。在Java中,杳當(dāng)創(chuàng)建一個(gè)對(duì)繞此 系統(tǒng)都會(huì)從E管理的內(nèi)存中分期一定二 的對(duì)象叫做對(duì)象實(shí)體,而這個(gè)對(duì)象實(shí)體的“標(biāo)識(shí)” 叫做 對(duì)象的弓用 構(gòu)造方法有兩個(gè)作用,一個(gè)作用是提供要實(shí)例化的類(lèi)的類(lèi)名,另一個(gè)作用是把新創(chuàng)建的對(duì)象初始化new關(guān)鍵字用于創(chuàng)建對(duì)象,new關(guān)鍵字被執(zhí)行之后會(huì)返回新創(chuàng)建對(duì)象的
26、引用.在聲明成員變量的時(shí)候,用關(guān)鍵字static修飾的變量是類(lèi)變量,類(lèi)變量也稱為靜態(tài)變量。.在聲明成員變量的時(shí)候,沒(méi)有被關(guān)鍵字static修飾的變量是 實(shí)例變量。.在聲明成員方法的時(shí)候,用關(guān)鍵字static修飾的方法是類(lèi)方法,類(lèi)方法也稱為靜態(tài)方法。.在聲明成員方法的時(shí)候,沒(méi)有被關(guān)鍵字static修飾的方法是 實(shí)例方法。.調(diào)用類(lèi)方法有兩種情況,一種是通過(guò) 類(lèi)名調(diào)用類(lèi)方法,另一種是通過(guò) 對(duì)象名 調(diào)用類(lèi)方法。.在面向?qū)ο蟮某绦蛑?,方法是用于定義對(duì)象的某個(gè)特定功能 的代碼段。.方法名和方法的參數(shù)類(lèi)型稱為方法的簽名 。.調(diào)用方法的語(yǔ)句格式是reference.method(arguments)。.編譯源
27、程序時(shí),編譯器會(huì)為方法添加一個(gè)隱式參數(shù),用來(lái)存儲(chǔ)運(yùn)行時(shí)刻傳來(lái)的當(dāng)前對(duì)象的引用.面向?qū)ο蠹夹g(shù)有三個(gè)基本特性,分別是 封裝、繼承 和多態(tài) 。.包含在對(duì)象屬性中的數(shù)據(jù)值的集合通常稱為對(duì)象的狀態(tài) 。.對(duì)象除了保存數(shù)據(jù)之外,還提供若干操作數(shù)據(jù)的方法,用以描述的對(duì)象的行為 。.封裝有兩方面的意思:一個(gè)方面是對(duì)象封裝了功能的內(nèi)容實(shí)現(xiàn)機(jī)制,另一個(gè)方面是對(duì)象封裝了它持有的數(shù)據(jù).在Java中,通過(guò)在類(lèi)定義里面定義屬性和 方法 ,強(qiáng)制實(shí)現(xiàn)對(duì)數(shù)據(jù)和功能的封裝。. Java程序中的所有類(lèi)都由系統(tǒng)類(lèi)Object直接繼承或間接繼承得到的。. Java中的多態(tài)是指 一個(gè)程序中同名的不同方法共存 的情況。. Java中的多態(tài)分
28、為 編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài) 兩類(lèi)。 TOC o 1-5 h z .使用接口實(shí)際上要做兩件事:第一是聲明接口(定義接口),第二是在類(lèi)中實(shí)現(xiàn)接口。.回調(diào)是一種常見(jiàn)的程序設(shè)計(jì)模式,這種模式在Java中通常是用 接口來(lái)實(shí)現(xiàn)。.所謂異常,就是 程序的運(yùn)行時(shí)錯(cuò)誤 。. “異?!碑a(chǎn)生時(shí),意味著在當(dāng)前環(huán)境下無(wú)法獲得必要的信息來(lái)解決問(wèn)題,我們所能做的就是從當(dāng)前環(huán)境中跳出,并且把問(wèn)題提交給上一級(jí)別的環(huán)境。.我們把生成異常對(duì)象并把它交給運(yùn)行時(shí)系統(tǒng)的異常處理機(jī)制的過(guò)程稱為拋出異常。.運(yùn)行時(shí)系統(tǒng)的異常處理機(jī)制在方法的調(diào)用棧中查找,從生成異常的方法開(kāi)始回溯,直到找到包含相應(yīng)異常處理不能通過(guò)編譯的方法為止,這個(gè)過(guò)程稱為捕獲
29、異常。.編譯器要求我們編寫(xiě)的程序必須對(duì)可檢測(cè)的異常進(jìn)行處理,否則.異常通常由以下兩種情況引起,一種是程序執(zhí)行了不合法的動(dòng)作,另一種是通過(guò)執(zhí)行throw語(yǔ)句由程序顯式拋出。.按照數(shù)據(jù)的傳輸方向,流可以分為 輸入流和輸出流 兩類(lèi)。.按照數(shù)據(jù)的格式,流可以分為字節(jié)流和字符流兩類(lèi)。.系統(tǒng)類(lèi)FileInputStream 和FileOutputStream 用于以字節(jié)方式處理文件的輸入和輸出,稱為文件輸入 /輸出 流。.系統(tǒng)類(lèi)FileReader 和FileWriter用于以字符方式處理文件的輸入和輸出,稱為文件讀寫(xiě)器。.系統(tǒng)類(lèi) BuferedReader 和BuferedWriter 分別稱為緩沖讀取
30、器和緩沖寫(xiě)入器。 TOC o 1-5 h z .使用緩沖流的好處是可以減少系統(tǒng)和外部設(shè)備交換數(shù)據(jù)的次數(shù)。.系統(tǒng)類(lèi)DataInputStream. 和DataOutputStream 稱為數(shù)據(jù)輸入/輸出流,它們?cè)谳斎胼敵鰯?shù)據(jù)的同時(shí)能為流市的數(shù)據(jù)進(jìn)行變換處理。一.提供操作系統(tǒng)目錄管理功能的文件類(lèi)是File 。.用于文件的隨機(jī)讀寫(xiě)操作的文件類(lèi)是RandomAccessFile _。.通俗地講,線程就是一個(gè)代碼執(zhí)行流。. Java程序是從一個(gè)眾所周知的入口點(diǎn)開(kāi)始執(zhí)行的,即是從 main()方法的第一條語(yǔ)句開(kāi)始執(zhí)行的。.當(dāng)Java程序啟動(dòng)時(shí)*系統(tǒng)就為它創(chuàng)建好一個(gè)線程,用這個(gè)線程執(zhí)行 main()方法中的
31、代碼序列。這個(gè)系統(tǒng) M建好的線程叫主線程。. JVM創(chuàng)建的線程稱為 系統(tǒng)線程,我們自己在程序中用代碼創(chuàng)建的線程稱為用戶線程 。. Java API提供創(chuàng)建線程的系統(tǒng)類(lèi)是Thread, 它的對(duì)象就是一個(gè)線程。.線程類(lèi)的獲取當(dāng)前線程對(duì)象引用的方法是currentThread(),獲取當(dāng)前線程名字的方法是 getName()。.在Java中,線程被表示為 Java.lang.Thread類(lèi)的一個(gè)實(shí)例。. 一個(gè)線程要完成一個(gè)應(yīng)用任務(wù),為了完成該應(yīng)用任務(wù)而編寫(xiě)的代碼要放到 run ()方法中。.創(chuàng)建好線程對(duì)象之后并不意味著這個(gè)線程就會(huì)被處理機(jī)(JMV)運(yùn)行,還需要調(diào)用線程對(duì)象的start() 方班啟動(dòng)線
32、屜。.我們稱實(shí)現(xiàn)了 Runnable接口的類(lèi)為線程化的類(lèi),稱實(shí)現(xiàn)了該接口的類(lèi)的實(shí)例為可運(yùn)行的對(duì)象 。.從實(shí)現(xiàn)了 Runnable接口的對(duì)象創(chuàng)建線程對(duì)象的方法是,建立一個(gè)單獨(dú)的Thread對(duì)象,并把可運(yùn)行對(duì)象傳遞給專門(mén)的 Thread類(lèi)的 構(gòu)造方法。.線程生命周期共有五個(gè)狀態(tài),分別是新建狀態(tài)、就緒狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)、死亡狀態(tài)。. Java的線程調(diào)度策略采用 搶占式調(diào)度。.使用Swing編寫(xiě)程序的圖形界面要引入兩個(gè)程序包,其中包含 Swing的基本類(lèi)的程序包是 java.swing 、 包含與處理事件相關(guān)的接口和類(lèi)的程序包是java.awt.event 。.使用布局管理器要引入java.aw
33、t 包。.事件監(jiān)聽(tīng)者必須實(shí)現(xiàn)與事件類(lèi)型相對(duì)應(yīng)的事件監(jiān)聽(tīng)接口 ,它才具有處理那類(lèi)事件的能力。. Java有三種窗口,分別是 Applet 窗口、框架窗口( JFrame)和 無(wú)邊框的窗口( JWindow)。.設(shè) mw是一個(gè) JFrame窗口,取得 mw的內(nèi)容面板的語(yǔ)句是 mw.getContentPane() 。.要獲取事件 e的命令字符串,從而知道是哪一個(gè)組件激發(fā)的事件,則應(yīng)該使用的代碼是e.getActionCommand() 。.面板有兩種,分別是普通面板(JPanel)和滾動(dòng)面(JScrollPane) 。.布局管理器是實(shí)現(xiàn)了 LayoutManager接口的類(lèi)。.小應(yīng)用程序和面板默認(rèn)
34、的布局管理器是FlowLayout 。. JWindow JFrame 和 JDialog 默認(rèn)的布局管理器是 BorderLayout 。.空布局就是把一個(gè)容器的布局管理器設(shè)置為null 布局。.當(dāng)把一個(gè)容器的布局管理器設(shè)置為null布局的時(shí)候,可以使用setBounds()方法手工設(shè)置組件本身的大小和組件在容器中的位置。.菜單分為下拉式菜單和彈出式菜單 兩種。.處理菜單項(xiàng)事件的接口是ActionListener .要實(shí)現(xiàn)的接口方法是actionPerformed().獲得事件源的方法是getSource()。.在 Swing 中,有兩個(gè)對(duì)話框類(lèi),一個(gè)是 JDialog類(lèi),它指JOption
35、Pane類(lèi),它提供構(gòu)造常見(jiàn)對(duì)話框功能。.滾動(dòng)條對(duì)彖的事件處理事件類(lèi)型是AdjustmentEvents、一 一,要實(shí)現(xiàn)的事件監(jiān)聽(tīng)接口的方法是agjUStmentValueChanaged(),注冊(cè)事件監(jiān)聽(tīng)器的方法是addAdjustmentListener() ,獲取事件源對(duì)象的方法是 getAdjustable() 一。. Java 處理鼠標(biāo)事件提供了兩個(gè)接口,分別是 MouseListener 接口 和 MouseMotionListener 接 口 。. Java技術(shù)中,應(yīng)用程序使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)。其中, JDBC API和JDBC驅(qū)動(dòng)程序協(xié)同實(shí)現(xiàn)Java程序?qū)?shù)據(jù)庫(kù)的訪問(wèn)功能。.
36、DriverManage 類(lèi)的getConnection()方法用于建立數(shù)據(jù)庫(kù)連接。. java.sql包中用于處理特定數(shù)據(jù)庫(kù)連接的類(lèi)是Connection 類(lèi) 。. java.sql包中用于在指定白連接中處理 SQL語(yǔ)句的類(lèi)是Statement類(lèi)_。. java.sql包中用于管理查詢結(jié)果集的類(lèi)是ResultSet 類(lèi)。三、判斷題.程序設(shè)計(jì)語(yǔ)言按思維模式可以分為編譯執(zhí)行語(yǔ)言和解釋執(zhí)行語(yǔ)言兩類(lèi)。()BA.正確B.錯(cuò)誤.在主機(jī)操作系統(tǒng)上由軟件實(shí)現(xiàn)的Java虛擬機(jī)實(shí)際上是用本地語(yǔ)言(如 C/C+等)編寫(xiě)的程序。()AA.正確B.錯(cuò)誤. Eclipse 聯(lián)盟是由Sun公司捐資組建的。()BA.正確B
37、.錯(cuò)誤. Eclipse 根據(jù)任務(wù)的不同把視圖和編輯器預(yù)先劃分為不同的類(lèi)別,預(yù)設(shè)好視圖的排列方式,并把每一個(gè)類(lèi)別 稱為一個(gè)視景。()AA.正確B.錯(cuò)誤 TOC o 1-5 h z .為管理和使用大量的類(lèi)和接口,Java把一組類(lèi)和接口封裝在一個(gè)包內(nèi)。()AA.正確B.錯(cuò)誤.把基本數(shù)據(jù)類(lèi)型包裝成類(lèi)的好處是可以提供基本數(shù)據(jù)類(lèi)型的信息,還可以使用類(lèi)的方法對(duì)數(shù)據(jù)進(jìn)行操作。(A )A.正確B.錯(cuò)誤.在聲明成員變量的時(shí)候,用關(guān)鍵字 class 修飾的變量是類(lèi)變量。()BA.正確B.錯(cuò)誤. new運(yùn)算符用于創(chuàng)建對(duì)象,new運(yùn)算符被執(zhí)行之后會(huì)返回新創(chuàng)建對(duì)象的內(nèi)存地址。()BA.正確B.錯(cuò)誤. Java中的多態(tài)是
38、指一個(gè)程序中同名的不同方法共存的情況。()AA.正確B.錯(cuò)誤. Java中的多態(tài)是指用一個(gè)類(lèi)可以創(chuàng)建功能不同的對(duì)象。()BA.正確B.錯(cuò)誤.使用接口實(shí)際上要做兩件事:第一是聲明接口,第二是在類(lèi)中實(shí)現(xiàn)接口。()AA.正確. Java使用接口實(shí)現(xiàn)“回調(diào)”程序設(shè)計(jì)模式。()AA.正確B.錯(cuò)誤. Java程序運(yùn)行時(shí)出現(xiàn)的異常通常是由計(jì)算機(jī)硬件錯(cuò)誤引起的。()BA.正確B.錯(cuò)誤.我們把生成異常對(duì)象并把它交給運(yùn)行時(shí)系統(tǒng)的異常處理機(jī)制的過(guò)程稱為捕獲異常。()BA.正確B.錯(cuò)誤.按照數(shù)據(jù)的傳輸方向,流可以分為字節(jié)流和字符流兩類(lèi)。()BA.正確B.錯(cuò)誤.用于文件的隨機(jī)讀寫(xiě)操作的文件類(lèi)是 File。()BA.正確
39、B.錯(cuò)誤.當(dāng)Java程序啟動(dòng)時(shí),系統(tǒng)就為它創(chuàng)建好一個(gè)線程,用這個(gè)線程執(zhí)行main()方法中的代碼序列。這個(gè)系統(tǒng)創(chuàng)建好的線程叫主線程。 ( ) AA. 正確B. 錯(cuò) 誤線程要完成一個(gè)應(yīng)用任務(wù),為了完成該應(yīng)用任務(wù)而編寫(xiě)的代碼要放到 start() 方法中。 ( ) B TOC o 1-5 h z A. 正確B. 錯(cuò)誤小應(yīng)用程序和面板默認(rèn)的布局管理器都是FlowLayout 。 ( ) AA. 正確B. 錯(cuò)誤要獲A. 正確取B. 錯(cuò) 誤事件第二部分:簡(jiǎn)答題題1e. 什么是包?它的主要作用是什么?答案:包是Java 提供的一種組織類(lèi)的機(jī)制,有時(shí)也稱為類(lèi)庫(kù)。這種機(jī)制功能相似或相關(guān)的類(lèi)或接口組織在同的一個(gè)
40、包中, 命 方便類(lèi)的查找和使用。 Java 使用包(package )這種機(jī)制是為了防止命名沖突,訪問(wèn)控制,提供搜索和定位類(lèi)( 令 class )、接口、枚舉 ( enumerations )和注釋( annotation )等題2字.類(lèi)方法和實(shí)例方法有哪些不同?符 答: 答: 在聲明成員方法的時(shí)候,用關(guān)鍵字static 修飾的方法就是類(lèi)方法,沒(méi)有被關(guān)鍵字 static 修飾的方法就是實(shí)例方法。類(lèi)方法也稱為靜態(tài)方法。類(lèi)方法和實(shí)例方法的區(qū)別在于類(lèi)方法不針對(duì)特定的對(duì)象,所以在沒(méi)有創(chuàng)建對(duì)象之前可以執(zhí)行,而且在類(lèi)方法中只能訪問(wèn)串類(lèi)變量和類(lèi)方法,而不能訪問(wèn)實(shí)例變量和實(shí)例方法。實(shí)例方法則只能針對(duì)特定的對(duì)象
41、執(zhí)行,從因此,如果任何對(duì)象都不存在,則也就沒(méi)有可以執(zhí)行的實(shí)例方法。題3而.什么是接口?它的作用是什么?知 答案:在 Java 中,接口不是類(lèi),而是一組抽象方法和常量的集合,用來(lái)描述類(lèi)應(yīng)該提供什么樣的功能。在接口中定 義的方法僅僅給出方法名稱、參數(shù)列表、返回值類(lèi)型等信息的說(shuō)明,并不給出方法體的具體代碼,即沒(méi)有給出方法 道 功能的具體實(shí)現(xiàn)。在程序中定義了一個(gè)接口以后,就可以聲明某些類(lèi)實(shí)現(xiàn)了這個(gè)接口,在實(shí)現(xiàn)了該接口的類(lèi)中再給 是 出接口的方法的功能代碼。這相當(dāng)于用接口規(guī)范了實(shí)現(xiàn)接口的那些類(lèi)都必須以特定的形式提供一組特定的功能。反過(guò)來(lái),實(shí)現(xiàn)某個(gè)接口的類(lèi)必須提供該接口規(guī)定的功能,并且要遵從接口中定義的方
42、法的格式約定。 哪題 4. 什么是線程?使用多線程有哪些好處?又會(huì)帶來(lái)哪些問(wèn)題?個(gè) 答案:通俗地講,線程是一個(gè)代碼執(zhí)行流。 使用多線程的好處是:( 1)多線程為多個(gè)代碼執(zhí)行流并發(fā)執(zhí)行提供了可能。 ( 2)多線程程序比多進(jìn)程程序降低了資源占用要求。 組使用多線程也會(huì)對(duì)系統(tǒng)產(chǎn)生一些不利影響: ( 1 )線程需要占用內(nèi)存,線程越多,內(nèi)存占用越多。( 件2)線程過(guò)多,會(huì)消耗大量CPU 時(shí)間來(lái)跟蹤線程。( 3)必須考慮多線程同時(shí)訪問(wèn)共享資源的問(wèn)題,如果沒(méi)有協(xié)調(diào)好,就會(huì)產(chǎn)生令人意想不到的問(wèn)題,例如死鎖和資源競(jìng)爭(zhēng)等。( 激4)因?yàn)橥粋€(gè)任務(wù)的所有線程都共享相同的地址空間,并共享任務(wù)的 發(fā)全局變量,所以程序也
43、必須考慮多線程同時(shí)訪問(wèn)的全局變量問(wèn)題的事編譯型語(yǔ)言和解釋型語(yǔ)言有什么不同?Java 程序執(zhí)行前需要用編譯器編譯,但為什么卻說(shuō) Java 是解釋型答案:編譯型語(yǔ)言在程序執(zhí)行之前,有一個(gè)單獨(dú)的編譯過(guò)程,將程序翻譯成機(jī)器語(yǔ)言,以后執(zhí)行這個(gè)程序的時(shí)候就不用再進(jìn)行翻譯了。解釋型語(yǔ)言是在運(yùn)行的時(shí)候?qū)⒊绦蚍g成機(jī)器語(yǔ)言,所以運(yùn)行速度相對(duì)于編譯型語(yǔ)言要慢??贗 又。C/C+則前也有一個(gè)編譯過(guò)程,但是并不是將程序編譯成機(jī)器語(yǔ)言,而是將它編譯成字節(jié)碼(可以理解為一個(gè)中間語(yǔ)言)。在運(yùn)行的時(shí)候,由應(yīng)件,而 Java 、等都是編譯型語(yǔ)言,而 Java、C#?都是解釋型語(yǔ)言。雖然.;并不是將程序編譯成機(jī)器語(yǔ)言,而是將它編
44、譯成字節(jié)碼(可以理解為一個(gè)中間語(yǔ)JVM將字節(jié)碼再翻譯成機(jī)器語(yǔ)言。C/C+編譯和鏈接后,可形成獨(dú)立的可執(zhí)行文它必須由專用的解釋器換成本地機(jī)器代碼后才能執(zhí)行。此外,像JavaScript 、 VBScript 、 PHP、 PERL 等腳本語(yǔ)言一般也都由相應(yīng)的腳本引擎來(lái)解釋執(zhí)使行Java 程序在運(yùn)行之般也都由相應(yīng)的腳本弓擎來(lái)解釋執(zhí)什么是 Java 虛擬機(jī)?它的主要功能是什么?答:JVM 是在一臺(tái)計(jì)算機(jī)上由軟件模擬,也可用硬件實(shí)現(xiàn)的假想的計(jì)算機(jī),它定義了指令集(相當(dāng)于中央處理器CPU) 、寄存器、類(lèi)文件結(jié)構(gòu)棧、垃圾收集堆、內(nèi)存區(qū)域等。JVM 是執(zhí)行 Java 程序的引擎。 Java 程序編譯后得到的
45、二進(jìn)制形式的字節(jié)碼實(shí)際上就是JVM 指令。什么是包?它的主要作用是什么?答:包是 Java 提供的一種組織類(lèi)的機(jī)制,有時(shí)也稱為類(lèi)庫(kù)。這種機(jī)制功能相似或相關(guān)的類(lèi)或接口組織在同一個(gè)包 中, 方便類(lèi)的查找和使用。Java 使用包( package )這種機(jī)制是為了防止命名沖突,訪問(wèn)控制,提供搜索和定位類(lèi)( cl ass) 、接口、枚舉 ( enumerations )和注釋( annotation )等。類(lèi)變量和實(shí)例變量有哪些不同?答: 在定義成員變量時(shí),如果用 static 修飾符修飾,則該變量是類(lèi)變量(也稱“靜態(tài)變量”),否則是實(shí)例變量。 類(lèi)變量不屬于類(lèi)的任何一個(gè)具體對(duì)象。它保存在類(lèi)的內(nèi)存區(qū)域的
46、公共存儲(chǔ)單元。類(lèi)的任何一個(gè)對(duì)象對(duì)類(lèi)變量的 存取都是對(duì)同一個(gè)內(nèi)存單元進(jìn)行操作。 與類(lèi)變量相對(duì),實(shí)例變量屬于類(lèi)的某個(gè)具體的對(duì)象。它在類(lèi)的每個(gè)對(duì)象的內(nèi)存區(qū)域中都保存一份。類(lèi)的任何一個(gè)對(duì)象對(duì)實(shí)例變量的存取都是對(duì)自己內(nèi)存區(qū)域內(nèi)保存的實(shí)例變量的副本進(jìn)行操作。5什么是內(nèi)部類(lèi)?使用內(nèi)部類(lèi)有什么好處?答: Java 允許將一個(gè)類(lèi)的定義放在另一個(gè)類(lèi)的內(nèi)部。定義在另一個(gè)類(lèi)內(nèi)部的類(lèi)就是內(nèi)部類(lèi)。但內(nèi)部類(lèi)是一種編譯器 現(xiàn)象,與虛擬機(jī)無(wú)關(guān)。當(dāng)使用內(nèi)部類(lèi)時(shí),編譯器會(huì)從外部類(lèi)中把內(nèi)嵌的類(lèi)分離出來(lái)并調(diào)整編譯結(jié)果。內(nèi)部類(lèi)允許我們把一些邏輯相關(guān)的類(lèi)組織在一起,并控制在內(nèi)部的類(lèi)的訪問(wèn)特性。內(nèi)部類(lèi)的對(duì)象持有一個(gè)隱式引用,它引用了實(shí)例化該
47、內(nèi)部對(duì)象的外圍類(lèi)對(duì)象。通過(guò)這個(gè)引用,可以訪問(wèn)外圍類(lèi)對(duì)象的全部狀態(tài)。什么是多態(tài)?Java的編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài)有什么區(qū)別?答: Java 中的多態(tài)就是指一個(gè)程序中同名的不同方法共存的情況。分為編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài)兩類(lèi)。 方法重載可以實(shí)現(xiàn)Java的編譯時(shí)多態(tài)。它是在相同類(lèi)內(nèi),定義名稱相同,但參數(shù)個(gè)數(shù)或參數(shù)類(lèi)型不同的方法。編譯器會(huì)根據(jù)實(shí)參的個(gè)數(shù)和類(lèi)型,確定調(diào)用哪個(gè)方法。所謂編譯時(shí)多態(tài),是指程序會(huì)根據(jù)參數(shù)的不同來(lái)調(diào)用相應(yīng)的 方法。具體調(diào)用哪個(gè)被重載的方法,是由編譯器在編譯階段決定的。所以編譯時(shí)多態(tài)也叫做靜態(tài)多態(tài)性。方法覆蓋可以實(shí)現(xiàn)Java 的運(yùn)行時(shí)多態(tài)。它是在子類(lèi)當(dāng)中,定義名稱、參數(shù)個(gè)數(shù)與類(lèi)型均與
48、父類(lèi)相同的方法,用 以改寫(xiě)父類(lèi)方法的功能。運(yùn)行時(shí)多態(tài)是一種在運(yùn)行時(shí),而不是在編譯時(shí)調(diào)用覆蓋方法的一種機(jī)制。對(duì)于覆蓋的方法, Java 運(yùn)行時(shí)系統(tǒng)根據(jù)調(diào)用該方法的實(shí)例的類(lèi)型,來(lái)決定選擇哪個(gè)方法調(diào)用。什么是接口?它的作用是什么?答:在 Java 中,接口不是類(lèi),而是一組抽象方法和常量的集合,用來(lái)描述類(lèi)應(yīng)該提供什么樣的功能。在接口中定義的方法僅僅給出方法名稱、參數(shù)列表、返回值類(lèi)型等信息的說(shuō)明,并不給出方法體的具體代碼,即沒(méi)有給出方法 功能的具體實(shí)現(xiàn)。在程序中定義了一個(gè)接口以后,就可以聲明某些類(lèi)實(shí)現(xiàn)了這個(gè)接口,在實(shí)現(xiàn)了該接口的類(lèi)中再給 出接口的方法的功能代碼。這相當(dāng)于用接口規(guī)范了實(shí)現(xiàn)接口的那些類(lèi)都必須
49、以特定的形式提供一組特定的功能。反過(guò)來(lái),實(shí)現(xiàn)某個(gè)接口的類(lèi)必須提供該接口規(guī)定的功能,并且要遵從接口中定義的方法的格式約定。什么是異常? Java 處理異常的方法是什么?答:所謂異常,就是程序的運(yùn)行時(shí)錯(cuò)誤。 Java 通過(guò)面向?qū)ο蟮姆椒▉?lái)處理異常。在一個(gè)方法的運(yùn)行過(guò)程中,如果發(fā)生了一個(gè)異常,則 Java 虛擬機(jī)會(huì)如 同創(chuàng)建其它對(duì)象一樣,使用 new 在堆上創(chuàng)建異常對(duì)象。然后,當(dāng)前的執(zhí)行流程被終止,并且從當(dāng)前環(huán)境中彈出異常對(duì)象的引用。此時(shí), Java 的異常處理機(jī)制接管程序,并開(kāi)始尋找一個(gè)恰當(dāng)?shù)牡牡胤絹?lái)繼續(xù)執(zhí)行程序。這個(gè)恰當(dāng) 的地方就是“異常處理程序”,它的任務(wù)是將程序從錯(cuò)誤狀態(tài)中恢復(fù)或者做一些簡(jiǎn)單
50、地處理后結(jié)束程序。簡(jiǎn)述異常的傳播途徑。答:在trycatchfinally”結(jié)構(gòu)中,如果沒(méi)有一個(gè)catch 子句能夠匹配已經(jīng)產(chǎn)生的異常,則執(zhí)行finally 子 句(如果存在)。此時(shí),如果仍然沒(méi)有程序能夠處理這個(gè)異常,好像發(fā)出異常的語(yǔ)句根本沒(méi)有嵌套在 try 語(yǔ)句中, 控制流程將會(huì)立即離開(kāi)當(dāng)前方法,過(guò)早地返回調(diào)用當(dāng)前方法的方法中。如果這個(gè)調(diào)用語(yǔ)句處于某一個(gè) try 語(yǔ)句范圍 之內(nèi),則將開(kāi)始執(zhí)行新一輪的異常匹配操作。節(jié)點(diǎn)流和處理流有什么差別?答: 節(jié)點(diǎn)流從一個(gè)特定的數(shù)據(jù)源讀寫(xiě)數(shù)據(jù)。即節(jié)點(diǎn)流是直接操作文件,網(wǎng)絡(luò)等的流。處理流是“連接”在已存在的 流(節(jié)點(diǎn)流或處理流)之上通過(guò)對(duì)數(shù)據(jù)的處理為程序提供更
51、為強(qiáng)大的讀寫(xiě)功能。 FileInputStream 、FileOutputStream 、 FileReader 、 FileWriter 都是節(jié)點(diǎn)流。緩沖流、轉(zhuǎn)換流、數(shù)據(jù)流和對(duì)象流都是處理流什么是線程?使用多線程有哪些好處?又會(huì)帶來(lái)哪些問(wèn)題?答: 通俗地講,線程是一個(gè)代碼執(zhí)行流。 使用多線程的好處是:( 1 )多線程為多個(gè)代碼執(zhí)行流并發(fā)執(zhí)行提供了可能。 ( 2 )多線程程序比多進(jìn)程程序降低 了資源占用要求。 使用多線程也會(huì)對(duì)系統(tǒng)產(chǎn)生一些不利影響:( 1)線程需要占用內(nèi)存,線程越多,內(nèi)存占用越多。(2)線程過(guò)多, 會(huì)消耗大量CPU 時(shí)間來(lái)跟蹤線程。( 3)必須考慮多線程同時(shí)訪問(wèn)共享資源的問(wèn)題,
52、如果沒(méi)有協(xié)調(diào)好,就會(huì)產(chǎn)生令人意想不到的問(wèn)題,例如死鎖和資源競(jìng)爭(zhēng)等。(4)因?yàn)橥粋€(gè)任務(wù)的所有線程都共享相同的地址空間,并共享任務(wù)的全局變量,所以程序也必須考慮多線程同時(shí)訪問(wèn)的全局變量問(wèn)題試比較 Runnable 接口中定義的 run() 方法與 Application 程序入口 main() 方法有哪些相近之處?在 Runnable 接口中定義的惟一的方法是run() ,在線程執(zhí)行時(shí)調(diào)用。線程退出 run() 之后,就已經(jīng)死亡,無(wú)法重新啟動(dòng)或復(fù)用。不管是正常退出還是由于未捕獲異常退出,情況都是如此。在效果上,線程的 run() 方法與 Java 應(yīng)用程序的 main() 方法作用相同:就是代碼
53、的初始入口點(diǎn)。在應(yīng)用程序中, mian() 控制程序的主流程,在線程中, run() 控制線程任務(wù)的處理流程。 從本質(zhì)上來(lái)說(shuō),對(duì)于一個(gè)新創(chuàng)建的線程, run() 方法可以被看成是main() 方法:如同程序是從main() 方法開(kāi) 始運(yùn)行一樣,新線程就是從其run() 方法開(kāi)始運(yùn)行過(guò)命令行來(lái)設(shè)定的),而新創(chuàng)建的線程是用靜態(tài)實(shí)例變量或者程序員設(shè)計(jì)的其他的。但是 main() 方法從 argv 來(lái)獲取它的參數(shù)( argv 一般是通編程的方式從原始線程獲取它的參數(shù)的。因此,我們可以通過(guò)構(gòu)造方法、技術(shù)來(lái)獲得這些參數(shù)如何用分層次的方法看待組件和容器之間的關(guān)系?容器和組件通常是具有一定的包含關(guān)系的??梢园凑者@樣的觀點(diǎn)分層次: 頂層容器(不會(huì)包含在其它任何容器中的容器),例如 JFrame 、 JApplet 、 JDialog 、 JWindow 等; 中間容器,例如 JPanel 、JScrollPane 、 JSplitPane 、 JToolBar 等; 基本控件,例如 JButton 、 JComboBox 、 JList 、 JMenu 、JTextField 等; 可編輯的組件,例如 JColorChooser 、 JFileC
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 細(xì)胞呼吸課件教學(xué)課件
- 三年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)匯編及答案集錦
- 老年活動(dòng)項(xiàng)目標(biāo)前協(xié)議書(shū)(2篇)
- 南京航空航天大學(xué)《電磁場(chǎng)的數(shù)值方法》2022-2023學(xué)年期末試卷
- 南京工業(yè)大學(xué)浦江學(xué)院《線性代數(shù)(理工)》2021-2022學(xué)年第一學(xué)期期末試卷
- 分式方程說(shuō)課稿
- 蹲踞式起跑說(shuō)課稿
- angengingong說(shuō)課稿部編版
- 南京工業(yè)大學(xué)浦江學(xué)院《計(jì)算機(jī)網(wǎng)絡(luò)》2023-2024學(xué)年期末試卷
- 黑板字課件教學(xué)課件
- JJG 165-2024鐘罩式氣體流量標(biāo)準(zhǔn)裝置檢定規(guī)程
- 江西省萍鄉(xiāng)市2024-2025學(xué)年高二上學(xué)期期中考試地理試題
- 新版加油站安全操作規(guī)程
- 2023年貴州黔東南州州直機(jī)關(guān)遴選公務(wù)員考試真題
- 貨物質(zhì)量保證措施方案
- 黑龍江省龍東地區(qū)2024-2025學(xué)年高二上學(xué)期階段測(cè)試(二)(期中) 英語(yǔ) 含答案
- 4S店展廳改造裝修合同
- 3-4單元測(cè)試-2024-2025學(xué)年統(tǒng)編版語(yǔ)文六年級(jí)上冊(cè)
- 北師版數(shù)學(xué)八年級(jí)上冊(cè) 5.8三元一次方程組課件
- 2024混合動(dòng)力汽車(chē)賽道專題報(bào)告-2024-10-市場(chǎng)解讀
- 企業(yè)單位消防安全規(guī)范化管理指導(dǎo)手冊(cè)
評(píng)論
0/150
提交評(píng)論