Java開發(fā)綜合實(shí)戰(zhàn) 習(xí)題及答案 趙健 ch01 -10 Java開發(fā)環(huán)境和工具-訪問數(shù)據(jù)庫_第1頁
Java開發(fā)綜合實(shí)戰(zhàn) 習(xí)題及答案 趙健 ch01 -10 Java開發(fā)環(huán)境和工具-訪問數(shù)據(jù)庫_第2頁
Java開發(fā)綜合實(shí)戰(zhàn) 習(xí)題及答案 趙健 ch01 -10 Java開發(fā)環(huán)境和工具-訪問數(shù)據(jù)庫_第3頁
Java開發(fā)綜合實(shí)戰(zhàn) 習(xí)題及答案 趙健 ch01 -10 Java開發(fā)環(huán)境和工具-訪問數(shù)據(jù)庫_第4頁
Java開發(fā)綜合實(shí)戰(zhàn) 習(xí)題及答案 趙健 ch01 -10 Java開發(fā)環(huán)境和工具-訪問數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

項目1Java開發(fā)環(huán)境和工具

一、作為在網(wǎng)絡(luò)時代得到廣泛應(yīng)用的編程語言之一,Java具有的優(yōu)勢是什么?

1.簡潔易學(xué)。Java與C++類似,出現(xiàn)于C++之后,摒棄了C++中煩瑣、少用和不好用的

部分,如goto語句、指針運(yùn)算、操作符重載、多重繼承、虛基類等。

2.跨平臺/可移植性。這是Java的核心優(yōu)勢。Java介于編譯型語言和解釋型語言之間。

編譯型語言(如C、C++)的代碼是直接被編譯成機(jī)㈱碼執(zhí)行的,由于不同平臺的CPU的指令

集不同,因此需要編譯出每種平臺的對應(yīng)機(jī)器碼。解釋型語言(如Python、Ruby)由解釋器加

載源碼,然后運(yùn)行,缺點(diǎn)是運(yùn)行效率較低。

3.安全性。Java虛擬機(jī)擁有工業(yè)級的穩(wěn)定性和高度優(yōu)化的性能,并且經(jīng)過長時期的考驗(yàn),

使Java可以很容易地構(gòu)建防病毒、防篡改系統(tǒng),適用于網(wǎng)絡(luò)/分布式環(huán)境。

4.高性能。Java通過虛擬機(jī)的優(yōu)化和JIT(JustInTime,即時編譯)技術(shù)提升運(yùn)行效率。不

僅如此,一些“熱點(diǎn)”字節(jié)碼被編譯成本地機(jī)器碼存儲在緩存中,在需要的時候重新調(diào)用,

省去反復(fù)編譯的過程,從而提高Java程序的運(yùn)行效率。

5.分布式。Java是特地為互聯(lián)網(wǎng)設(shè)計的。它有一個龐大的網(wǎng)絡(luò)類庫().支持各種網(wǎng)

絡(luò)階層的聯(lián)系,能夠處理TCP,IP協(xié)議。Java程序能夠從網(wǎng)絡(luò)的URL中獲取所需要的資源并

加以處理。Java還支持RMI(RemoleMethodInvocalion,遠(yuǎn)程方法調(diào)用),使程序能夠通過網(wǎng)絡(luò)

調(diào)用方法。

6.多線程。使用多線程可以帶來更好的交互響應(yīng)和實(shí)時行為。Java內(nèi)建的多線程

(mulli-lhread)功能,支持多個線程同時運(yùn)行、這是Java成為主流服務(wù)器端開發(fā)語言的主要原

因之一。

7.健壯性。Java提供了一種系統(tǒng)級線程跟蹤存儲空間的分配情況的機(jī)制GC(垃圾收集),

在Java程序運(yùn)行過程中自動進(jìn)行操作,在很大程度上減少了因?yàn)闆]有釋放空間導(dǎo)致的內(nèi)存

泄漏問題。

二、根據(jù)應(yīng)用環(huán)境的不同,Java分為哪些不同的版本?

l.JavaSE(JavaStandardEdilion)稱為標(biāo)準(zhǔn)版,定位于桌面級應(yīng)用程序的開發(fā)。這個版本

是Java平臺的核心,包含標(biāo)準(zhǔn)的JVM和標(biāo)準(zhǔn)庫,提供非常豐富的API(包括圖形用戶界面接

口AWT及Swing、數(shù)據(jù)庫操作、網(wǎng)絡(luò)功能與國際化、圖像處理、多線程及輸入/輸出支持等)

用來開發(fā)一般個人計算機(jī)上的應(yīng)用程序。

2.JavaEE(JavaEnterpriseEdition)稱為企業(yè)版,其核心是EJB(企業(yè)Java組件模型),定位于

