初級Java工程師面試題一_第1頁
初級Java工程師面試題一_第2頁
初級Java工程師面試題一_第3頁
初級Java工程師面試題一_第4頁
初級Java工程師面試題一_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

初級Java工程師面試題(1)

基本概念問題

1、面向?qū)ο蟮奶卣饔心男┓矫妫?/p>

1)抽象:抽象就是忽略一個主題中與當前目標無關(guān)的那些方面,以便

更充分地注意與當前目標有關(guān)的方面。抽象并不打算了解全部問題,

而只是選擇其中的一部分,暫時不用部分細節(jié)。抽象包括兩個方面,

一是過程抽象,二是數(shù)據(jù)抽象。

2)繼承:繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,

它提供了一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類

中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為

原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生

類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加

新的方法使之更適合特殊的需要。

3)封裝:封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定

義的界面。面向?qū)ο笥嬎闶加谶@個基本概念,即現(xiàn)實世界可以被描繪

成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪

問其他對象。

4)多態(tài)性:多態(tài)性是指允許不同類的對象對同一消息作出響應。多態(tài)

性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行

為共享、代碼共享的優(yōu)勢,很好的解決了應用程序函數(shù)同名問題。

2、作用域public,private,protected,以及不寫時的區(qū)別?

區(qū)別如下

作用域當前類同包子孫類其他

public^/44?

protected744x

default^/Yxx

private^/xxx

不寫時默認為defual

3、String是最基本的數(shù)據(jù)類型嗎?

不是。

4、float型floatf=3.4是否正確?

不正確;精度不準確,應該用強制類型轉(zhuǎn)換,如下所示:float

f=(float)3.4o

5、語句floatf=1.3;編譯能否通過?

不能;應該用強制類型轉(zhuǎn)換,如下所示:floatf=(float)1.3;o

6、shortsi=1;si=si+1;有什么錯?

shortsi=1;si+=1;有什么錯?

shortsi=1;si=si+l;sl+l運算結(jié)果是int型,需要強制轉(zhuǎn)換類

型;

shortsi=l;sl+=1;可以正確編譯,自動類型提升。

7、Java有沒有g(shù)oto?

goto是java中的保留字,現(xiàn)在沒有在java中使用。

8、int和Integer有什么區(qū)別?

Java提供兩種不同的類型:引用類型和原始類型(或內(nèi)置類型);

int是java的原始數(shù)據(jù)類型,Integer是java為int提供的封裝

類。

Java為每個原始類型提供了封裝類:

原始類型:boolean,char,byte,short,int,long,float,double

封裝類型:Boolean,Character,Byte,Short,Integer,Long,

Float,Double

引用類型和原始類型的行為完全不同,并且它們具有不同的語義。引

用類型和原始類型具有不同的特征和用法,它們包括:大小和速度問

題,這種類型以哪種類型的數(shù)據(jù)結(jié)構(gòu)存儲,當引用類型和原始類型用

作某個類的實例數(shù)據(jù)時所指定的缺省值。對象引用實例變量的缺省值

為null,而原始類型實例變量的缺省值與它們的類型有關(guān)。

9、&和&&的區(qū)別?

&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與

(and)。

10、簡述邏輯操作(&,|「)與條件操作(&&,||)的區(qū)別?

區(qū)別主要有兩點:a.條件操作只能操作布爾型的,而邏輯操作不僅可

以操作布爾型,而且可以操作數(shù)值型b.邏輯操作不會產(chǎn)生短路。

11、heap和stack有什么區(qū)別?

棧是一種線形集合,其添加和刪除元素的操作應在同一段完成,棧按

照后進先出的方式進行處理;堆是棧的一個組成元素。

12、Math.round(l1.5)等于多少?Math.round(-11.5)等于多少?

Math.round(l1.5)==12Math.round(-11.5)==-11round方法返回與參

數(shù)最接近的長整數(shù),參數(shù)加1/2后求其flooro

13、swtich是否能作用在byte上,是否能作用在long上,是

否能作用在String上?

switch(exprl)中,exprl是一個整數(shù)表達式。因此傳遞給switch和

case語句的參數(shù)應該是int、short>char或者byte。long,string都不

能作用于swticho

14、編程題:用最有效率的方法算出2乘以8等於幾?

2?3o

15、有沒有l(wèi)ength。這個方法?String有沒有l(wèi)ength。這個方

法?

數(shù)組沒有l(wèi)ength。這個方法,有l(wèi)ength的屬性。String有l(wèi)ength。這

個方法。

16、在JAVA中,如何跳出當前的多重嵌套循環(huán)?

在最外層循環(huán)前加label標識,然后用breaklabel方法即可跳出多重循

環(huán)。

17、構(gòu)造器Constructor是否可被override?

構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以

被重載Overloadingo

18、兩個對象值相同(x.equals(y)==true),但卻可有不同的

hashcode,這句話對不對?

不對,有相同的hashcode。

19、是否可以繼承String類?

String類是final類,故不可以繼承。

20、以下二條語句返回值為true的有:

A:“beijing"=="beijing”;

B:"beijing".equalsIgnoreCase(newString("beijing"));

A和B。

21、當一個對象被當作參數(shù)傳遞到一個方法后,此方法可改

變這個對象的屬性,并可返回變化后的結(jié)果,那么這里到底

是值傳遞還是引用傳遞?

是值傳遞。Java編程語言只有值傳遞參數(shù)。當一個對象實例作為一

個參數(shù)被傳遞到方法中時,參數(shù)的值就是對該對象的引用。對象的內(nèi)

容可以在被調(diào)用的方法中改變,但對象的引用是永遠不會改變的。

23、String和StringBuffer的區(qū)別?

JAVA平臺提供了兩個類:String和StringBuffer,它們可以儲存和

操作字符串,即包含多個字符的字符數(shù)據(jù)。這個String類提供了數(shù)

值不可改變的字符串。而這個StringBuffer類提供的字符串進行修

改。當你知道字符數(shù)據(jù)要改變的時候你就可以使用StringBuffer。典

型地,你可以使用StringBuffers來動態(tài)構(gòu)造字符數(shù)據(jù)。

24、String,StringBufferStringBuilder的區(qū)別。

