(完整word版)北郵《Java技術(shù)》期末復(fù)習(xí)題(含答案)
《(完整word版)北郵《Java技術(shù)》期末復(fù)習(xí)題(含答案)》由會(huì)員分享,可在線閱讀,更多相關(guān)《(完整word版)北郵《Java技術(shù)》期末復(fù)習(xí)題(含答案)(26頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、vvJava 技術(shù) 綜合練習(xí)題填空題1.Java 不僅僅是一種編程環(huán)境,它實(shí)際上是一個(gè)完整的計(jì)算平臺(tái),包括完整的程序開(kāi)發(fā)環(huán)境和運(yùn)行_境。2.完整的 Java 體系結(jié)構(gòu)包括四個(gè)組件,分別是 Java 編程語(yǔ)言、Java 類文件格式、Java 應(yīng)用程序編程接 口禾口 Java 虛擬機(jī)。3.Java 運(yùn)行時(shí)環(huán)境是由 Java 虛擬機(jī)和核心類組合形 成的。4.在 Java 類文件中存儲(chǔ)的二進(jìn)制代碼稱為字節(jié)碼,它們是 JVM 的指令。5.當(dāng) Java 虛擬機(jī)是在主機(jī)操作系統(tǒng)上由軟件實(shí)現(xiàn)時(shí), 它實(shí)際上是用本地(如 C/C+等)語(yǔ)言編寫的程序。6.Java 虛擬機(jī)主要包括兩個(gè)模塊,一個(gè)是類裝載器,另一個(gè)是執(zhí)
2、行引擎。7.在面向?qū)ο笙到y(tǒng)中,對(duì)象是程序的基本組成實(shí)體。8.對(duì)象是程序的基本組成實(shí)體,類是創(chuàng)建對(duì)象的模 _ 板。9.Java 源程序中的類可以分為兩種,分別是系統(tǒng)類和用戶自己定義類。10.編譯程序的時(shí)候會(huì)自動(dòng)導(dǎo)入到程序中的系統(tǒng)包是 java.lang。11.把基本數(shù)據(jù)類型包裝成類包裝成類的好處是可以 提供基本數(shù)據(jù)類型的信息,還可以使用類的方法對(duì)數(shù)據(jù)進(jìn)行操作。12.在 Java 中,int 類型的包裝類是 Integer, char 類型 的包裝類是Character。13.Integer 類的 parseInt()方法的功能是把一個(gè)字符 串轉(zhuǎn)換為一個(gè)整型數(shù)據(jù)。14.Java 把數(shù)據(jù)輸出到控制臺(tái)
3、是使用System.out 完成的。15.Scanner 類是在 java.util 包中定義的。16.創(chuàng)建一個(gè)連接到標(biāo)準(zhǔn)輸入流對(duì)象System.in 的Scanner 對(duì)象的語(yǔ)句是 Scanner mySca nner = new Sea nner(System.i n):。17.設(shè) myS 是一個(gè) Scanner 類的實(shí)例,則語(yǔ)句“int x = myS. next In t();的作用是讀取一個(gè)整數(shù),然后把這個(gè)整數(shù)賦給變量 x。18.Java 提供的專門用于格式化輸出數(shù)據(jù)的方法是System out printf()。19.Java 提供的用于處理日期和時(shí)間信息的系統(tǒng)類是 java.ut
4、il.Date。20.字符串常量是用雙引號(hào)括起來(lái)的字 21.Java 用于處理處理字符串的類有兩個(gè),分別是String 類和 StringBufer 類。22.Java 的編譯器會(huì)為每個(gè)字符串常量生成一個(gè)String類的實(shí)例。23.取得字符串的長(zhǎng)度的方法是調(diào)用字符串對(duì)象的len gth()方法。24.設(shè)有如下類定義1.class Pers on 2.private Stri ng name:3.Perso n(Stri ng n) a)n ame = n:4.5.ii. 則創(chuàng)建一個(gè) Person 類對(duì)象的語(yǔ)句是 Person p =new Person(Apple):。25.在 Java 中,
5、每當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),系統(tǒng)都會(huì)從它管理的內(nèi)存中分配一定的空間給這個(gè)對(duì)象。我們把創(chuàng) 建好的對(duì)象叫做對(duì)象實(shí)體,而這個(gè)對(duì)象實(shí)體的“標(biāo)識(shí)”叫做對(duì)象的引用。26.構(gòu)造方法有兩個(gè)作用,一個(gè)作用是提供要實(shí)例化的 類的類名,另一個(gè)作用是把新創(chuàng)建的對(duì)象初始化。27.new 運(yùn)算符用于創(chuàng)建對(duì)象,new 運(yùn)算符被執(zhí)行之后 會(huì)返回新創(chuàng)建對(duì)象的引用。28.在聲明成員變量的時(shí)候,用關(guān)鍵字static 修飾的變量是類變量,類變量也稱為靜態(tài)變量。29.在聲明成員變量的時(shí)候,沒(méi)有被關(guān)鍵字static 修飾的變量是實(shí)例變量。30.在聲明成員方法的時(shí)候,用關(guān)鍵字static 修飾的方法是類方法,類方法也稱為靜態(tài)方法。31.在聲明成員
6、方法的時(shí)候,沒(méi)有被關(guān)鍵字static 修飾的方法是實(shí)例方法。32.調(diào)用類方法有兩種情況,一種是通過(guò)類名調(diào)用類方 法,另一種是通過(guò)對(duì)象名調(diào)用類方法。33.在面向?qū)ο蟮某绦蛑?,方法是用于定義對(duì)象的某個(gè) 特定功能的代碼段。34.方法名和方法的參數(shù)類型稱為方法的簽名_35.調(diào)用方法的語(yǔ)句格式是refere nce.method(argume nts)。36.編譯源程序時(shí),編譯器會(huì)為方法添加一個(gè)隱式參 數(shù),用來(lái)存儲(chǔ)運(yùn)行時(shí)刻傳來(lái)的當(dāng)前對(duì)象的引用。37.面向?qū)ο蠹夹g(shù)有三個(gè)基本特性,分別是封裝、繼承 禾口多態(tài)。38.包含在對(duì)象屬性中的數(shù)據(jù)值的集合通常稱為對(duì)象的狀態(tài)。39.對(duì)象除了保存數(shù)據(jù)之外,還提供若干操作數(shù)
7、據(jù)的方 法,用以描述的對(duì)象的行為。40.在 Java 中,對(duì)象的本體是用對(duì)象的引用表示的。41.封裝有兩方面的意思:一個(gè)方面是對(duì)象封裝了功能 的內(nèi)部實(shí)現(xiàn)機(jī)制,另一個(gè)方面是對(duì)象封裝了它持_的數(shù)據(jù)。42.在 Java 中,通過(guò)在類定義里面定義屬性和方法,強(qiáng)制實(shí)現(xiàn)對(duì)數(shù)據(jù)和功能的封裝。43.Java 程序中的所有類都由系統(tǒng)類Object 直接繼承或間接繼承得到的。44.Java 中的多態(tài)是指一個(gè)程序中同名的不同方法共存 的情況。45.Java 中的多態(tài)為編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài)兩類。46.對(duì)象的類型轉(zhuǎn)換分為 upcasting 和 casting 兩種。47.所謂包就是 Java 語(yǔ)言提供的一種區(qū)別類名
8、空間的 機(jī)制,是一組相關(guān)的類和接口的集合。48.Java 中聲明包的關(guān)鍵字是 package,弓 I 用包中類或 接口的關(guān)鍵字是import。49.Java 中,打包就是將應(yīng)用程序所包含的類文件和其 它資源文件放到一個(gè)歸檔文件當(dāng)中。50.JDK 提供的打包工具是 jaro51.使用接口實(shí)際上要做兩件事:第一是聲明接口(定 義接口),第二是在類中實(shí)現(xiàn)接口。52.回調(diào)是一種常見(jiàn)的程序設(shè)計(jì)模式,這種程序設(shè)計(jì)模 式在 Java 中通常是用接口來(lái)實(shí)現(xiàn)。53.所謂異常,就是程序的運(yùn)行時(shí)錯(cuò)誤。54.異?!碑a(chǎn)生時(shí),意味著在當(dāng)前環(huán)境下無(wú)法獲得必 要的信息來(lái)解決問(wèn)題,我們所能做的就是從當(dāng)前環(huán) 境中跳出,并且把問(wèn)題
9、提交給上一級(jí)別的環(huán)境。55.我們把生成異常對(duì)象并把它交給運(yùn)行時(shí)系統(tǒng)的異 常處理機(jī)制的過(guò)程稱為拋出異常。56.運(yùn)行時(shí)系統(tǒng)的異常處理機(jī)制在方法的調(diào)用棧中查 找,從生成異常的方法開(kāi)始回溯,直到找到包含相 應(yīng)異常處理的方法為止,這個(gè)過(guò)程稱為捕獲異常。57.編譯器要求我們編寫的程序必須對(duì)可檢測(cè)的異常 進(jìn)行處理,否則不能通過(guò)編譯。58.異常通常由以下兩種情況引起,一種是程序執(zhí)行了不合法的動(dòng)作,另一種是通過(guò)執(zhí)行throw 語(yǔ)句由程序顯式拋出。59.按照數(shù)據(jù)的傳輸方向,流可以分為輸入流和輸出流 兩類。60.按照數(shù)據(jù)的格式,流可以分為字節(jié)流和字符流兩 類。61.系統(tǒng)類 FilelnputStream 和 Fil
10、eOutputStream 用于以字節(jié)方式處理文件的輸入和輸出,稱為文件輸入/輸出流。62.系統(tǒng)類 FileReader 和 FileW/riter 用于以字符方式處 理文件的輸入和輸出,稱為文件讀寫器。63.系統(tǒng)類 BuferedReader 禾口 BuferedWriter 分另 U 稱為 緩沖讀取器和緩沖寫入器。64.使用緩沖流的好處是可_換數(shù)據(jù)的次數(shù)。65.系統(tǒng)類 DatalnputStream 禾口 DataOutputStream 稱為數(shù) 據(jù)輸入/輸出流,它們?cè)谳斎胼敵鰯?shù)據(jù)的同時(shí)能對(duì)流 中的數(shù)據(jù)進(jìn)行變換處理。66.提供操作系統(tǒng)目錄管理功能的文件類是Fjje。67.用于文件的隨機(jī)讀寫
11、操作的文件類是Ran domAccessFile。68.C 語(yǔ)言程序員提供創(chuàng)建線程的機(jī)制是使用操作系 統(tǒng)提供的庫(kù)。69.通俗地講,線程就是一個(gè)代碼執(zhí)行流。70.Java 程序是從一個(gè)眾所周知的入口點(diǎn)開(kāi)始執(zhí)行的, 即是從 main()方法的第一條語(yǔ)句開(kāi)始執(zhí)行的。71.當(dāng) Java 程序啟動(dòng)時(shí),系統(tǒng)就為它創(chuàng)建好一個(gè)線程,用這個(gè)線程執(zhí)行 main ()方法中的代碼序列。這個(gè) 系統(tǒng)創(chuàng)建好的線程叫主線程。72.JVM 創(chuàng)建的線程稱為系統(tǒng)線程,我們自己在程序 中用代碼創(chuàng)建的線程稱為用戶線程。73.Java API 提供創(chuàng)建線程的系統(tǒng)類是Thread,它的對(duì)象就是一個(gè)線程。74.線程類的獲取當(dāng)前線程對(duì)象引用
12、的方法是currentThread(),獲取當(dāng)前線程名字的方法是 getName()。75.在 Java 中,線程被表示為 Java.lang.Thread 類的一 個(gè)實(shí)例。76.一個(gè)線程要完成一個(gè)應(yīng)用任務(wù),為了完成該應(yīng)用任務(wù)而編寫的代碼要放到run()方法中。77.創(chuàng)建好線程對(duì)象之后并不意味著這個(gè)線程就會(huì)被處理機(jī)(JMV)運(yùn)行,還需要調(diào)用線程對(duì)象的start()方法啟動(dòng)線程。78.我們稱實(shí)現(xiàn)了 Runnable 接口的類為線程化的類,稱 實(shí)現(xiàn)了該接口的類的實(shí)例為可運(yùn)行的對(duì)象。79.從實(shí)現(xiàn)了 Runnable 接口的對(duì)象創(chuàng)建線程對(duì)象的方法是,建立一個(gè)單獨(dú)的 Thread 對(duì)象,并把可運(yùn)行 對(duì)象
13、傳遞給專門的Thread 類的構(gòu)造方法。80.線程生命周期共有五個(gè)狀態(tài),分別是新建狀態(tài)、就 緒狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)和死亡狀態(tài)。81.Java 的線程調(diào)度策略采用搶占式調(diào)度。82.使用 Swing 編寫程序的圖形界面要引入兩個(gè)程序包,其中包含 Swing的基本類的程序包是java.swing,包含與處理事件相關(guān)的接口和類的程序 包是java.awt.event。83.使用布局管理器要引入 java awt 包。84.事件監(jiān)聽(tīng)者必須實(shí)現(xiàn)與事件類型相對(duì)應(yīng)的事件_聽(tīng)接口才具有處理那類事件的能力。85.Java 有三種窗口,分別是 Applet 窗口、框架窗口(JFrame) 和無(wú)邊框的窗 口( J
14、Window )。86.設(shè) mw 是一個(gè) JFrame 窗口,取得 mw 的內(nèi)容面 板的語(yǔ)句是mw.getContentPane()。87.要獲取事件 e 的命令字符串,從而知道是哪一個(gè) 組件激發(fā)的事件,則應(yīng)該使用的代碼是e.getActionCommand()。88.面板有兩種,分別是普通面板JPanel 和滾動(dòng)面板JScrollPa ne。89.布局管理器是實(shí)現(xiàn)了LayoutManager 接口的類。90.小應(yīng)用程序和面板默認(rèn)的布局管理器是FlowLayout。91.JWindow、JFrame 和 JDialog默認(rèn)的布局管理器是 BorderLayout。92.空布局就是把一個(gè)容器的布
15、局管理器設(shè)置為null 布局。93.當(dāng)把一個(gè)容器的布局管理器設(shè)置為null 布局的時(shí)候, 可以使用 setBounds()方法手工設(shè)置組件本身的 大小和組件在容器中的位置。94.菜單分為下拉式菜單和彈出式菜單兩種。95.處理菜單項(xiàng)事件的接口是ActionListener,要實(shí)現(xiàn)的接口方法是 actionPeformed(),獲得事件源的方法 是 getSource()。96.在 Swing 中,有兩個(gè)對(duì)話框類,一個(gè)是 JDialog 類, 它提供構(gòu)造并管理通用對(duì)話框功能;另一個(gè)是 JOptionPane 類,它提供構(gòu)造常見(jiàn)對(duì)話框功能。97.滾動(dòng)條對(duì)象的事件處理事件類型是AdjustmentEv
16、ents,要實(shí)現(xiàn)的事件監(jiān)聽(tīng)接口的方法是 adjustmentValueCha naged(),注冊(cè)事件監(jiān)聽(tīng)器的方法 是addAdjustmentListener(),獲取事件源對(duì)象的方法 是 getAdjustable()。98.Java 處理鼠標(biāo)事件提供了兩個(gè)接口,分別是MouseListener 接口禾口 MouseMotionListener 接口。99.Java 程序連接數(shù)據(jù)庫(kù)的方法有兩種:一種是使用JDBC - ODBC 橋連接器與數(shù)據(jù)庫(kù)連接,另一種 是使用 JDBC 驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)連接。100. Java 提供數(shù)據(jù)庫(kù)編程的 API 包是 java.sql。101. DriverM
17、anage 類的 getConnection()方法用于建立 數(shù)據(jù)庫(kù)連接。102. java.sql 包中用于處理特定數(shù)據(jù)庫(kù)連接的類是Connection 類。103. java.sql 包中用于在指定的連接中處理SQL 語(yǔ)句的類是 Statement 類。104. java.sql 包中用于管理查詢結(jié)果集的類是ResultSet類。105. Statement 類的用于執(zhí)行 SQL 語(yǔ)句的方法是 executeUpdate()。單項(xiàng)選擇題1.Java 程序的最基本的組成元素是(C)o(C)對(duì)象2.下列哪種類成員修飾符修飾的變量只能在本類中被 訪問(wèn)? ( D) ( D)private3.在 J
18、ava 語(yǔ)言中,哪一個(gè)包中的類是自動(dòng)導(dǎo)入的?(A)(A) java.lang4.有一個(gè)類 B,下面為其構(gòu)造方法的聲明,正確的是(B)( B) B(int x) 5.下面關(guān)于類的說(shuō)法,不正確的是( C)o(C)類就是 對(duì)象6.有如下代碼段class COuter int x = 10;void showA() System.out.pri ntl n( x);void prin t() showB();class Clnner int x = 20;void showB() System.out.pri ntl n( x);則下面說(shuō)法正確的是(B)o(B)這段程序有錯(cuò),原因是外部類直接使用了內(nèi)
19、部類的成員,而這是不對(duì)的7.Java 語(yǔ)言中,類之間的繼承關(guān)系是(A)。(A)單繼承8.在 Java 中,所有類的根類是(A)。(A) java .Ian g.Object9.如果局部變量和成員變量同名,如何在局部變量作用域內(nèi)引用成員變量?(B)(B)在成員變量前加 this,使用 this 訪問(wèn)該成員變量10. 在使用 in terface 聲明一個(gè)接口時(shí),只可以使用下述 哪個(gè)修飾符修飾該接口? ( D) (D) public11. 下面關(guān)于接口敘述正確的是( A)o(A)實(shí)現(xiàn)一個(gè)接口必須實(shí)現(xiàn)接口的所有方法12. 下面說(shuō)法不正確的是(B)(B)abstract 和 final 能同時(shí)修飾一個(gè)
20、類13. 自定義異常時(shí),可以通過(guò)對(duì)下列哪一項(xiàng)進(jìn)行繼承?(C)(C) Exception 類及其子類14. 以下關(guān)于 java 異常說(shuō)法不正確的是(D)(D)以上說(shuō)法都不對(duì)15. 運(yùn)行下面程序時(shí),會(huì)產(chǎn)生什么異常? ( A )(A) ArithmeticExceptionpublic class X7_1_4 public static void main( Stri ng args) int x = 0;int y = 5/x;in t z = 1,2,3,4;int p = z4;16. Java 提供處理不同類型流的類的API 包是(D) ( D)java.io17. 下列流中哪一個(gè)使用了緩
21、沖區(qū)技術(shù)?(A)(A)BufferedOutputStream18. 能讀入字節(jié)數(shù)據(jù)進(jìn)行Java 基本數(shù)據(jù)類型判斷過(guò)慮的類是(C)。( C) DatalnputStream19. 下列哪一個(gè) import 命令可以允許我們?cè)诔绦蛑袆?chuàng)建 輸入 /輸出流對(duì)象?( C) ( C) import java.io.*;20. 如果需要從文件中讀取數(shù)據(jù),則可以在程序中創(chuàng)建哪一個(gè)類的對(duì)象? ( A) (A) FilelnputStream21. 下列流中哪個(gè)不屬于字節(jié)流?(D)。( D)In putStreamReader22. 下列說(shuō)法中,正確的一項(xiàng)是(A)。(A)單處理機(jī)的計(jì)算機(jī)上,2 個(gè)線程實(shí)際上不能
22、并發(fā)執(zhí)行23. 下列說(shuō)法中,錯(cuò)誤的一項(xiàng)是(A)。(A)線程就是程 序24. 下列說(shuō)法中,錯(cuò)誤的一項(xiàng)是(A)。(A)線程一旦創(chuàng) 建,則立即自動(dòng)執(zhí)行25. Thread 類定義在下列哪個(gè)包中?(B) (B) java.lang26. 下列哪個(gè)方法可以將MenuBar 加入 Frame 中(D) ?(D) setMenuBar()27. 當(dāng)單擊鼠標(biāo)或拖動(dòng)鼠標(biāo)時(shí), 觸發(fā)的事件是(D )。( D)MouseEve nt28. 下列哪一項(xiàng)不屬于 Swing 的頂層組件(C)?( C) JTree29. 下列說(shuō)法中錯(cuò)誤的是(B)。( B) JFrame 的對(duì)象實(shí)例化后,沒(méi)有大小,但是可以看到30. 聲明并創(chuàng)
23、建一個(gè)按鈕對(duì)象b,應(yīng)該使用的語(yǔ)句是(A )。(A) Button b=new Button();31. 下列說(shuō)法中錯(cuò)誤的是(D )。( D) 一個(gè)類只能實(shí)現(xiàn)一個(gè)監(jiān)聽(tīng)器接口32. 如果容器組件 p 的布局是 BorderLayout,則在 p 的下邊中添加一個(gè)按鈕b,應(yīng)該使用的語(yǔ)句是(C)。(C) p.add(b,South);33. Java 中,JDBC 是指(A)。( A) Java 程序與數(shù)據(jù)庫(kù) 連接的一種機(jī)制34. JDBC 的模型對(duì)開(kāi)放數(shù)據(jù)庫(kù)連接(ODBC)進(jìn)行了改 進(jìn),它包含(D ) 。( D)以上全部都是35. JDBC 中要顯式地關(guān)閉連接的命令是(A )。( A)Conn ec
24、ti on .close()簡(jiǎn)答題1.什么是 Java 虛擬機(jī)?它的主要功能是什么?答: JVM 是在一臺(tái)計(jì)算機(jī)上由軟件模擬,也可用硬件實(shí)現(xiàn) 的假想的計(jì)算機(jī),它定義了指令集(相當(dāng)于中央處理器 CPU)、寄存器、類文件結(jié)構(gòu)棧、垃圾收集堆、內(nèi)存區(qū) 域等。JVM 是執(zhí)行 Java 程序的引擎。Java 程序編譯后得到 的二進(jìn)制形式的字節(jié)碼實(shí)際上就是JVM 指令。2.常用的常用系統(tǒng)包有哪些?它們各自的主要功能是什么?答:Java API 包功能java.applet提供對(duì)通用 Applet 的支 持,是所有 Applet 的基類java.awt提供組建標(biāo)準(zhǔn)圖形用戶界 面(GUI )的系統(tǒng)類。包含 了眾
25、多的圖形組件、方法和 事件java .lang包含 Java 語(yǔ)言的核心類庫(kù)java .net實(shí)現(xiàn) Java 網(wǎng)絡(luò)功能的類庫(kù)java.io包含輸入輸出類java.security支持 Java 程序安全性java.util提供各種實(shí)用工具類3.類變量和實(shí)例變量有哪些不同?答:在定義成員變量時(shí),如果用 static 修飾符修飾,則該變 量是類變量(也稱靜態(tài)變量”),否則是實(shí)例變量。類變量不屬于類的任何一個(gè)具體對(duì)象。它保存在類的內(nèi)存區(qū)域的公共存儲(chǔ)單元。 類的任何一個(gè)對(duì)象對(duì)類變 量的存取都是對(duì)同一個(gè)內(nèi)存單元進(jìn)行操作。與類變量相對(duì),實(shí)例變量屬于類的某個(gè)具體的對(duì) 象。它在類的每個(gè)對(duì)象的內(nèi)存區(qū)域中都保存一
26、份。 類的 任何一個(gè)對(duì)象對(duì)實(shí)例變量的存取都是對(duì)自己內(nèi)存區(qū)域 內(nèi)保存的實(shí)例變量的副本進(jìn)行操作。4.類方法和實(shí)例方法有哪些不同?答:類方法不針對(duì)特定的對(duì)象,所以在沒(méi)有創(chuàng)建對(duì)象之 前可以執(zhí)行。但是在類方法中只能訪問(wèn)類變量和類方 法,而不能訪問(wèn)實(shí)例變量和實(shí)例方法。實(shí)例方法則只能針對(duì)特定的對(duì)象執(zhí)行,因此,如果 任何對(duì)象都不存在,則也就沒(méi)有可以執(zhí)行的實(shí)例方法。另外,盡管實(shí)例方法專用于類中的對(duì)象,但在內(nèi)存 中也只有一份實(shí)例方法,供類中的所有對(duì)象共享。因?yàn)?為每個(gè)對(duì)象都復(fù)制一份實(shí)例方法的代價(jià)太大了。系統(tǒng)中 有一種專門機(jī)制來(lái)保證:每當(dāng)通過(guò)對(duì)象調(diào)用一個(gè)實(shí)例方 法時(shí),代碼都按照專用于某個(gè)對(duì)象的方式運(yùn)行。5.什么是多
27、態(tài)? Java 的編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài) 有什么區(qū)別?答:Java 中的多態(tài)就是指一個(gè)程序中同名的不同方法共存的 情況。分為編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài)兩類。 方法重載可以實(shí)現(xiàn) Java 的編譯時(shí)多態(tài)。它是在相同類 內(nèi),定義名稱相同, 但參數(shù)個(gè)數(shù)或參數(shù)類型不同的方法。 編譯器會(huì)根據(jù)實(shí)參的個(gè)數(shù)和類型,確定調(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)。它是在子類當(dāng) 中,定義名稱、參數(shù)個(gè)數(shù)與類型均與父類相同的方法, 用以改寫父類方法的功能。運(yùn)行時(shí)多
28、態(tài)是一種在運(yùn)行 時(shí),而不是在編譯時(shí)調(diào)用覆蓋方法的一種機(jī)制。對(duì)于覆 蓋的方法,Java 運(yùn)行時(shí)系統(tǒng)根據(jù)調(diào)用該方法的實(shí)例的類 型,來(lái)決定選擇哪個(gè)方法調(diào)用。6.什么是包?包的作用有哪些?答: 所謂包就是 Java 語(yǔ)言提供的一種區(qū)別類名空間的機(jī)制, 是一組相關(guān)的類和接口的集合。包有以下作用:(1)有效解決了類名沖突問(wèn)題。當(dāng)聲明的類很多時(shí), 類名沖突的可能性很大,引入包后,只要一個(gè)包中的類 名不沖突就可以,不同包中的類名可以相同。(2)包體現(xiàn)了 Java 語(yǔ)言面向?qū)ο筇匦灾械姆庋b機(jī)制。 包將 java 語(yǔ)言的類和接口有機(jī)地組織成層次結(jié)構(gòu), 這個(gè) 層次結(jié)構(gòu)與我們平常使用電腦時(shí)見(jiàn)到的具體的文件系 統(tǒng)的目錄
29、樹(shù)結(jié)構(gòu)層次一致。( 3)包還可以控制類之間的訪問(wèn)。類之間的訪問(wèn)控制 是通過(guò)類修飾符來(lái)實(shí)現(xiàn)的,若類聲明修飾符 public ,則 表明該類不僅可供同一包中的類訪問(wèn),也可以被其它包 中的類訪問(wèn)。若類聲明無(wú)修飾符,則表明該類僅供同一 包中的類訪問(wèn)。7.如何在程序中引入其它包中的代碼?答: 將類組織成包的目的是為了更好地利用包中的類。通常 一個(gè)類只能引用與它在同一個(gè)包中的類。如果需要使用 其它包中的 public 類,則可以使用如下的幾種方法。( 1)在引入的類前加包名。對(duì)于同一包中的其它類可 直接引用;對(duì)于不同包中的其它類引用時(shí)需在類名前加 包名。( 2)用 import 關(guān)鍵字加載需要使用的類。利
30、用import關(guān)鍵字加載需要使用的類當(dāng)前程序中, 這樣在程序中引 用這個(gè)類的地方就不需要再使用包名作為前綴。(3)上面的方法利用 import 語(yǔ)句加載了其他包中的一 個(gè)類。若希望引入整個(gè)包也可以直接利用 import 語(yǔ)句。 例如,語(yǔ)句import shape.* ;該語(yǔ)句的作用是把 shape 包中的所有類加載到當(dāng)前程序中。與加載單個(gè)類相同,加載整個(gè)包后,凡是用這個(gè)包 中的類,都不需要再使用包名前綴。8.什么是接口?它的作用是什么?答:在 Java 中, 接口 不是類,而是一組抽象方法和常量的 集合,用來(lái)描述類應(yīng)該提供什么樣的功能。 在接口中定 義的方法僅僅給出方法名稱、 參數(shù)列表、返回值
31、類型等 信息的說(shuō)明,并不給出方法體的具體代碼,即沒(méi)有給出 方法功能的具體實(shí)現(xiàn)。在程序中定義了一個(gè)接口以后,就可以聲明某些類實(shí)現(xiàn)了這個(gè)接口,在實(shí)現(xiàn)了該接口的 類中再給出接口的方法的功能代碼。這相當(dāng)于用接口規(guī) 范了實(shí)現(xiàn)接口的那些類都必須以特定的形式提供一組 特定的功能。反過(guò)來(lái),實(shí)現(xiàn)某個(gè)接口的類必須提供該接 口規(guī)定的功能,并且要遵從接口中定義的方法的格式約 定。9.什么是內(nèi)部類?使用內(nèi)部類有什么好處? 答: 可以將一個(gè)類的定義放在另一個(gè)類的內(nèi)部。定義在另一 個(gè)類內(nèi)部的類就是內(nèi)部類。內(nèi)部類允許我們把一些邏輯 相關(guān)的類組織在一起,并控制在內(nèi)部的類的訪問(wèn)特性。 內(nèi)部類的對(duì)象持有一個(gè)隱式引用,它引用了實(shí)例化
32、該內(nèi) 部對(duì)象的外圍類對(duì)象。通過(guò)這個(gè)引用,可以訪問(wèn)外圍類 對(duì)象的全部狀態(tài)。10.什么是異常? 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)?shù)牡胤骄褪恰爱惓L幚沓绦颉?,它的任務(wù)是將程 序從錯(cuò)誤狀態(tài)中恢復(fù)或者做一些簡(jiǎn)單地處理后結(jié)束程 序。11.
33、在編寫程序時(shí)如何在拋出異常的方法內(nèi)部處理異 常?答:使用 trycatchfin ally 代碼塊監(jiān)視和處理異常。如果 try 語(yǔ)句的代碼引發(fā)(拋出)的異常與后面某個(gè) catch 語(yǔ)句的參數(shù)的類型匹配,則用該 catch 語(yǔ)句塊中的 代碼處理該異常。如果不匹配就往后找有沒(méi)有其它的 catch 語(yǔ)句的異常參數(shù)類型匹配。如果所有的 catch 語(yǔ) 句的異常類型與 try 語(yǔ)句代碼段實(shí)際產(chǎn)生的異常都不 匹配,則執(zhí)行 finally 語(yǔ)句的代碼。另外, try 語(yǔ)句的 代碼段在執(zhí)行過(guò)程中也有可能不產(chǎn)生異常,此時(shí)不管有 沒(méi)有異常產(chǎn)生, try 語(yǔ)句的代碼段執(zhí)行完了之后都會(huì)執(zhí) 行 finally 語(yǔ)句的代
34、碼段。 try catch finally 代碼塊 全部執(zhí)行結(jié)束之后,如果中間沒(méi)有出現(xiàn)任何控制轉(zhuǎn)移, 程序?qū)⒃?catch 或 finally 之后繼續(xù)執(zhí)行。12.在編寫程序時(shí)如何把異常交給方法調(diào)用者去處理? 答:可以在產(chǎn)生異常的方法內(nèi)部自己處理異常,也可以不自 己處理,而是簡(jiǎn)單的聲明自己可能會(huì)拋出哪些類型的異 常, 如果方法代碼執(zhí)行過(guò)程中真的產(chǎn)生異常了,那么就 讓方法調(diào)用者去處理。方法是在方法聲明中使用throws短語(yǔ)聲明該方法可能會(huì)拋出哪種類型的異常。13.簡(jiǎn)述異常的傳播途徑。答:在“ trycatchfin ally ”結(jié)構(gòu)中,如果沒(méi)有一個(gè) catch 子句能夠匹配已經(jīng)產(chǎn)生的異常,則執(zhí)行
35、 fin ally 子句(如 果存在)。此時(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í)行新一輪的異常匹配操作。14.簡(jiǎn)述異常的層次結(jié)構(gòu)。答:當(dāng)有異常發(fā)生時(shí),Java 虛擬機(jī)會(huì)生成異常對(duì)象交給運(yùn)行時(shí)系統(tǒng)。異常對(duì)象是異常類創(chuàng)建的。Java 中的異常類是以一定的層次結(jié)構(gòu)來(lái)組織的。下圖表示了異常處理的 類層次。ObjectThrawableException15.簡(jiǎn)述 Java 中流的概念和作用。答:直觀地說(shuō),流就是用于處理輸入/輸出的字
36、節(jié)序列或字符 序列。Java 把程序與各種實(shí)際設(shè)備之間的數(shù)據(jù)輸入輸出 的處理細(xì)節(jié)都封裝在稱為“流”的系統(tǒng)類中。這樣,雖 然各種實(shí)際設(shè)備的差別很大,但是我們可以通過(guò)ErrorL i nkageE rrqrJava平臺(tái)提供的“流”類,使用相同的方法來(lái)連接數(shù)據(jù)資源 和應(yīng)用程序。java.io程序包中提供了大量的數(shù)據(jù)流類,編程人員只要使用相應(yīng)的數(shù)據(jù)流類,就可以與相應(yīng)的設(shè) 備交換數(shù)據(jù)。16.什么是線程?使用多線程有哪些好處?有會(huì)帶來(lái) 哪些問(wèn)題?答:通俗地講,線程是一個(gè)代碼執(zhí)行流。使用多線程的好處是:(1)多線程為多個(gè)代碼執(zhí)行流并 發(fā)執(zhí)行提供了可能。(2 )多線程程序比多進(jìn)程程序降低 了資源占用要求。使用
37、多線程也會(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ù)的全局變量,所以程序也必須考慮多線程同時(shí) 訪問(wèn)的全局變量問(wèn)題。17.試比較 Runnable 接口中定義的 run()方法與 Application 程序入口main()方法有那些相近之 處。答:在 Runnable 接口中定義的惟一的方法是run(),在線程執(zhí)行時(shí)調(diào)用。線程退出run()
38、之后,就已經(jīng)死亡,無(wú)法重新啟動(dòng)或復(fù)用。 不管是正常退出還是由于未捕獲異常 退出, 情況都是如此。在效果上,線程的 run()方法與 Java 應(yīng)用程序的 main()方法作用相同:就是代碼的初 始入口點(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)行的。但是 main()方法從 argv 來(lái)獲取它的參數(shù)(argv 一般 是通過(guò)命令行來(lái)設(shè)定的),而新創(chuàng)建的線程是用編程的 方式從原始線程獲取它的參數(shù)
39、的。因此,我們可以通過(guò) 構(gòu)造方法、靜態(tài)實(shí)例變量或者程序員設(shè)計(jì)的其他技術(shù)來(lái) 獲得這些參數(shù)。18.Java 線程的生命周期有哪些狀態(tài)?簡(jiǎn)述線程狀態(tài)轉(zhuǎn)換方式。答:一個(gè)線程從創(chuàng)建到工作到死亡的過(guò)程稱為線程的生命 周期。 線程生命周期共有五個(gè)狀態(tài):新建狀態(tài)、就緒狀 態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)和死亡狀態(tài)。新建狀態(tài)是指創(chuàng)建了一個(gè)線程,但它還沒(méi)有啟動(dòng)。就緒狀態(tài)是當(dāng)前線程處于新建狀態(tài)后,調(diào)用了 start()方法,線程就處于就緒狀態(tài)。就緒狀態(tài)的線程具備了運(yùn)行 條件,但尚未進(jìn)入運(yùn)行狀態(tài)。運(yùn)行狀態(tài)是某個(gè)就緒狀態(tài)的線程獲得CPU 資源,正在運(yùn)行。阻塞狀態(tài)是正在運(yùn)行的線程遇到某個(gè)特殊情況。例如, 延遲、掛起、等待I/O 操
40、作完成等。進(jìn)入阻塞狀態(tài)的線 程讓出 CPU,并暫時(shí)停止自己的執(zhí)行。線程進(jìn)入阻塞 狀態(tài)后,就一直等待,直到引起阻塞的原因被消除,線 程又轉(zhuǎn)入就緒狀態(tài),重新進(jìn)入就緒隊(duì)列排隊(duì)。死亡狀態(tài)是指線程不再具有繼續(xù)運(yùn)行的能力,也不能再 轉(zhuǎn)到其他狀態(tài)。19. 簡(jiǎn)述 Java 線程調(diào)度機(jī)制。答:Java 的線程調(diào)度機(jī)制負(fù)責(zé)調(diào)度線程。 Java 的線程調(diào)度 策略采用搶占式調(diào)度,優(yōu)先級(jí)高的線程比優(yōu)先級(jí)低的線 程優(yōu)先執(zhí)行。在優(yōu)先級(jí)相同的情況下,就按“先到先服 務(wù)”的原則調(diào)度線程。 Java 有專門的調(diào)度器,它的任 務(wù)是使優(yōu)先級(jí)高的線程能始終運(yùn)行,一旦時(shí)間片有空 閑,則使具有同等優(yōu)先級(jí)的線程以輪流的方式順序使用 時(shí)間片。
41、只有當(dāng)高級(jí)別的線程死亡時(shí)(除非用sleep(int millsecond) 或 wait() 方法讓出 CPU 資源),低級(jí)別線 程才有機(jī)會(huì)獲得 CPU 資源。 線程的優(yōu)先級(jí)用數(shù)值表示,數(shù)值越大優(yōu)先級(jí)越高(范圍 110)。每個(gè)線程根據(jù)繼承性自動(dòng)從父線程獲得一個(gè)線 程的優(yōu)先級(jí),也可在程序中重新設(shè)置線程的優(yōu)先級(jí)。對(duì) 于任務(wù)較緊急的重要線程,可安排較高的優(yōu)先級(jí)。 相反, 則給一個(gè)較低的優(yōu)先級(jí)。20.什么是守護(hù)線程?它和非守護(hù)線程有什么不同?答:所謂 “守護(hù)線程 (daemon thread) ”是指,只要程序還在運(yùn) 行,它就應(yīng)該在后臺(tái)提供某種公共服務(wù)的線程,但是守 護(hù)線程不屬于程序的核心部分。因此,
42、當(dāng)所有非守護(hù)線 程都運(yùn)行結(jié)束的時(shí)候,程序也結(jié)束了。相反,只要還有 非守護(hù)線程在運(yùn)行,程序就不能結(jié)束。 事實(shí)上,“守護(hù)線程”和“非守護(hù)線程”本質(zhì)上并沒(méi)有 什么區(qū)別, 只是 JVM 對(duì)其控制的方式有所不同而已。主要表現(xiàn)在:第一,守護(hù)線程一般是在后臺(tái)提供某種服 務(wù),而非程序核心部分的線程,所以它的優(yōu)先級(jí)最低。 這意味著 JVM 會(huì)盡量先調(diào)度那些非守護(hù)線程運(yùn)行。第 二,程序中所有非守護(hù)線程都已結(jié)束運(yùn)行時(shí),程序就結(jié) 束。21.什么是事件?什么是事件驅(qū)動(dòng)工作方式? 答: 事件 泛指由用戶或系統(tǒng)觸發(fā)的一個(gè)特定操作。例如:用 鼠標(biāo)單擊命令按鈕,將觸發(fā)一個(gè)按鈕的Click 事件;用 鼠標(biāo)選擇一個(gè)菜單項(xiàng),會(huì)產(chǎn)生一
43、個(gè)菜單項(xiàng)的選擇事件,等等。事件驅(qū)動(dòng)工作方式 是指,程序啟動(dòng)后,執(zhí)行一系 列初始化操作,然后處于等待狀態(tài)。當(dāng)用戶或系統(tǒng)觸發(fā) 某個(gè)事件之后,程序馬上就去執(zhí)行與該事件對(duì)應(yīng)的過(guò) 程。待事件過(guò)程執(zhí)行完畢后,系統(tǒng)又處于等待某事件發(fā) 生的狀態(tài)。程序的這種工作方式稱為事件驅(qū)動(dòng)工作方式。具有圖形界面的 Java 程序使用事件驅(qū)動(dòng)工作方式。 編寫 具有圖形用于界面的 Java 程序時(shí)不僅要?jiǎng)?chuàng)建程序的 圖形界面,還要編寫相應(yīng)的事件處理代碼,這樣程序才 能響應(yīng)用戶的操作 。22.Java GUI 庫(kù)代碼提供的基本功能有哪些?答: Java 通過(guò)提供 GUI 庫(kù)提供對(duì)圖形用戶界面編程的支 持, GUI 庫(kù)的代碼提供了這
44、樣一些基本功能:創(chuàng)建用戶界面的“ 控件” 或組件,如滾動(dòng)條、按鈕和標(biāo)簽等。通過(guò)把 GUI 事件(例如單擊按鈕) 和程序程序員編寫 的事件處理代碼關(guān)聯(lián)起來(lái),可以控制組件的動(dòng)作 。 支持對(duì)屏幕上的組件進(jìn)行分組和布局。支持訪問(wèn)窗口管理器,指定某個(gè)窗口作為輸入焦點(diǎn),讀 取 JPEG 和其它影響文件 ,以及進(jìn)行打印等。23. 如何用分層次的方法看待組件和容器之間的關(guān) 系? 答:容器和組件通常是具有一定的包含關(guān)系的。 可以按照這 樣的觀點(diǎn)分層次:頂層容器(不會(huì)包含在其它任何容器中的容器) ,例如 JFrame 、 JApplet 、JDialog 、 JWindow 等;中間容器, 例如 JPanel 、
45、JScrollPane 、JSplitPane 、JToolBar 等; 基本控件,例如 JButton 、JComboBox 、JList 、JMenu 、JTextField 等; 可編輯的組件,例如 JColorChooser 、 JFileChooser 、JTextArea 等。在構(gòu)建程序的圖形界面時(shí),一般一次創(chuàng)建頂層容器,中 間容器,基本控件和可編輯組件,然后再把基本控件和 可編輯組件放到中間容器中,最后再把中間容器放到頂 層容器中。24. Java 是如何管理組件布局的? 答: 在容器中可以放置許多組件,需要合理地安排這些組件 在容器中的位置才能使界面方便使用并且美觀, 這些工作
46、就是組件的布局設(shè)計(jì)與管理。每個(gè)容器都有一個(gè)布局管理器用來(lái)管理放到這個(gè)容器 中的組件的布局。 當(dāng)容器需要對(duì)某個(gè)組件進(jìn)行定位或判 斷其大小尺寸時(shí), 就會(huì)調(diào)用其對(duì)應(yīng)的布局管理器。布局 管理器可以使我們生成的圖形用戶界面具有良好的平 臺(tái)無(wú)關(guān)性。在 Java 語(yǔ)言中,用布局管理器來(lái)管理組件在 容器中的布局,而不直接設(shè)置組件位置和大小。容器通 過(guò)選擇不同的布局管理器來(lái)決定布局。25.什么是事件源?什么是事件監(jiān)聽(tīng)者?它們之間是 如何配合實(shí)現(xiàn)事件處理的?答:Java 中把能夠產(chǎn)生事件的組件叫做事件源。 這個(gè)程序中 的按鈕就是一個(gè)事件源。在 Java 中,事件源產(chǎn)生的事 件并不是由事件源本身處理,而是由其它對(duì)象
47、來(lái)處理。 用來(lái)處理事件的對(duì)象叫做事件監(jiān)聽(tīng)者或事件監(jiān)聽(tīng)器。 系統(tǒng)把事件源產(chǎn)生的事件交給事件監(jiān)聽(tīng)者處理, 事件監(jiān) 聽(tīng)者使用相應(yīng)事件監(jiān)聽(tīng)接口的事件處理方法處理該事 件。26.要讓應(yīng)用程序在框架窗口關(guān)閉后退出,可以使用哪些辦法? 答:在有著多個(gè)框架的程序中, 可能不能因?yàn)橛脩絷P(guān)閉了多 了框架中的一個(gè)就讓程序全部退出。默認(rèn)情況下,當(dāng)用 戶關(guān)閉一個(gè)框架時(shí),該框架會(huì)隱藏起來(lái),但應(yīng)用程序不 會(huì)終止。要退出程序,可以使用語(yǔ)句fra.setDefaultCloseOperati on (JFrame.EXIT_ON_CLOSE); 或者在已注冊(cè)的 Win dowListe ner 對(duì)象的win dowClos i
48、ng方法中去退出程序,比如在那里使用語(yǔ)句 System.exit(O);27.簡(jiǎn)述 JFrame 框架的基本結(jié)構(gòu)。答:JFrame 框架的基本結(jié)構(gòu)。其基本結(jié)構(gòu)如下圖所示:JFrame 窗口中包含一個(gè) JRootPa ne 類的實(shí)例(對(duì)象), 用這個(gè)對(duì)象管理放到框架窗體中的元素。JRootPa ne 面板包含一個(gè) glassPa ne 面板和一個(gè) JLayeredPa ne 面 板。glassPane 面板能夠截取鼠標(biāo)移動(dòng),而 JLayeredPane 面板負(fù)責(zé)管理 contentPane 內(nèi)容面板和 JMenuBar 菜 單。程序中要使用的按鈕、列表框等組件不是直接添加 到JFrame 框架窗
49、口,而是需要添加到內(nèi)容面板中,而 JMenuBar 對(duì)象則負(fù)責(zé)管理出現(xiàn)在框架窗口頂部的菜 單。28.簡(jiǎn)述給窗口添加菜單的基本過(guò)程。答:(1) 創(chuàng)建所需要的菜單條對(duì)象、菜單對(duì)象和菜單項(xiàng)對(duì) 象。(2) 把菜單項(xiàng)添加到菜單對(duì)象。(3) 把菜單添加到菜單條對(duì)象。(4) 把裝配好的菜單條對(duì)象添加的窗口對(duì)象。29.簡(jiǎn)述 Java 程序與數(shù)據(jù)庫(kù)連接的基本方法。答:Java 程序連接數(shù)據(jù)庫(kù)的方法有兩種:一種是使用 JDBC -ODBC 橋連接器與數(shù)據(jù)庫(kù)連接,另一種是使用JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)連接。用 JDBC -ODBC 橋連接器與數(shù)據(jù)庫(kù)連接的基本過(guò)程:(1)建立 ODBC 數(shù)據(jù)源。(2)在程序中使用Cla
50、ss.forName(sun.jdbc.odbc.JdbcOdbcDriver)加載JDBC -ODBC 驅(qū)動(dòng)程序。(3)使用DriverManager.getConnection(myUrl, user, password) 建立 數(shù)據(jù)庫(kù)連接(4)使用相應(yīng)語(yǔ)句做其它操作。使用 JDBC 驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)連接的過(guò)程:(1)下載和安裝相應(yīng)的 JDBC 驅(qū)動(dòng)程序。(2)在程序中使用Class.forName(com.microsoft.jdbc.sqlserver.SQLServerD river)加載JDBC 驅(qū)動(dòng)程序。(3)使用DriverManager.getConnection(myUrl
51、, user, password) 建立 數(shù)據(jù)庫(kù)連接(4)使用相應(yīng)語(yǔ)句做其它操作。30.常見(jiàn)的 Java 數(shù)據(jù)庫(kù)編程 API 有哪些?它們的主要功能分別是什么?答:DriverManage 類是 java.sql 包中用于管理數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的類。它處理驅(qū)動(dòng)程序的加載和建立數(shù)據(jù)庫(kù)連接。DriverManage 類的靜態(tài)方法 getConnection()用 于建立數(shù)據(jù)庫(kù)連接。該方法返回一個(gè)Conn ection 對(duì)象。Connection 類是 java.sql 包中用于處理特定數(shù)據(jù)庫(kù)連 接的類。Connection對(duì)象表示一個(gè)實(shí)際的數(shù)據(jù)庫(kù)連接,在操作數(shù)據(jù)庫(kù)之前應(yīng)該首先建立數(shù)據(jù)庫(kù)連接,取得Con
52、nection 對(duì)象。Statement 類是 java.sql 包中用于在指定的連接中處理SQL 語(yǔ)句的類。取得 Connection 對(duì)象之后,用該對(duì) 象的 createStatement()方法創(chuàng)建 Statement 對(duì)象,然 后就可以用 Statement 對(duì)象執(zhí)行 SQL 語(yǔ)句操作數(shù)據(jù) 庫(kù)了。ResultSet 類是 java.sql 包中用于管理查詢結(jié)果集的 類。Statement 對(duì)象執(zhí)行 SQL 語(yǔ)句時(shí),如果該 SQL 語(yǔ) 句是一個(gè)查詢語(yǔ)句,將返回一個(gè)查詢結(jié)果集,ResultSet對(duì)象就表示一個(gè)查詢結(jié)果集,它管理查詢結(jié)果記錄。編程題1. 編寫一個(gè)字符方式的 Applicati
53、on 程序。在程序中 定義一個(gè)表示雇員的類Employee。在類 Employee中定義兩個(gè)屬性,分別表示雇員的姓名和薪酬。定 義類 Employee 構(gòu)造方法,為兩個(gè)屬性賦初值。另 外在類 Employee 的中分別定義兩個(gè)獲取屬性值的 成員方法。在程序的主類中創(chuàng)建一個(gè) Employee 類 的對(duì)象 objE,為該對(duì)象的所有成員變量賦初值, 并 且在標(biāo)準(zhǔn)輸出設(shè)備上輸出它的成員變量的值。請(qǐng)寫 出此 Application 程序的源程序代碼。classEmployee private String name;private double salary;Employee(String n, dou
54、ble s) name = n;salary = s;String getName() return name;double getSalary() return salary;public classPayrollSystem public static void main(String args) Employee objE = new Employee(Carl Cracker, 1287.0);System.out.print(name = + objE.getName();System.out.println(, salary = + objE.getSalary();2. 編寫一個(gè)
55、 Java Application 程序,要求從鍵盤讀入 整數(shù) n,計(jì)算 n!并輸出結(jié)果。import java.io.*;public class Test17 public static void main(String args) throws IOException int n; int i,m=1;String str; BufferedReader buf;buf=new BufferedReader(newInputStreamReader(System.in);System.out.print(Input an integer:);str=buf.readLine();n=In
56、teger.parseInt(str);for (i=1;i=n;i+) m=m*i;System.out.println(result=+m);3. 編寫一個(gè)字符方式的 Application 程序。在程序中 定義一個(gè)表示人的類CPerson。在類 CPerson 中有表示人的姓名和性別的成員變量,有顯示人的姓名 和性別的成員方法。再定義一個(gè)表示教師的子類 CTeacher,CTeacher 繼承自 CPerson,同時(shí)在CTeacher 中增加表示教師職稱的成員變量以及顯 示職稱的成員方法。在程序的主類中創(chuàng)建一個(gè) CTeacher 類的對(duì)象 tobj,為該對(duì)象的所有成員變量 賦初值,并且在
57、標(biāo)準(zhǔn)輸出設(shè)備上輸出它的成員變量 的值。請(qǐng)寫出此 Application 程序的源程序代碼。classCPerson String name = new String();String gender = new String(); void showName() System.out.println(name);void showGender() System.out.println(gender);classCTeacher extends CPerson String post = new String();void showPost() System.out.println(post);p
58、ublic class CPersonApp public static void main(String args) / TODO Auto-generated method stub CTeacher tobj= n ewCTeacher(); tobj.name = Tom; tobj.gender = male; tobj.post =professor; tobj.showName(); tobj.showGender();tobj.showPost();4.設(shè)有如下接口定義,interface Shapes public abstract double getArea(); pub
59、lic abstract doublegetPerimeter();用接口 Shapes 約定二維幾何圖形都要提供求面積的功 能和求周長(zhǎng)的功能。編寫一個(gè)直角三角形類,該類實(shí)現(xiàn)了Shapes 接口。請(qǐng)寫出該類的代碼。public class RightA ngledTria ngle impleme nts Shapes private double a;private double b;public RightA ngledTria ngle(double a, double b) this.a = a;this.b = b;public double getArea() return a *
60、 b / 2;public double getPerimeter() double c = java .Ian g.Math.sqrt(a * a + b * b); return a + b + c;5.編寫一個(gè) JFrame 窗口程序,要求窗口具有菜單File,菜單 File 具有菜單項(xiàng) Open 和菜單項(xiàng) Exit。 程序運(yùn)行時(shí),若選擇 Open,則把當(dāng)前源程序的內(nèi) 容在窗口的內(nèi)容面板中顯示出來(lái); 若選擇 Exit 則退 出程序。import javax.swi ng.*;import java.awt.*;import java.awt.eve nt.*;import java.io
61、.*;public class Ex public static void main(String args) String stri =顯示源文件;MyJFrame mw = new MyJFrame(str1,400, 300);mw.setVisible( true); class MyJFrame extends JFrame implementsAction Liste ner JTextArea text = new JTextArea();JScrollPa ne jsp = new JScrollPa ne(text);Container conPane = null;FileReader file;BufferedReader in;/構(gòu)造方法public MyJFrame(Stri ng n ame, int w, int h) super();setTitle (n ame);setSize(w, h);setLocatio n(100, 100);conPane = getC onten tPa ne();
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版地理七年級(jí)下冊(cè)--極地地區(qū)課件
- 備選方案與f課件
- 行程問(wèn)題 順流逆流
- 班集體特色創(chuàng)建
- 發(fā)電廠的控制系統(tǒng)綜述
- 英語(yǔ)專業(yè)四級(jí)考試閱讀技巧新
- 小說(shuō)中的環(huán)境描寫
- 典案二PPT教學(xué)案例SectionA2
- 血液透析患者動(dòng)靜脈內(nèi)瘺閉塞的原因及防護(hù)課件
- 運(yùn)動(dòng)快慢與方向的描述——速度課件
- 新概念第一冊(cè)lesson78ppt課件
- 原電池公開(kāi)課修改課件
- 檢量具使用方法和注意事項(xiàng)課件
- 中考賓語(yǔ)從句復(fù)習(xí)PPT課件2
- 不用文字的書(shū)和信