企業(yè)級分布式的網(wǎng)絡(luò)應(yīng)用開發(fā),如電子商務(wù)網(wǎng)站開發(fā)和ERP系統(tǒng)開發(fā)。JavaEE是JavaSE

的擴(kuò)展,在JavaSE的基礎(chǔ)上增加了大量的API和用于服務(wù)器開發(fā)的類庫,運(yùn)行在一個完整

的應(yīng)用服務(wù)器上,用來開發(fā)大規(guī)模、分布式、健壯的網(wǎng)絡(luò)應(yīng)用.

3.JavaME(JavaMicroEdilion淋為微型版,定位于嵌入式系統(tǒng)的開發(fā),例如,掌上電腦、

手機(jī)等移動通信電子設(shè)備。根據(jù)電子消費(fèi)產(chǎn)品的需求,JavaME精簡了JavaSE核心類庫,

也有自己的適合開發(fā)微小裝置的擴(kuò)展類。

三、什么是JDK?

JDK是JavaDevelopmen!Kit的縮寫,即Java開發(fā)工具包,包括用于開發(fā)和測試用Java

編寫并在Java平臺上運(yùn)行的程序的工具,如JRE、編譯器和調(diào)試器等開發(fā)工具。其中,

JRE(JavaRuntimeEnvironmcni)是Java的運(yùn)行環(huán)境,包含JVM和Java核心類庫。JVM(Java

VirtualMachine)是Java虛擬機(jī),是Java實(shí)現(xiàn)跨平臺的最核心的部分。

四、簡要介紹Java開發(fā)中幾個很重要的可執(zhí)行程序。

1.javac.exeJava的編譯器,用于把Java源碼文件(以.java為后綴)編譯為Java字節(jié)碼文

件(以.class為后綴)。

2.java.exe:JVM.用于運(yùn)行編譯后的Java程序。

3.jar.exe:打包工具,用于壬一組.class文件打包成一個jar文件,以便發(fā)布。

4.javadoc.exe:文檔生成器,用于從Java源碼中自動提取注耗并生成文檔。

5.jdb.exe:Java調(diào)試器,可以設(shè)置斷點(diǎn)和檢查變量,用于開發(fā)階段的運(yùn)行調(diào)試。

6.jav叩.exe:Java反匯編器,可以顯示編譯類文件中的可訪問功能和數(shù)據(jù),同時顯示字節(jié)

碼的含義。

7.jconsole.exe:Java進(jìn)行系統(tǒng)調(diào)試和監(jiān)控的工具。

五、什么是Java?開發(fā)Java程序步驟。

Java程序(也稱項目)以類為基本單位,由若干個類構(gòu)成。為便于維護(hù),每個類被放置在

一個源文件中。Java程序必須有一個主類,即含有main。方法(主方法)的類,它是執(zhí)行程序

的入I」。

使用Eclipse開發(fā)Java程序的步驟一般為:新建Java項目~新建Java類編寫Java代

碼一運(yùn)行Java程序。

項目2面向?qū)ο缶幊袒A(chǔ)

六、面向?qū)ο笫鞘裁矗?/p>

面向?qū)ο笫且环N符合人類思維習(xí)慣的編程思想,是一種數(shù)據(jù)抽象和信息隱藏的技術(shù)。在

程序開發(fā)中引入的面向?qū)ο缶幊蹋∣bjectOrientedProgramming,OOP)的概念,其實(shí)質(zhì)就是以

對象為中心,以信息為驅(qū)動,對現(xiàn)實(shí)世界中的對象進(jìn)行建模操作。由于它使軟件的開發(fā)更加

簡單,又能降低軟件的復(fù)雜度,提高軟件的生產(chǎn)效率,因此得到了廣泛應(yīng)用。

七、面向?qū)ο笏哂械奶攸c(diǎn)主要可以概括為什么?

1.封裝

封裝是而向?qū)ο蟮暮诵乃枷耄袃蓪雍x:一層含義是指把描述對象屬性的變量及實(shí)

現(xiàn)對象功能的方法看成一個密不可分的整體,將這兩者“封裝”在一個不可分割的獨(dú)立程序

單位(即對象)中;另一層含義是指“信息隱藏”,即為封裝在一個整體內(nèi)的變量及方法設(shè)置不

同級別的訪問權(quán)限。一些對象的屬性及行為允許外界用戶知道或使用,但不允許更改:另?

些對象的屬性及行為,則不允許外界用戶知道,或只允許使用對象的功能,而盡可能隱蔽對

象的功能實(shí)現(xiàn)細(xì)行。

2.繼承