String的長度是不可變的;

StringBuffer的長度是可變的,如果你對字符串中的內(nèi)容經(jīng)常進行操

作,特別是內(nèi)容要修改時,那么使用StringBuffer,如果最后需要

String,那么使用StringBuffer的toString。方法;線程安全;

StringBuilder是從JDK5開始,為StringBuffer該類補充了一個單個

線程使用的等價類;通常應該優(yōu)先使用StringBuilder類,因為它支

持所有相同的操作,但由于它不執(zhí)行同步,所以速度更快。

25、Overload和Override的區(qū)別。Overloaded的方法是否可

以改變返回值的類型?

方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表

現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載

Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方

法與其父類有相同的名稱和參數(shù),我們說該方法被重寫

(Overriding)o子類的對象使用這個方法時,將調(diào)用子類中的定義,

對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多

個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱

為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的

類型。

27、描述一下JVM加載class文件的原理機制?

JVM中類的裝載是由ClassLoader和它的子類來實現(xiàn)的,Java

ClassLoader是一個重要的Java運行時系統(tǒng)組件。它負責在運行時查

找和裝入類文件的類。

28、char型變量中能不能存貯一個中文漢字?為什么?

能夠定義成為一個中文的,因為java中以unicode編碼,一個char

占16個字節(jié),所以放一個中文是沒問題的。

29、abstractclass和interface有什么區(qū)別?

聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstractclass),

它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不

能在該類中實現(xiàn)該類的情況。不能創(chuàng)建abstract類的實例。然而可以

創(chuàng)建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實

例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract類的子類為它們

父類中的所有抽象方法提供實現(xiàn),否則它們也是抽象類為。取而代

之,在子類中實現(xiàn)該方法。知道其行為的其它類可以在類中實現(xiàn)這些

方法。接口(interface)是抽象類的變體。新型多繼承性可通過實現(xiàn)

這樣的接口而獲得。接口中的所有方法都是抽象的,所有成員變量都

是publicstaticfinal的。一個類可以實現(xiàn)多個接口,當類實現(xiàn)特殊接

口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可

以在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。由于有抽象

類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生

效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof運算符

可以用來決定某對象的類是否實現(xiàn)了接口。

30、StaticNestedClass和InnerClass的不同?

StaticNestedClass是被聲明為靜態(tài)(static)的內(nèi)部類,它可以不依

賴于外部類實例被實例化。而通常的內(nèi)部類需要在外部類實例化后才

能實例化。

31、java中會存在內(nèi)存泄漏嗎,請簡單描述。

會;存在無用但可達的對象,這些對象不能被GC回收,導致耗費內(nèi)

存資源。

32、abstract的method是否可同時是static,是否可同時是

native,是否可同時是synchronized?

都不能。

33、靜態(tài)變量和實例變量的區(qū)別?

靜態(tài)變量也稱為類變量,歸全類共有,它不依賴于某個對象,可通過

類名直接訪問;而實例變量必須依存于某一實例,只能通過對象才能

訪問到它。

34、是否可以從一個static方法內(nèi)部發(fā)出對非static方法的調(diào)

用?

不可以,如果其中包含對象的method(),不能保證對象初始化。

35、寫clone。方法時,通常都有一行代碼,是什么?

Clone有缺省行為:super.clone。,他負責產(chǎn)生正確大小的空間,并

逐位復制。

36、GC是什么?為什么要有GC?

GC是垃圾收集的意思(GabageCollection),內(nèi)存處理是編程人員容

易出現(xiàn)問題的地方,忘記或者錯誤的內(nèi)存回收會導致程序或系統(tǒng)的不

穩(wěn)定甚至崩潰,Java提供的GC功能可以自動監(jiān)測對象是否超過作

用域從而達到自動回收內(nèi)存的目的,Java語言沒有提供釋放已分配

內(nèi)存的顯示操作方法。Java程序員不用擔心內(nèi)存管理,因為垃圾收

集器會自動進行管理。要請求垃圾收集,可以調(diào)用下面的方法之一:

System.gc()或Runtime.getRuntime().gc()。

37、垃圾回收的優(yōu)點和原理。并考慮2種回收機制。

Java語言中一個顯著的特點就是引入了垃圾回收機制,使C++程序員

最頭疼的內(nèi)存管理的問題迎刃而解,它使得Java程序員在編寫程序

的時候不再需要考慮內(nèi)存管理。由于有個垃圾回收機制,Java中的

對象不再有“作用域''的概念,只有對象的引用才有"作用域垃圾回

收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。垃圾回收

器通常是作為一個單獨的低級別的線程運行,不可預知的情況下對內(nèi)

存堆中已經(jīng)死亡的或者長時間沒有使用的對象進行清楚和回收,程序

員不能實時的調(diào)用垃圾回收器對某個對象或所有對象進行垃圾回收。

收機制有分代復制垃圾回收和標記垃圾回收,增量垃圾回收。

38、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回

收內(nèi)存嗎?有什么辦法主動通知虛擬機進行垃圾回收?

對于GC來說,當程序員創(chuàng)建對象時,GC就開始監(jiān)控這個對

象的地址、大小以及使用情況。通常,GC采用有向圖的方式

記錄和管理堆(heap)中的所有對象。通過這種方式確定哪些對

象是“可達的",哪些對象是"不可達的"。當GC確定一些對象

為“不可達"時,GC就有責任回收這些內(nèi)存空間??梢?。程序

員可以手動執(zhí)行System.gc。,通知GC運行,但是Java語言

規(guī)范并不保證GC一定會執(zhí)行。

39、Strings=newString("xyz'');創(chuàng)建了幾個StringObject?

兩個對象,一個是"xyx",一個是指向"xyx"的引用對象s。

40、接口是否可繼承接口?抽象類是否可實現(xiàn)(implements)接

□?抽象類是否可繼承實體類(concreteclass)?

接口可以繼承接口。抽象類可以實現(xiàn)(implements)接口,抽象類可繼

承實體類,但前提是實體類必須有明確的構(gòu)造函數(shù)。

41、Java的接口和C++的虛類的相同和不同處。

由于Java不支持多繼承,而有可能某個類或?qū)ο笠褂梅謩e在幾個

類或?qū)ο罄锩娴姆椒ɑ驅(qū)傩?,現(xiàn)有的單繼承機制就不能滿足要求。與

繼承相比,接口有更高的靈活性,因為接口中沒有任何實現(xiàn)代碼。當

一個類實現(xiàn)了接口以后,該類要實現(xiàn)接口里面所有的方法和屬性,并

且接口里面的屬性在默認狀態(tài)下面都是publicstatic,所有方法默認情

況下是public.一個類可以實現(xiàn)多個接口。

42、一個".java”源文件中是否可以包含多個類(不是內(nèi)部

類)?有什么限制?

可以;必須只有一個類名與文件名相同。

43、說出一些常用的類,包,接口,請各舉5個。

常用的類:BufferedReaderBufferedWriterFileReaderFileWirter

StringInteger;

常用的包:java.langjava.awtjava.iojava.utiljava.sql;

常用的接口:RemoteListMapDocumentNodeList

44、AnonymousInnerClass(匿名內(nèi)部類)是否可以

extends(繼承)其它類?是否可以implements(實現(xiàn))interface(接口)?

可以繼承其他類或?qū)崿F(xiàn)其他接口,在swing編程中常用此方式。

45、內(nèi)部類可以引用他包含類的成員嗎?有沒有什么限制?

一個內(nèi)部類對象可以訪問創(chuàng)建它的外部類對象的內(nèi)容。

46、java中實現(xiàn)多態(tài)的機制是什么?

方法的覆蓋Overriding和重載Overloading是java多態(tài)性的不同表

現(xiàn);覆蓋Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載

Overloading是一個類中多態(tài)性的一種表現(xiàn)。

47、在java中一個類被聲明為final類型,表示了什么意思?

表示該類不能被繼承,是頂級類。

48、下面哪些類可以被繼承?

1)java.lang.Thread(T)

2)java.lang.Number(T)

3)java.lang.Double(F)

4)java.lang.Math(F)

5)java.lang.Void(F)

6)java.lang.Class(F)

7)java.lang.ClassLoader(T)

1、2、7可以被繼承。

49、數(shù)據(jù)類型之間的轉(zhuǎn)換:

1)如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字?

2)如何將數(shù)字轉(zhuǎn)換為字符?

3)如何取小數(shù)點前兩位并四舍五入?

1)調(diào)用數(shù)值類型相應包裝類中的方法parse***(String)或

valueOf(String)即可返回相應基本類型或包裝類型數(shù)值;

2)將數(shù)字與空字符串相加即可獲得其所對應的字符串;另外對于基本

類型數(shù)字還可調(diào)用String類中的valueOf(…)方法返回相應字符串,而

對于包裝類型數(shù)字則可調(diào)用其toString。方法獲得相應字符串;

3)可用該數(shù)字構(gòu)造一java.math.BigDecimal對象,再利用其round。方

法進行四舍五入到保留小數(shù)點后兩位,再將其轉(zhuǎn)換為字符串截取最后

兩位。

50、字符串操作:如何實現(xiàn)字符串的反轉(zhuǎn)及替換?

可用字符串構(gòu)造一StringBuffer對象,然后調(diào)用StringBuffer中的

reverse方法即可實現(xiàn)字符串的反轉(zhuǎn),調(diào)用replace方法即可實現(xiàn)字符

串的替換。

51、編碼轉(zhuǎn)換:怎樣將GB2312編碼的字符串轉(zhuǎn)換為ISO-

8859-1編碼的字符串?

示例代碼如下:

Stringsi="你好";

Strings2=newString(s1.getBytes("GB2312"),"ISO-8859-1");

52、java和javasciprt的區(qū)別。

JavaScript與Java是兩個公司開發(fā)的不同的兩個產(chǎn)品。Java是SUN

公司推出的新一代面向?qū)ο蟮某绦蛟O計語言,特別適合于Internet應

用程序開發(fā);而JavaScript是Netscape公司的產(chǎn)品,其目的是為了

擴展NetscapeNavigator功能,而開發(fā)的一種可以嵌入Web頁面中的

基于對象和事件驅(qū)動的解釋性語言,它的前身是LiveScript;而Java

的前身是Oak語言。下面對兩種語言間的異同作如下比較:

1)基于對象和面向?qū)ο螅?/p>

Java是一種真正的面向?qū)ο蟮恼Z言,即使是開發(fā)簡單的程序,必

須設計對象;

JavaScript是種腳本語言,它可以用來制作與網(wǎng)絡無關(guān)的,與用戶交

互作用的復雜軟件。它是一種基于對象(ObjectBased)和事件驅(qū)動

(EventDriver)的編程語言。因而它本身提供了非常豐富的內(nèi)部對

象供設計人員使用;

2)解釋和編譯:

Java的源代碼在執(zhí)行之前,必須經(jīng)過編譯;

JavaScript是一種解釋性編程語言,其源代碼不需經(jīng)過編譯,由瀏覽

器解釋執(zhí)行;

2)強類型變量和類型弱變量:

Java采用強類型變量檢查,即所有變量在編譯之前必須作聲明;

JavaScript中變量聲明,采用其弱類型。即變量在使用前不需作聲

明,而是解釋器在運行時檢查其數(shù)據(jù)類型;

4)代碼格式不一樣。

53、什么時候用assert?

assertion(斷言)在軟件開發(fā)中是一種常用的調(diào)試方式,很多開發(fā)語言

中都支持這種機制。一般來說,assertion用于保證程序最基本、關(guān)鍵

的正確性。

assertion檢查通常在開發(fā)和測試時開啟。為了提高性能,在軟件發(fā)布

后,assertion檢查通常是關(guān)閉的。在實現(xiàn)中,斷言是一個包含布爾表

達式的語句,在執(zhí)行這個語句時假定該表達式為true;如果表達式計

算為false,那么系統(tǒng)會報告一個Assertionerroro

斷言用于調(diào)試目的:

assert(a>0);//throwsanAssertionerrorifa<=0

斷言可以有兩種形式:

assertExpression1;

assertExpression1:Expression?;

Expression1應該總是產(chǎn)生一個布爾值。