繼承主要指類與類之間的關(guān)系,首先擁有反映事物一般特性的類,然后在其基礎(chǔ)上派生

出能反映特殊事物的關(guān)。通過繼承,可以更高效地對原有類的功能進(jìn)行擴(kuò)展。繼承不僅增強(qiáng)

了代碼的復(fù)用性,提高了開發(fā)效率,還為程序的修改補(bǔ)充提供了便利。

3.多態(tài)

多態(tài)是指把子類型的對象主觀地看作其父類型的對象,那么父類型就可以包含很多種類

型,對同?種行為能夠表現(xiàn)出很多種不同的形式。多態(tài)性可提高程序的抽象程度和簡潔程度,

有助于程序開發(fā)人員之間進(jìn)行協(xié)作。

八、在類中除了可以定義成員方法,還可以定義一個特殊的方法一構(gòu)造方法。構(gòu)

造方法是一個與類同名的方法,在使用關(guān)鍵字new實(shí)例化類對象時默認(rèn)被調(diào)用,

用于初始化成員變量。構(gòu)造方法的特點(diǎn)是引么?

1.構(gòu)造方法名與所在類的類名相同:

2.構(gòu)造方法沒有返回值,不能指定返回值類型,也不能定乂為void:

3.構(gòu)造方法用于初始化無static修飾的成員變量。

九、在Java中,關(guān)鍵字this可以描述哪種結(jié)構(gòu)的引用?

1.當(dāng)前對象:ihis。

2.當(dāng)前類中的屬性:this.屬性。

3.當(dāng)前類中的成員方法:ihis.方法名0。

4.當(dāng)前類中的其他構(gòu)造方法:this。。

十、一維數(shù)組實(shí)質(zhì)上是什么?以及其聲明方式。

一維數(shù)組實(shí)質(zhì)上是一組具有相同數(shù)據(jù)類型的數(shù)據(jù)的有序集合,整個集合使用數(shù)組名稱作

為標(biāo)識符,其中的每一個數(shù)捱稱為一個數(shù)組元素,按照排列順序,使用一個唯一的索引(從

0開始)進(jìn)行標(biāo)識。數(shù)組的數(shù)據(jù)類型取決于數(shù)組元素的數(shù)據(jù)類型,可以是Java中任意的數(shù)據(jù)

類型(基木數(shù)據(jù)類型或弓I用數(shù)據(jù)類型)。數(shù)組必須先聲明,再使用。

一維數(shù)組有以下兩種聲明方式:

元素數(shù)據(jù)類型數(shù)組名稱n;

元素數(shù)據(jù)類型口數(shù)組名稱;

其中,u表明聲明的變量是一個數(shù)組,口的數(shù)量代表了數(shù)組的維度,一個u表示一維數(shù)

組。

項目3面向?qū)ο缶幊毯诵募夹g(shù)

十一、如何理解方法重寫。

重寫(Override)也稱為覆蓋,是指在子類中定義一個方法,該方法的名稱和參數(shù)列表與

父類的成員方法相同,但修改或重新編寫了實(shí)現(xiàn)內(nèi)容、返回值類型或訪問權(quán)限修飾符。也就

是說,在Java中重寫方法必須滿足以下兩個條件:子類方法名稱和父類方法名稱相同。子

類方法的參數(shù)類型、個數(shù)、順序與父類的成員方法完全相同。

十二、調(diào)用父類的構(gòu)造方法的語法格式是什么?

super.變量名:調(diào)用父類的成員變量。

super.方法名(參數(shù)列表):調(diào)用父類的成員方法。

super(參數(shù)列表):調(diào)用父類的有參構(gòu)造方法。如果沒有參激,則調(diào)用父類的無參構(gòu)造方

法,此時該語句可以省略。

十三、關(guān)鍵字final的語法格式是什么?

關(guān)鍵字final表示不可改變,不僅可修飾類,還可修飾類的成員方法和成員變量。語法

格式如下:

1.修飾類。

Finalclass類名(..)〃表示該類不能被其他類維承

2.修飾類的成員方法。

final返回值類型方法名稱(參數(shù)列表){..}〃表示該方法不能被重寫

3.修飾類的成員變量。

在修飾類的成員變量時,與繼承無關(guān),而是表示定義一個常量。

final數(shù)據(jù)類型常量名=值;

如果在程序中試圖修改由關(guān)鍵字final修飾的類或類成員,則會產(chǎn)生編譯錯誤。

十四、在Java中,重載方法必須滿足什么條件?

1.方法名相同,包括字母大小寫。

2.方法的參數(shù)列表必須不可,可以是參數(shù)的類型、個數(shù)或順序不同。

3.方法的返I可值類型、修詭符可以相同,也可以不同。

十五、如何理解成員內(nèi)部類。