Expression?可以是得出一個值的任意表達式;這個值用于生成顯示

更多調(diào)試信息的String消息。

斷言在默認情況下是禁用的,要在編譯時啟用斷言,需使用source

1.4標記:

javac-source1.4Test.java

要在運行時啟用斷言,可使用-enableassertions或者-ea標記。

要在運行時選擇禁用斷言,可使用-da或者-disableassertions標記。

要在系統(tǒng)類中啟用斷言,可使用-esa或者-dsa標記。還可以在包的基

礎上啟用或者禁用斷言。可以在預計正常情況下不會到達的任何位置

上放置斷言。斷言可以用于驗證傳遞給私有方法的參數(shù)。不過,斷言

不應該用于驗證傳遞給公有方法的參數(shù),因為不管是否啟用了斷言,

公有方法都必須檢查其參數(shù)。不過,既可以在公有方法中,也可以在

非公有方法中利用斷言測試后置條件。另外,斷言不應該以任何方式

改變程序的狀態(tài)。

54、error和exception有什么區(qū)別

error表示恢復不是不可能但很困難的情況下的一種嚴重問題。比

如說內(nèi)存溢出。不可能指望程序能處理這樣的情況exception表示

一種設計或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運行正常,從不會

發(fā)生的情況

55、ArrayList和Vector的區(qū)別

主要從二方面來說.

一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList

是線程序不安全的,不是同步的

二.數(shù)據(jù)增長:當需要增長時,Vector默認增長為原來一培,而

ArrayList卻是原來的一半。

56、Collection和Collections的區(qū)別Collection是集合類的上級

接口,繼承與他的接口主要有Set和List.Collections是針對集合類的

一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、

線程安全化等操作。

57、Set里的元素是不能重復的,那么用什么方法來區(qū)分重復

與否呢?是用==還是equals()?它們有何區(qū)別Set里的元素是不

能重復的,那么用iterator。方法來區(qū)分重復與否。equals。是判讀兩

個Set是否相等equals(^h=方法決定引用值是否指向同一對象

equals。在類中被覆蓋,為的是當兩個分離的對象的內(nèi)容和類型相配

的話,返回真值

58、HashMap和Hashtable的區(qū)別

HashMap與HashTable主要從三方面來說。一.歷史原因:Hashtable

是基于陳舊的Dictionary類的,HashMap是Java1.2引進的Map接

口的一個實現(xiàn)二.同步性:Hashtable是線程安全的,也就是說是同步

的,而HashMap是線程序不安全的,不是同步的三.值:只有

HashMap可以讓你將空值作為一個表的條目的key或value。

59、說出ArrayList,Vector,LinkedList的存儲性能和特性

ArrayList和Vector都是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素數(shù)大于

實際存儲的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號索引元

素,但是插入元素要涉及數(shù)組元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快

而插入數(shù)據(jù)慢,Vector由于使用了synchronized方法(線程安

全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現(xiàn)

存儲,按序號索引數(shù)據(jù)需要進行前向或后向遍歷,但是插入數(shù)據(jù)時只

需要記錄本項的前后項即可,所以插入速度較快。

60、java中有幾種類型的流?JDK為每種類型的流提供了一

些抽象類以供繼承,請說出他們分別是哪些類?

字節(jié)流,字符流。字節(jié)流繼承于InputStreamOutputstream,字符流

繼承于InputStreamReaderOutputStreamWritero在java.io包中還有

許多其他的流,主要是為了提高性能和使用方便。69、文件讀寫的

基本類

FileReader類和FileWriter類分別繼承自Reader類和Writer類。

FileReader類用于讀取文件,F(xiàn)ileWriter類用于將數(shù)據(jù)寫入文件,這

兩各類在使用前,都必須要調(diào)用其構(gòu)造方法創(chuàng)建相應的對象,然后調(diào)

用相應的read?;騱rite。方法。

61、多線程有幾種實現(xiàn)方法,都是什么?同步有幾種實現(xiàn)方法,

都是什么?

多線程有兩種實現(xiàn)方法,分別是繼承Thread類與實現(xiàn)Runnable接

口,同步的實現(xiàn)方面有兩種,分別是synchronized,wait與notify。

62、啟動一個線程是用run。還是start。?

啟動一個線程是調(diào)用start。方法,使線程所代表的虛擬處理機處于可

運行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程

就會立即運行。run。方法可以產(chǎn)生必須退出的標志來停止一個線

程。

63>當一個線程進入一個對象的一個synchronized方法后,

其它線程是否可進入此對象的其它方法?

不能,一個對象的一個synchronized方法只能由一個線程訪問。

64、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關(guān)系

線程指在程序執(zhí)行過程中,能夠執(zhí)行程序代碼的一個執(zhí)行單位,每個

程序至少都有一個線程,也就是程序本身。Java中的線程有四種狀

態(tài)分別是:運行、就緒、掛起、結(jié)束。

65、sleep。和wait()有什么區(qū)別?

sleep是線程類(Thread)的方法,導致此線程暫停執(zhí)行指定時間,

給執(zhí)行機會給其他線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢

復。調(diào)用sleep不會釋放對象鎖。wait是Object類的方法,對此對象

調(diào)用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定

池,只有針對此對象發(fā)出notify方法(或notifyAU)后本線程才進

入對象鎖定池準備獲得對象鎖進入運行狀態(tài)。

66、socket通信(tcp/udp區(qū)別及JAVA的實現(xiàn)方式)

TCP——傳輸控制協(xié)議,具有極高的可靠性,保證數(shù)據(jù)包按照順序準

確到達,但其也有著很高的額外負擔。UDP——使用者數(shù)據(jù)元協(xié)

議,并不能保證數(shù)據(jù)包會被成功的送達,也不保證數(shù)據(jù)包到達的順

序,但其傳輸速度很快。

大多數(shù)我們會使用TCP,偶爾才會動用UDP,如聲音訊號,即使少

量遺失,也無關(guān)緊要。

67、什么是java序列化,如何實現(xiàn)java序列化?

序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的

內(nèi)容進行流化??梢詫α骰蟮膶ο筮M行讀寫操作,也可將流化后的

對象傳輸于網(wǎng)絡之間。序列化是為了解決在對對象流進行讀寫操作時

所引發(fā)的問題。序列化的實現(xiàn):將需要被序列化的類實現(xiàn)

Serializable接口,該接口沒有需要實現(xiàn)的方法,

implementsSerializable只是為了標注該對象是可被序列化的,然后

使用一^輸出流(如:FileOutputStream)來構(gòu)造一個

ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream

對象的writeObject(Objectobj)方法就可以將參數(shù)為obj的對象寫出

(即保存其狀態(tài)),要恢復的話則用輸入流。

68、簡述synchronized和java.util.concurrent.locks.Lock的異

同?主要相同點:Lock能完成synchronized所實現(xiàn)的所有功能主要

不同點:Lock有比synchronized更精確的線程語義和更好的性能。

synchronized會自動釋放鎖,而Lock一定要求程序員手工釋放,并

且必須在finally從句中釋放。

69、abstractclassName{privateStringname;publicabstract

booleanisStupidName(Stringname){}}大俠們,這有何錯誤?

錯。abstractmethod必須以分號結(jié)尾,且不帶花括號。

70、publicclassSomething{voiddoSomething(){private

Strings=int1=s.length。;}}有錯嗎?

錯。局部變量前不能放置任何訪問修飾符(private,public,和

protected)ofinal可以用來修飾局部變量(final如同abstract和

strictfp,都是非訪問修飾符,strictfp只能修飾class和method而非

variable)o

71、abstractclassSomething{privateabstractString

doSomething();}這好像沒什么錯吧?

錯。abstract的methods不能以private修飾。abstract的methods就

是讓子類implement(實現(xiàn))具體細節(jié)的,怎么可以用private把

abstractmethod封鎖起來呢?(同理,abstractmethod前不能力口

final)o

72、publicclassSomething{publicintaddOne(finalintx)

{return++x;}}這個比較明顯。

錯。intx被修飾成final,意味著x不能在addOnemethod中被修

改。

73^publicclassSomething

{publicstaticvoidmain(String[Jargs)

(

Othero=newOther();newSomething().addOne(o);

)

publicvoidaddOne(finalOthero)

{o.i++;})

classOther{publicinti;}

和上面的很相似,都是關(guān)于final的問題,這有錯嗎?

正確。在addOnemethod中,參數(shù)o被修飾成final。如果在addOne

method里我們修改了o的reference,(比如:o=newOther();),那么

如同上例這題也是錯的。但這里修改的是o的membervairable(成員

變量),而。的reference并沒有改變。

74、classSomething{inti;publicvoiddoSomethingO

{System.out.println("i="+i);}}有什么錯呢?看不出來啊

正確。輸出的是"i=0"。inti屬於instantvariable(實例變量,或叫成

員變量)。instantvariable有default的defaultvalue是0。

75、classSomething{finalinti;publicvoiddoSomethingO

{System.out.println("i="+i);}}和上面一題只有一個地方不

同,就是多了一個final。這難道就錯了嗎?

錯。finalinti是個final的instantvariable(實例變量,或叫成員變

量)。final的instantvariable沒有defaultvalue,必須在constructor

(構(gòu)造器)結(jié)束之前被賦予一個明確的值??梢孕薷臑?finalinti=

0;%

76、publicclassSomething{publicstaticvoidmain(String[]

args){Somethings=new

SomethingO;System.out.println("s.doSomething()returns"+

doSomethingO);}publicStringdoSomething(){return"Do

something}}看上去很完美。

錯??瓷先ピ趍ain里calldoSomething沒有什么問題,畢竟兩個

methods都在同一個class里。但仔細看,main是static的。static

method不能直接callnon-staticmethodso可改成

"System.out.println("s.doSomething()returns"+s.doSomething。);“。

同理,staticmethod不能訪問non-staticinstantvariableo

77、此處,Something類的文件名叫0therThing.javaclass

Something{privatestaticvoidmain(String[]something_to_do)

{System.out.println("Dosomething}}這個好像很明顯。

正確。從來沒有人說過Java的Class名字必須和其文件名相同。但

publicclass的名字必須和文件名相同。

78、interfaceA{intx=0;}classB{intx=1;}classC

extendsBimplementsA{publicvoid

pX(){System.out.println(x);}publicstaticvoidmain(String[]

args){newC().pX();}}

錯誤。在編譯時會發(fā)生錯誤(錯誤描述不同的JVM有不同的信息,意

思就是未明確的x調(diào)用,兩個x都匹配(就象在同時importjava.util

和java.sql兩個包時直接聲明Date一樣)。對于父類的變量,可以用

super.x來明確,而接口的屬性默認隱含為publicstaticfinal.所以可

以通過A.x來明確。

79、getParameter與getAttribute的區(qū)別?Attribute是指屬性。

Parameter是指參數(shù),由URL傳入或由FORM提交的內(nèi)容

80、以下哪一個不是賦值符號?

A.+=B.?=C.?<=D.?>=

A.很明顯是賦值符號B.<<=左移賦值C.不是D.?>=右移賦值,左

邊空出的位以0填充

81、以下哪個不是Collection的子接口?

A.ListB.SetC.SortedSetD.Map參考答案:D

82、.BufferedReader的父類是以下哪個?

A.FilterReaderB.InputStreamReaderC.PipedReaderD.

Reader參考答案:D

83、子類A繼承父類BAa=newA();則父類B構(gòu)造函數(shù)、

父類B靜態(tài)代碼塊、父類B非靜態(tài)代碼塊、子類A構(gòu)造函

數(shù)、子類A靜態(tài)代碼塊、子類A非靜態(tài)代碼塊執(zhí)行的先后

順序是?

參考答案:父類B靜態(tài)代碼塊,子類A靜態(tài)代碼塊,父類B構(gòu)造函數(shù)

->父類B非靜態(tài)代碼塊,子類A構(gòu)造函數(shù),子類A非靜態(tài)代碼塊

84、Hashtable和HashMap

Hashtable繼承自Dictionary類,而HashMap是Javal.2引進的Map

interface的一個實現(xiàn)HashMap允許將null作為一個entry的key或者

value,而Hashtable不允許還有就是,HashMap把Hashtable的

contains方法去掉了,改成containsvalue和containsKey0因為

contains方法容易讓人引起誤解。最大的不同是,Hashtable的方法

是Synchronize的,而HashMap不是,在多個線程訪問Hashtable

時,不需要自己為它的方法實現(xiàn)同步,而HashMap就必須為之提供

外同步。Hashtable和HashMap采用的hash/rehash算法都大概一

樣,所以性能不會有很大的差異。

85、當一個對象被當作參數(shù)傳遞到一個方法后,此方法可改

變這個對象的屬性,并可返回變化后的結(jié)果,那么這里到底

是值傳遞還是引用傳遞?

是值傳遞。Java編程語言只由值傳遞參數(shù)。當一個對象實例作為一

個參數(shù)被傳遞到方法中時,參數(shù)的值就是對該對象的引用。對象的內(nèi)

容可以在被調(diào)用的方法中改變,但對象的引用是永遠不會改變的。

86、Class.forName的作用?為什么要用?

調(diào)用該訪問返回一個以字符串指定類名的類的對象。

87、Jdo是什么?

JDO是Java對象持久化的新的規(guī)范,為javadataobject的簡稱,也是

一個用于存取某種數(shù)據(jù)倉庫中的對

象的標準化API。JDO提供了透明的對象存儲,因此對開發(fā)人員來

說,存儲數(shù)據(jù)對象完全不需要額外的代

碼(如JDBCAPI的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到JDO

產(chǎn)品提供商身上,使開發(fā)人員解脫出

來,從而集中時間和精力在業(yè)務邏輯上。另外,JDO很靈活,因為

它可以在任何數(shù)據(jù)底層上運行。JDBC

只是面向關(guān)系數(shù)據(jù)庫(RDBMS)JDO更通用,提供到任何數(shù)據(jù)底層的

存儲功能,比如關(guān)系數(shù)據(jù)庫、文件、

XML以及對象數(shù)據(jù)庫(ODBMS)等等,使得應用可移植性更強。

88、J2EE是什么?

Je22是Sun公司提出的多層(multi-diered),分布式(distributed),基于組

件(component-base)的企業(yè)級應用

模型(enterprieseapplicationmodel).在這樣的一個應用系統(tǒng)中,可按

照功能劃分為不同的組件,這些組件

又可在不同計算機上,并且處于相應的層次(tier)中。所屬層次包括

客戶層(clietntier)組件,web層和組

件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。

89、WEBSERVICE名詞解釋。JSWDL開發(fā)包的介紹。

JAXP、JAXM的解釋。SOAP、UDDLWSDL解釋。

WebService描述語言WSDL

SOAP即簡單對象訪問協(xié)議(SimpleObjectAccessProtocol),它是用

于交換XML編碼信息的輕量級協(xié)議。

UDDI的目的是為電子商務建立標準;UDDI是一套基于Web的、分

布式的、為WebService提供的、信息

注冊中心的實現(xiàn)標準規(guī)范,同時也包含一組使企業(yè)能將自身提供的

WebService注冊,以使別的企業(yè)能夠

發(fā)現(xiàn)的訪問協(xié)議的實現(xiàn)標準。

90、開發(fā)中都用到了那些設計模式?用在什么場合?

每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了

該問題的解決方案的核心。通過

這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需在重復相

同的工作。主要用到了MVC的設計模

式。用來開發(fā)JSP/Servlet或者J2EE的相關(guān)應用。簡單工廠模式等。

91、UML方面

標準建模語言UML。用例圖,靜態(tài)圖(包括類圖、對象圖和包圖),行為

圖,交互圖(順序圖,合作圖),實現(xiàn)圖,

92、CORBA是什么?用途是什么?

CORBA標準是公共對象請求代理結(jié)構(gòu)(CommonObjectRequest

BrokerArchitecture),由對象管理

組織(ObjectManagementGroup,縮寫為OMG)標準化。它的組成是

接口定義語言(IDL),語言綁定

(binding:也譯為聯(lián)編)和允許應用程序間互操作的協(xié)議。其目的為:

用不同的程序設計語言書寫

在不同的進程中運行為不同的操作系統(tǒng)開發(fā)

93、數(shù)據(jù)類型之間的轉(zhuǎn)換

如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double)

如何將數(shù)字轉(zhuǎn)換為字符

如何去小數(shù)點前兩位,并四舍五入。

94、如何取得年月日,小時分秒

Datedat=newDate();

dat.getYear();dat.getMonth();dat.getDay();dat.getHours();...

95、如何取得從1970年到現(xiàn)在的毫秒數(shù)

longnow=dat.getTime();

96、如何格式化日期

DateFormatedf=DateFormate.getInstance();

df.Format(dat);

97、文件和目錄(I/O)操作

如何列出某個目錄下的所有文件

如何列出某個目錄下的所有子目錄

判斷一個文件或目錄是否存在

如何讀寫文件

98、RMI/IIOP:遠程方法調(diào)用/internet對象請求中介協(xié)議,他

們主要用于通過遠程調(diào)用服務。例如,遠程有一臺計算機上

運行一個程序,它提供股票分析服務,我們可以在本地計算

機上實現(xiàn)對其直接調(diào)用。當然這是要通過一定的規(guī)范才能在

異構(gòu)的系統(tǒng)之間進行通信。RMI是JAVA特有的。

99、JNDLJAVA命名目錄服務。主要提供的功能是:提供一

個目錄系統(tǒng),讓其它各地的應用程序在其上面留下自己的索

引,從而滿足快速查找和定位分布式應用程序的功能。

100、JMSJAVA消息服務。主要實現(xiàn)各個應用程序之間的通

訊。包括點對點和廣播。

101、JAVAMAILJAVA郵件服務。提供郵件的存儲、傳輸功

能。他是JAVA編程中實現(xiàn)郵件功能的核心。相當MS中的

EXCHANGE開發(fā)包。

102、JTA:JAVA事務服務。提供各種分布式事務服務。應

用程序只需調(diào)用其提供的接口即可。

103、JAF:JAVA安全認證框架。提供一些安全控制方面的框

架。讓開發(fā)者通過各種部署和自定義實現(xiàn)自己的個性安全控

制策略。

104、EAI:企業(yè)應用集成。是一種概念,從而牽涉到好多技

術(shù)。J2EE技術(shù)是一種很好的集成實現(xiàn)。

105、J2EE的優(yōu)越性

1、基于JAVA技術(shù),平臺無關(guān)性表現(xiàn)突出

2、開放的標準,許多大型公司已經(jīng)實現(xiàn)了對該規(guī)范支持的應用服務

器。如BEA』BM,ORACLE等。

3、提供相當專業(yè)的通用軟件服務。

4、提供了一個優(yōu)秀的企業(yè)級應用程序框架,對快速高質(zhì)量開發(fā)打下

基礎

106、Java語言的11個關(guān)鍵特性.

(l)Easy:Java的語法比C++的相對簡單,另一個方面就是Java能使軟

件在很小的機器上運行,基礎解釋其和

類庫的支持的大小約為40kb,增加基本的標準庫和線程支持的內(nèi)存需

要增加125kb.

(2)分布式:Java帶有很強大的TCP/IP協(xié)議族的例程庫,Java應用程序

能夠通過URL來穿過網(wǎng)絡來訪問遠程對

象,由于servlet機制的出現(xiàn),使Java編程非常的高效,現(xiàn)在許多的大的

webserver都支持servlet.

(3)00:面向?qū)ο笤O計是把重點放在對象及對象的接口上的一個編程技

術(shù).其面向?qū)ο蠛虲++有很多不同,在

與多重繼承的處理及Java的原類模型.

(4)健壯特性:Java采取了一個安全指針模型,能減小重寫內(nèi)存和數(shù)據(jù)崩

潰的可能性。

(5)安全:Java用來設計網(wǎng)路和分布系統(tǒng),這帶來了新的安全問題,Java

可以用來構(gòu)建防病毒和防攻擊的

System.事實證明Java在防毒這一方面做的比較好.

(6)中立體系結(jié)構(gòu):Java編譯其生成體系結(jié)構(gòu)中立的目標文件格式可以

在很多處理器上執(zhí)行,編譯器產(chǎn)生的指

令字節(jié)碼(Javabytecode)實現(xiàn)此特性,此字節(jié)碼可以在任何機器上解釋

執(zhí)行.

(7)可移植性:Java中對基本數(shù)據(jù)結(jié)構(gòu)類型的大小和算法都有嚴格的規(guī)

定所以可移植性很好.

(8)多線程:Java處理多線程的過程很簡單,Java把多線程實現(xiàn)交給底下

操作系統(tǒng)或線程程序完成.所以多線程

是Java作為服務器端開發(fā)語言的流行原因之一

(9)Applet和servlet:能夠在網(wǎng)頁上執(zhí)行的程序叫Applet,需要支持

Java的瀏覽器很多,而applet支持動態(tài)的網(wǎng)

頁,這是很多其他語言所不能做到的.

107、游標的作用?如何知道游標已經(jīng)到了最后?

游標用于定位結(jié)果集的行,通過判斷全局變量@@FETCH_STATUS

可以判斷是否到了最后,通常此變量

不等于。表示出錯或到了最后。

108、說說你所熟悉或聽說過的j2ee中的幾種常用模式?及對設

計模式的一些看法

SessionFacadePattern:使用SessionBean,訪問EntityBean

MessageFacadePattern:實現(xiàn)異步調(diào)用

EJBCommandPattern:使用CommandJavaBeans取代

SessionBean,實現(xiàn)輕量級訪問

DataTransferObjectFactory:通過DTOFactory簡化EntityBean數(shù)

據(jù)提供特性

GenericAttributeAccess:通過AttibuteAccess接口簡化EntityBean

數(shù)據(jù)提供特性

BusinessInterface:通過遠程(本地)接口和Bean類實現(xiàn)相同接口

規(guī)范業(yè)務邏輯一致性

EJB架構(gòu)的設計好壞將直接影響系統(tǒng)的性能、可擴展性、可維護

性、組件可重用性及開發(fā)效率。項目越

復雜,項目隊伍越龐大則越能體現(xiàn)良好設計的重要性

109、BS與CS的聯(lián)系與區(qū)別

C/S是Client/server的縮寫。服務器通常采用高性能的PC、工作站

或小型機,并采用大型數(shù)據(jù)庫系統(tǒng),如Oracle、

SybasesInformix或SQLServer??蛻舳诵枰惭b專用的客戶端軟

件。B/S是Brower/Server的縮寫,客戶機上只要安裝

一個瀏覽器(Browser),如NetscapeNavigator或InternetExplorer,服

務器安裝Oracle、Sybase、Informix或SQLServer

等數(shù)據(jù)庫。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),

一部分事務邏輯在前端實現(xiàn),但是主要事務邏輯在服務器端

實現(xiàn)。瀏覽器通過webServer同數(shù)據(jù)庫進行數(shù)據(jù)交互。

C/S與B/S區(qū)別:

1.硬件環(huán)境不同:

C/S一般建立在專用的網(wǎng)絡上,小范圍里的網(wǎng)絡環(huán)境,局域網(wǎng)之間再通

過專門服務器提供連接和數(shù)據(jù)交換服務.

B/S建立在廣域網(wǎng)之上的,不必是專門的網(wǎng)絡硬件環(huán)境,例與電話上網(wǎng),

租用設備.信息自己管理.有比C/S更強的適

應范圍,一般只要有****作系統(tǒng)和瀏覽器就行

2.對安全要求不同

C/S一般面向相對固定的用戶群,對信息安全的控制能力很強.一般高

度機密的信息系統(tǒng)采用C/S結(jié)構(gòu)適宜.可以通

過B/S發(fā)布部分可公開信息.

B/S建立在廣域網(wǎng)之上,對安全的控制能力相對弱,可能面向不可知的

用戶。3.對程序架構(gòu)不同

C/S程序可以更加注重流程,可以對權(quán)限多層次校驗,對系統(tǒng)運行速度

可以較少考慮.

B/S對安全以及訪問速度的多重的考慮,建立在需要更加優(yōu)化的基礎

之上.比C/S有更高的要求B/S結(jié)構(gòu)的程序架構(gòu)

是發(fā)展的趨勢,從MS的.Net系列的BizTalk2000Exchange2000等,

全面支持網(wǎng)絡的構(gòu)件搭建的系統(tǒng).SUN和IBM推的

JavaBean構(gòu)件技術(shù)等,使B/S更加成熟.

4.軟件重用不同

C/S程序可以不可避免的整體性考慮,構(gòu)件的重用性不如在B/S要求

下的構(gòu)件的重用性好.

B/S對的多重結(jié)構(gòu),要求構(gòu)件相對獨立的功能.能夠相對較好的重用.就

入買來的餐桌可以再利用,而不是做在墻上的石

頭桌子

5.系統(tǒng)維護不同

C/S程序由于整體性,必須整體考察,處理出現(xiàn)的問題以及系統(tǒng)升級.

升級難.可能是再做一個全新的系統(tǒng)

B/S構(gòu)件組成,方面構(gòu)件個別的更換,實現(xiàn)系統(tǒng)的無縫升級.系統(tǒng)維護開

銷減到最小.用戶從網(wǎng)上自己下載安裝就可以實

現(xiàn)升級.

6.處理問題不同

C/S程序可以處理用戶面固定,并且在相同區(qū)域,安全要求高需求,與

****作系統(tǒng)相關(guān).應該都是相同的系統(tǒng)

B/S建立在廣域網(wǎng)上,面向不同的用戶群,分散地域,這是C/S無法作

到的.與****作系統(tǒng)平臺關(guān)系最小.

7.用戶接口不同

C/S多是建立的Window平臺上,表現(xiàn)方法有限,對程序員普遍要求較

B/S建立在瀏覽器上,有更加豐富和生動的表現(xiàn)方式與用戶交流.并且

大部分難度減低,減低開發(fā)成本.

8.信息流不同

C/S程序一般是典型的中央集權(quán)的機械式處理,交互性相對低

B/S信息流向可變化,B-BB-CB-G等信息、流向的變化,更像交易中

心。

110、j2ee常用的設計模式?說明工廠模式。

Java中的23種設計模式:

Factory(工廠模式),Builder(建造模式),F(xiàn)actoryMethod(工

廠方法模式),

Prototype(原始模型模式),Singleton(單例模式),F(xiàn)acade(門

面模式),

Adapter(適配器模式),Bridge(橋梁模式),Composite(合成

模式),

Decorator(裝飾模式),F(xiàn)lyweight(享元模式),Proxy(代理模

式),

Command(命令模式),Interpreter(解釋器模式),Visitor(訪

問者模式),

Iterator(迭代子模式),Mediator(調(diào)停者模式),Memento(備

忘錄模式),

Observer(觀察者模式),State(狀態(tài)模式),Strategy(策略模

式),TemplateMethod(模板方法模式),ChainOfResponsibility

(責任鏈模式)

工廠模式:工廠模式是一種經(jīng)常被使用到的模式,根據(jù)工廠模式實現(xiàn)

的類可以根據(jù)提供的數(shù)據(jù)生成一組類中某一個類的實例,

通常這一組類有一個公共的抽象父類并且實現(xiàn)了相同的方法,但是這

些方法針對不同的數(shù)據(jù)進行了不同的****作。首先需要

定義一個基類,該類的子類通過不同的方法實現(xiàn)了基類中的方法。然

后需要定義一個工廠類,工廠類可以根據(jù)條件生成不同

的子類實例。當?shù)玫阶宇惖膶嵗?,開發(fā)人員可以調(diào)用基類中的方法

而不必考慮到底返回的是哪一個子類的實例。

111、應用服務器與WEBSERVER的區(qū)別?

應用服務器:WeblogicTomcat、Jboss

WEBSERVER:IIS、Apache

112、應用服務器有那些?

BEAWebLogicServer,IBMWebSphereApplicationServer,

Oracle9iApplicationServer,jBoss,Tomcat

113、說出數(shù)據(jù)連接池的工作機制是什么?

J2EE服務器啟動時會建立一定數(shù)量的池連接,并一直維持不少于此

數(shù)目的池連接??蛻舳顺绦蛐枰B接時,池驅(qū)動

程序會返回一個未使用的池連接并將其表記為忙。如果當前沒有空閑

連接,池驅(qū)動程序就新建一定數(shù)量的連接,新建連接的

數(shù)量有配置參數(shù)決定。當使用的池連接調(diào)用完成后,池驅(qū)動程序?qū)⒋?/p>

連接表記為空閑,其他調(diào)用就可以使用這個連接。

114、頁面間對象傳遞的方法

request,session,application,cookie等

115、四種會話跟蹤技術(shù)

會話作用域ServletsJSP頁面描述page否是代表與一個頁面相關(guān)的對

象和屬性。一個頁面由一個編譯好的Java

Servlet類(可以帶有任何的include指令,但是沒有include動作)

表示。這既包括Servlet又包括被編譯成Servlet

的JSP頁面。request是是代表與Web客戶機發(fā)出的一個請求相關(guān)的

對象和屬性。一個請求可能跨越多個頁面,涉及多個

Web組件(由于forward指令和include動作的關(guān)系)。session是是

代表與用于某個Web客戶機的一個用戶體驗相關(guān)的

對象和屬性。一個Web會話可以也經(jīng)常會跨越多個客戶機請求。

application是是代表與整個Web應用程序相關(guān)的對象和

屬性。這實質(zhì)上是跨越整個Web應用程序,包括多個頁面、請求和

會話的一個全局作用域。

116、J2EE是技術(shù)還是平臺還是框架?

J2EE本身是一個標準,一個為企業(yè)分布式應用的開發(fā)提供的標準平

臺。J2EE也是一個框架,包括JDBC、JNDI、RMI、

JMS、EJB、JTA等技術(shù)。

117、同步和異步有何異同,在什么情況下分別使用他們?舉

例說明。

如果數(shù)據(jù)將在線程間共享。例如正在寫的數(shù)據(jù)以后可能被另一個線程

讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個線程

寫過了,那么這些數(shù)據(jù)就是共享數(shù)據(jù),必須進行同步存取。當應用程

序在對象上調(diào)用了一個需要花費很長時間來

溫馨提示

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

評論

0/150

提交評論