所謂成員內(nèi)部類,就是被定義在一個類內(nèi)部,作為類的成員的類。定義成員內(nèi)部類的語

法格式如下:

修飾符classOuterClass{

修飾符classInnerClass{

〃類體

其中,OuterClass類是外部類,InnerClass類是內(nèi)部類。成員內(nèi)部類可使用static、public、

protected和private修飾,而外部類只能使用public或默認(rèn)修飾符修飾。需耍注意的是,在

成員內(nèi)部類中不能定義靜態(tài)變量。

項目4異常處理

十六、在Java中,程序異常的類型有哪些?

I.EiTor類。

Error類是程序無法處理的錯誤,表示在應(yīng)用程序運(yùn)行時出現(xiàn)的嚴(yán)重錯炭,例如,Socket

編程時端口被占用、JVM可用內(nèi)存不足等錯誤。這些錯誤不是異常,而是脫離程序員控制

的問即,遇到這些錯誤,JVM會選擇終止線程。

2.Exception類。

Exception類是程序本身可以處理的異常,可分為運(yùn)行時異常與編譯異常,可以被捕獲

并處理。

十七、處理編譯異常的方法是什么?

編譯異常必須由iry-calch語句進(jìn)行捕獲和處理,或包含在方法聲明的throws列表中,

由方法的調(diào)用者進(jìn)行捕獲和處理,否則程序不能通過編譯。

捕獲異常的語法格式是一個完整的結(jié)構(gòu),try、catch和flnally3個子句不能單獨(dú)使用,

但可以組合為iry-catch、iry-catch-finally或try-finally結(jié)構(gòu)使用。其中,catch了句可以有一

個或多個,但finally子句只能有一個。

十八、如何在方法中拋出異常?

1.使用throws關(guān)鍵字拋出異常

在定義方法時使用throws關(guān)鍵字聲明,表示在該方法中可能拋出異常,但不處理異常,

而是交給方法的調(diào)用者進(jìn)行處理。語法格式如下:

返回值類型方法名(參數(shù)列表)[hrows異常類型名{

〃方法體,拋出異常

2.使用throw關(guān)鍵字拋出異常

異常類對象通常是在產(chǎn)生異常時,由JVM自動實(shí)例化的。如果用戶要手動實(shí)例化異常

類對象,就需要使用throw關(guān)鍵字。將throw關(guān)健字用在方法體內(nèi),不僅可拋出Exception

類中的子類異?!?,還可以拋出自定義異常,由方法體內(nèi)的語句進(jìn)行處理。語法格式如下:

Thrownew異常類型名(異常信息)

十九、如何解釋RuntimeException類及其子類的異常。

這類異常通常由程序邏輯錯誤產(chǎn)生,是可以避免的異常,列如,對象沒有正常初始化、

數(shù)組元素引用越界等。這些異常在編寫代碼時不會被編譯器檢測出來,可以不被捕獲。

二十、自定義編譯異常類,則可以通過繼承Exception類的方式創(chuàng)建,具體的語

法格式是什么?

修飾符class自定義異常類名extendsException]

〃類體

如果要自定義運(yùn)行時異常類,則可以通過繼承RunlimeExcepiion類的方式創(chuàng)建,具體

的語法格式如下:

修飾符class自定義異常類名extendsRuntimeException(

〃類體

項目5圖形用戶界面設(shè)計

二H--、Swing概述是什么?

Java早期在進(jìn)行圖形用戶界面設(shè)計時,主要使用Java抽象窗M工具包

(Abs(ractWindowToolkit.AWT)ava.awt提供的用于設(shè)計圖形用戶界面的組件類。javax.swing

包(簡稱Swing)是隨JDK1.2推出的一個新包,提供了功能更為強(qiáng)大的設(shè)計圖形用戶界面的

類。

二十二、Java類庫提供了豐富的容器類,為用戶選擇與創(chuàng)建容器帶來了極大的

便捷。具有兩種常用容器是什么?

1.底層容器

底層容器是指最外層的容器,即包含所有組件或容器的那層容器。Java提供的JFrame

類的實(shí)例,即通常所說的窗I」就是一個底層容器:JDialog類的實(shí)例,即通常所說的對話框,

也是一個底層容器。每一個可視化的圖形用戶界面應(yīng)用程序都應(yīng)該有一個底層容器,其他組

件必須被添加到底層容器中,以便借助這個底層容器和操作系統(tǒng)進(jìn)行信息交互。

2.面板容器

面板容涔是一-種沒有邊框、沒有標(biāo)題欄的中間層容器。常見的面板容器有兩種:?種是

普通的面板容器,在Swing中用JPanel類實(shí)現(xiàn);另一種是帶滾動視圖的面板容器,在Swing

中用JScrollPane類實(shí)現(xiàn)。

二十三、什么是JFrame窗口?

JFrame類是Component類和Conlainer類的間接子類。JFranie類的實(shí)例是一個底層容器,

通常也被稱為窗口。在開發(fā)應(yīng)用程序時,可以通過繼承JFrame類或直接使用JFrame類的實(shí)

例創(chuàng)建一個窗口。

二十四、在Java應(yīng)用程序中創(chuàng)建JFrame窗口的一般操作過程。

在Java應(yīng)用程序中創(chuàng)建JFrame窗口的一般操作過程為:倉J建窗口一定位窗口f指定窗

口擴(kuò)展和關(guān)閉方式一指定窗口可見。

二十五、在Java應(yīng)用程序中,使用JPanel面板的基本步驟。

1.定義一個JPanel類的子類并實(shí)例化一個類對象。

JPanel類提供了如下兩種形式的構(gòu)造方法。

JPanel。:創(chuàng)建一個布局管理器為FlowLayoul的面板。

JPanel(LayoutManagerlaycut):創(chuàng)建一個布局管理器為layout的面板。

2.使用getConlenlPane().add()方法將面板放置到窗H中。

項目6GUI事件處理

二十六、事件對象、事件源、事件監(jiān)聽器、事件處理器這4個概念如何理解。

1.事件對象

事件對象是指被封裝在GUI組件上發(fā)生的特定事件的類對象,通常是用戶進(jìn)行的一次

操作,如單擊按鈕、按下按鍵等。

2.事件源

能夠產(chǎn)生事件的對象都可以被稱為事件源,通常是產(chǎn)生事件的組件,如文本框、按鈕、

下拉列表等。

3.事件監(jiān)聽器

事件監(jiān)聽器負(fù)責(zé)監(jiān)聽事件源上發(fā)生的事件,以便對發(fā)生的事件進(jìn)行處理。事件源通過調(diào)

用相應(yīng)的方法將某個對象注冊為自己的監(jiān)聽器。

4.事件處理器

事件處理器負(fù)責(zé)接收事件對象并進(jìn)行相應(yīng)的處理,被包含在一個事件監(jiān)聽器類中。事件

監(jiān)聽器實(shí)質(zhì)上就是一個實(shí)現(xiàn)特定類型監(jiān)聽器接口的類對象,為了處理事件源發(fā)生的事件,監(jiān)

聽器這個對象會自動調(diào)用一個方法來處理事件。

二十七、Java將事件分為哪兩個類別?

1.低級事件

低級事件是指來自鍵盤、鼠標(biāo)和與窗口操作有關(guān)的事件。冽如,關(guān)閉窗口、移動鼠標(biāo)、

獲取焦點(diǎn)或按下按鍵等。

2.語義事件

語義事件是指與組件有關(guān)的事件。例如,單擊按鈕、在文本框中輸入文本、拖動滾動條、

選擇列表項等。

二十八、在應(yīng)用程序中,觸發(fā)窗口事件時的流程?

在應(yīng)用程序中,觸發(fā)窗口事件時,WindowEvent類將創(chuàng)建一個窗口事件對象。該對象調(diào)

用getWindow()方法獲取發(fā)生窗口事件的窗口。在對窗口事件進(jìn)行處理時,首先需要定義一

個實(shí)現(xiàn)了WindowLisiener接口的類作為窗口監(jiān)聽器,然后通過addWindowListener。方法將

窗口對象與窗口監(jiān)聽器進(jìn)行綁定。

二十九、鼠標(biāo)事件(MouseEvent)的流程。

在處理鼠標(biāo)事件時,首先需要實(shí)現(xiàn)MouseListener接口(或MouseMotionListener接口)或

繼承適配器MouscAdaptcr類(或MouscMotionAdaptcr類)來定義監(jiān)聽器,然后調(diào)用

addMouseListener()方法(或addMouseMoiionListener。方法)將監(jiān)聽器綁定到事件源上。

三十、焦點(diǎn)事件幾個級別?

焦點(diǎn)事件有持久性和暫時性兩個級別。當(dāng)焦點(diǎn)直接從一個處件移到另一個組件時,會發(fā)

生持久性焦點(diǎn)變更事件;如果失去焦點(diǎn)則是暫時性的,例如,在窗口被拖放時會失去焦點(diǎn),

而拖放結(jié)束后就會自動恢復(fù)焦點(diǎn),這就是暫時性焦點(diǎn)變更事件。利用FocusEvent類中的

publicbooleanisTemporary(方法可以返回焦點(diǎn)變更的級別,返回true表示暫時性的,返回false

表示持久性的。

項目71/0操作

三十一、要構(gòu)造一個File對象,需要傳入文件路徑,可以是絕對路徑,也可以

是相對路徑。語法格式有幾種?

I.File(Stringpathname).,

該構(gòu)造方法使用參數(shù)pathname指定包含文件名的路徑。V/indows平臺使用作為路

徑分隔符,在Java字符串中需要用轉(zhuǎn)義字符“W”表示也可以直接使用/進(jìn)行路徑分隔。

Linux平臺使用“廣作為路徑分隔符。

2.File(Stringparent,Stringchild)0

該構(gòu)造方法通過指定父路徑parent和子路徑child傳入文件路徑。父路徑是磁盤根目錄

或磁盤中的某個文件夾,如D:/或D:/workspace/。子路徑是包含文件類型后綴的文件名,如

stars.txto因此,上面的代碼也可以寫成如下形式:

Filefilel=newFile("D:/workspace/",''stars.txt");

Filefilel=newFileC'DiWwcrkspaceW'V'stars.txt");

3,File(Filef,Stringchild)。

該構(gòu)造方法根據(jù)磁盤中的某個文件夾f(稱為父File對象)和要創(chuàng)建的文件名child(稱為了

File對象)創(chuàng)建File對象。例如,上面的代碼也可以寫成如下形式:

Filefl=newFile("D:/workspace/");〃創(chuàng)建父File對象

Filefilcl=ncwFilc(flJslars.ixl");//絕對路徑是D:\workspacc\stars.txt

三十二、創(chuàng)建文件的語法格式是什么?

使用File類創(chuàng)建File對象后,如果File對象指向的文件不存在,則可以調(diào)用creaieNew

File。方法創(chuàng)建文件,語法格式如下:

BooleancreateNewFileO

三十三、調(diào)用mkdirO方法創(chuàng)建單個文件夾和多級目錄的流程?

Booleanmkdir():創(chuàng)建一個文件夾,路徑名由當(dāng)前File對象指定。若創(chuàng)建成功,則返回true,

否則返回false。

Booleanmkdirs。:創(chuàng)建多級目錄,路徑名由當(dāng)前File對■象指定。

與文件操作類似,無論是創(chuàng)建文件夾還是刪除文件夾,都需要先調(diào)用exists。方法判斷

文件夾是否存在。

三十四、Java在FiIe類中提供了兩個列出文件夾內(nèi)容的方法。

1.list。方法

該方法使用字符串?dāng)?shù)組返回當(dāng)前File對象表本的目錄中所有的文件和文件夾名稱。

2.1istFiles()方法

該方法的功能與list。方法相同,不同的是,該方法會列出文件的完整路徑,返【可值為

一個File對象數(shù)組。

三十五、如何使用RandomAccessFile類的以下兩種形式的構(gòu)造方法創(chuàng)建隨機(jī)

流?

RandomAccessFilc(S(rinoname.Stringmode)。

RandomAccessFilc(Filefile.Stringmode),

項目8網(wǎng)絡(luò)編程基礎(chǔ)

三十六、在網(wǎng)絡(luò)通信過程中分為兩種端點(diǎn),即服務(wù)器端與客戶端,圍繞這兩種端

點(diǎn)產(chǎn)生了網(wǎng)絡(luò)應(yīng)用程序設(shè)計的兩種模式是什么?

1.C/S模式

這種模式將網(wǎng)絡(luò)事務(wù)處理分為客戶端和服務(wù)器端兩個部分,客戶端用于為用戶提供操作

平臺,同時為網(wǎng)絡(luò)提供請求服務(wù)的接口:服務(wù)器端負(fù)責(zé)接收和處理客戶端發(fā)出的服務(wù)請求,

并將處理結(jié)果返回客戶端。因此,這種模式要開發(fā)兩套程序,一套是客戶端,另一套是服務(wù)

器端。在進(jìn)行維護(hù)時,也需要維護(hù)兩套程序,而且客戶端的程序更新必須及時。C/S模式的

主要特點(diǎn)是交互性強(qiáng)、具有安全的存取模式、網(wǎng)絡(luò)通信量低、響應(yīng)速度快、程序安全性高。

2.B/S模式

這種模式是伴隨Internet技術(shù)的興起而發(fā)展起來的,是對C/S模式的改進(jìn),僅使用HTTP

協(xié)議進(jìn)行通信,主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),無須安裝客戶端,Web瀏覽器即客戶端,

因此只需要針對服務(wù)器端開發(fā)一套程序。這種模式在日后進(jìn)行程序維護(hù)時只需維護(hù)服務(wù)器端

即可,分布性強(qiáng),開發(fā)簡單,維護(hù)方便,但此類程序使用公共端口,包括公共協(xié)議,所以安

全性很低.對于實(shí)現(xiàn)復(fù)雜的應(yīng)用構(gòu)造也有較大的困難.

三十七、網(wǎng)絡(luò)編程主要涉及的TCP、UDP和IP協(xié)議是什么?

1.TCP協(xié)議

TCP(TransniissionControlProtocol,傳輸控制協(xié)議)提供了兩臺計?算機(jī)之間可靠的數(shù)據(jù)傳

送,也就是說,可以保證數(shù)據(jù)能夠確實(shí)被送達(dá),而且被送達(dá)的數(shù)據(jù)的排列順序和被送出時的

順序相同。因此,TCP協(xié)議常被應(yīng)用于可靠性要求比較高的場合。

2.UDP協(xié)議

UDP(UserDatagramPromol,用戶數(shù)據(jù)報協(xié)議)是無連接通信協(xié)議,以獨(dú)立發(fā)送數(shù)據(jù)報的

方式向若干個目標(biāo)發(fā)送數(shù)據(jù),或接收來自若干個源發(fā)送的數(shù)據(jù),不保證數(shù)據(jù)的可靠傳輸,也

就是說,數(shù)據(jù)不一定能被送達(dá),被送達(dá)的數(shù)據(jù)的排列順序和被送出時的順序也不一定相同。

因此,UDP協(xié)議適用于?一些對數(shù)據(jù)準(zhǔn)確性要求不高,但對傳輸速度和時效性要求非常高的

網(wǎng)站。

3.TCP/IP協(xié)議

TCP/IP(TransmissionControlProtocol/InternetProtocol,傳瑜控制|辦議/互聯(lián)網(wǎng)|辦議)是

Internet最基本的通信協(xié)議,在全球范圍內(nèi)實(shí)現(xiàn)了不同硬件結(jié)構(gòu)、不同操作系統(tǒng)、不同網(wǎng)絡(luò)

系統(tǒng)之間的互聯(lián)。其中的每臺主機(jī)都用網(wǎng)絡(luò)為其分配的Inicrncl地址(即IP地址)進(jìn)行唯一標(biāo)

識。

三十八、什么是IP地址和端口?

在TCP/IP協(xié)議中,IP地址用于唯一地標(biāo)識一臺接收或發(fā)送數(shù)據(jù)的計算機(jī)。目前,廣泛

使用的IP地址版本是IPv4,用4個字節(jié)的一進(jìn)制數(shù)表示.為便于記憶和處理,通常將IP地

址寫成卜進(jìn)制的形式,每個字節(jié)用一個上進(jìn)制數(shù)(0?255)表示,數(shù)與數(shù)之間用符號分開,

如127.001,該地址表示本機(jī)IP地址,通常用于測試本機(jī)TCP/IP協(xié)議是否正常。

IP地址由兩部分組成,即“網(wǎng)絡(luò)號.主機(jī)號”。IP地址的前3個字節(jié)為網(wǎng)絡(luò)號,是網(wǎng)絡(luò)

的地址編碼,用于標(biāo)識主機(jī)所在的網(wǎng)絡(luò):IP地址的最后一個字節(jié)為主機(jī)號,是網(wǎng)絡(luò)中一臺

主機(jī)的地址編碼,具體表示網(wǎng)絡(luò)中的一臺主機(jī)。端口是用兩個字節(jié)(16位的二進(jìn)制數(shù))表示的

0?65535的整數(shù)。其中,。?1023的端口由預(yù)先定義的服務(wù)通信占用,例如,HTTP服務(wù)使

用80端口,F(xiàn)TP服務(wù)使用21端口。用戶的普通網(wǎng)絡(luò)應(yīng)用程序則需要使用1024以上的端口

以避免發(fā)生端口沖突。

三十九、ServerSocket類的構(gòu)造方法有幾種形式,通常會拋出10Exception

異常?

1.ServerSockel。。

該構(gòu)造方法用于創(chuàng)建沒有綁定端口的服務(wù)器端套接字對象,這種ServerSocket對象創(chuàng)

建的服務(wù)器端不監(jiān)聽任何端口,因此不能被直接使用。在后續(xù)操作中需要調(diào)用bind。方法將

其綁定到指定的端口上,才可以正常使用。

2.ServerSocket(import)o

該構(gòu)造方法用丁創(chuàng)建綁定到特定端口的服務(wù)器端套接字對象。

3.ServerSocket(intj)ort,intbacklog)o

該構(gòu)造方法用于創(chuàng)建綁定到特定端口的服務(wù)器端套接字對象,并指定在服務(wù)器忙時可以

與之保持連接請求的等待客戶端數(shù)量backlogo

(4)ServcrSockei(inlpori,irtbacklog,InctAddressbindAddress)o

該構(gòu)造方法使用指定的端口、偵聽backlog和要綁定到的IP地址創(chuàng)建服務(wù)器端套接字

對象,適用于計算機(jī)上有多塊網(wǎng)上和多個IP地址的情況,用戶可以明確規(guī)定ServerSocket

對象在哪塊網(wǎng)卡或哪個IP地址上等待客戶端的連接請求。

四十、Socket類的構(gòu)造方法有哪幾種形式,通常會拋出10Exception異常?

⑴Socket。。

該構(gòu)造方法用于創(chuàng)建沒有連接任何服務(wù)器的客戶端套接字對象。該構(gòu)造方法創(chuàng)建的

Socket對象不能被直接使用,在后續(xù)操作中需要調(diào)用connect。方法指定封裝了服務(wù)器端IP

地址和端口的SocketAddress對象,才口J以與指定的服務(wù)器端建立連接。

(2)Sockct(Stringhost,import)。

該構(gòu)造方法用于創(chuàng)建連接到運(yùn)行在指定地址和端口上的服務(wù)器端程序的客戶端套接字

對象。參數(shù)host是服務(wù)器端的【P地址,port是一個端口。

(3)Socket(InetAddressaddress,inlporl)。

該構(gòu)造方法與第⑵種形式的構(gòu)造方法類似,用于創(chuàng)建連接到運(yùn)行在指定地址和端口上

的服務(wù)器端程序的客戶端套接字對象。

項目9多線程技術(shù)

四十一、線程的狀態(tài)為哪些?

1.新建狀態(tài)

在一個線程對象被聲明并創(chuàng)建時,該線程就處于新建狀態(tài),此時僅由JVM為其分配內(nèi)

存空間,并初始化其成員變量的值。

2.就緒狀態(tài)

線程對象調(diào)用start。方法之后,該線程就處于就緒狀態(tài),進(jìn)入線程隊列排隊,等待調(diào)度

運(yùn)行。

3.運(yùn)行狀態(tài)

如果處于就緒狀態(tài)的線程獲得了CPU資源,就開始執(zhí)行run()方法中的線程執(zhí)行體,

此時該線程處于運(yùn)行狀態(tài)。run。方法規(guī)定了線程的具體使命。在線程的run。方法結(jié)束之前,

不能再調(diào)用該線程的slart()方法,否則會發(fā)生IlegalThreadStateException異常。

4.阻塞狀態(tài)

當(dāng)處于運(yùn)行狀態(tài)的線程失去所占用的資源之后,便進(jìn)入阻塞狀態(tài)。

5.消亡狀態(tài)

線程因異常被強(qiáng)制結(jié)束運(yùn)行或執(zhí)行完nin()方法后,就會處于消亡狀態(tài)。此時的線程已

釋放分配給它的內(nèi)存,不再具有繼續(xù)運(yùn)行的能力。

四十二、在Java中,線程進(jìn)入阻塞狀態(tài)可能哪些原因。?

1.JVM將CPU資源切浜給其他線程。

2.線程執(zhí)行了sieep(intmillsecond)方法進(jìn)入休眠。經(jīng)過指定的時間(millsecond)之后,

該線程將重新進(jìn)入線程隊列等候CPU資源,以便從中斷處繼續(xù)運(yùn)行。

3.線程執(zhí)行了wail。方法進(jìn)入等待狀態(tài)。在這種情況下,必須由其他線程調(diào)用notifyO方

法通知它重新進(jìn)入線程隊列等候CPU資源,以便從中斷處繼續(xù)運(yùn)行。

4.線程執(zhí)行某個操作(例如,執(zhí)行耗時的I/O操作)進(jìn)入阻塞狀態(tài)。在這種情況下,只有

當(dāng)引起阻塞的原因消除時,該線程才會重新進(jìn)入線程隊列等候CPU資源,以便從中斷處

繼續(xù)運(yùn)行。

四十三、繼承Thread類創(chuàng)建多線程的步驟?

1.繼承Thread類,并重與run。方法。

Thread類中的run()方法沒有具體內(nèi)容,需要在子類中重寫該方法來規(guī)定線程要完成的

具體任務(wù)。run()方法通常也被稱為線程執(zhí)行體。

2.創(chuàng)建Thread子類的實(shí)例,即創(chuàng)建線程對象。

3.調(diào)用線程對象的slart()方法啟動線程。

線程對象被創(chuàng)建之后,不會自動進(jìn)入線程隊列,JVM也不知道它的存在。此時需要調(diào)

用siari()方法啟動線程,然后進(jìn)入

溫馨提示

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

最新文檔

評論

0/150

提交評論