java基礎(chǔ)面試題(簡潔)_第1頁
java基礎(chǔ)面試題(簡潔)_第2頁
java基礎(chǔ)面試題(簡潔)_第3頁
java基礎(chǔ)面試題(簡潔)_第4頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、11、一個 ".java" 源文件中是否可以包括多個類(不是內(nèi)部類)?有什么限制?可以有多個類,但只能有一個public的類,并且public 的類名必須與文件名相一致。2、 Java java有沒有g(shù)oto?中的保留字,現(xiàn)在沒有在java中使用。3、說說 & 和 && 的區(qū)別。相同點(diǎn): && 和 & 都可以用作邏輯與的運(yùn)算符,表示邏輯與 (and),當(dāng)運(yùn)算符兩邊的表達(dá)式的結(jié)果都為整個運(yùn)算結(jié)果才為true,不同點(diǎn): && 如果第一個表達(dá)式為false,則不再計(jì)算第二個表達(dá)式,& 都計(jì)算& 還可以

2、用作位運(yùn)算符,當(dāng)操作符兩邊的表達(dá)式不是boolean 類型時(shí), & 表示按位與true時(shí),4、在JAVA中如何跳出當(dāng)前的多重嵌套循環(huán)?1.可以在外面的循環(huán)語句前定義一個標(biāo)號,然后在里層循環(huán)體的代碼中使用帶有標(biāo)號的break 語句 .2.讓外層的循環(huán)條件表達(dá)式的結(jié)果可以受到里層循環(huán)體代碼的控制,5、 switch 語句能否作用在byte 上,能否作用在long 、 String 上 ?在 switch ( expr1)中, expr1 只能是一個整數(shù)表達(dá)式或者枚舉常量(更大字體)由于含轉(zhuǎn)換為int,但是 long 和 String 類型都不符合switch 的語法規(guī)定,并且不能被隱式轉(zhuǎn)換

3、成int類型byte,short,char都可以隱6、 short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1; 有什么錯?對于前者 ; 由于 s1+1 運(yùn)算時(shí)會自動提升表達(dá)式的類型,所以結(jié)果是int 型,再賦值給short 類型器將報(bào)告需要強(qiáng)制轉(zhuǎn)換類型的錯誤。對于后者 ; 由于 += 是 java 語言規(guī)定的運(yùn)算符,java 編譯器會對它進(jìn)行特殊處理,因此可以正確編譯。s1 時(shí),編譯7、 charchar型變量中能不能存貯一個中文漢字 ?為什么 ? 型變量是用來存儲 Unicode 編碼的字符的,unicode編碼字符集中包含了漢字,所以,

4、char型變量中當(dāng)然可以存儲漢字啦。不過,某個特殊的漢字沒有被包含就不能存儲8、用最有效率的方法算出2 << 3因?yàn)閷⒁粋€數(shù)左移2乘以8等于幾?n 位,就相當(dāng)于乘以了2 的n 次方,位運(yùn)算cpu直接支持,效率最高,9、請?jiān)O(shè)計(jì)一個一百億的計(jì)算器計(jì)算機(jī)中的算術(shù)運(yùn)算是會發(fā)生越界情況的,兩個數(shù)值的運(yùn)算結(jié)果不能超過計(jì)算機(jī)中的該類型的數(shù)值范圍。要實(shí)現(xiàn)一個一百億的計(jì)算器,我們得自己設(shè)計(jì)一個類可以用于表示很大的整數(shù),并且提供了與另外一個整數(shù)進(jìn)行加減乘除的功能,大概功能如下:(1)這個類內(nèi)部有兩個成員變量,一個表示符號,另一個用字節(jié)數(shù)組表示數(shù)值的二進(jìn)制數(shù)( 2)有一個構(gòu)造方法,把一個包含有多位數(shù)值的

5、字符串轉(zhuǎn)換到內(nèi)部的符號和字節(jié)數(shù)組中(3)提供加減乘除的功能10、使用final 關(guān)鍵字修飾一個變量時(shí),是引用不能變,還是引用的對象不能變?使用final關(guān)鍵字修飾一個變量時(shí),是指引用變量不能變,引用變量所指向的對象中的內(nèi)容還是可以改變的。11、 "=" 和 equals 方法究竟有什么區(qū)別?=操作符專門用來比較兩個變量的值是否相等,equals 方法是用于比較兩個獨(dú)立對象的內(nèi)容是否相同,多用于字符串的比較212、靜態(tài)變量和實(shí)例變量的區(qū)別?在語法定義上的區(qū)別:靜態(tài)變量前要加static 關(guān)鍵字,而實(shí)例變量前則不加。在程序運(yùn)行時(shí)的區(qū)別:實(shí)例變量必須創(chuàng)建對象后才可以通過這個對象來

6、使用,靜態(tài)變量則可以直接使用類名來引用。13、是否可以從一個static 方法內(nèi)部發(fā)出對非static 方法的調(diào)用?不可以。因?yàn)榉?static 方法是要與對象關(guān)聯(lián)在一起的, 必須創(chuàng)建一個對象后, 才可以在該對象上進(jìn)行方法調(diào)用,而 static 方法調(diào)用時(shí)不需要創(chuàng)建對象,可以直接調(diào)用。14、 Integer 與 int 的區(qū)別int 是 java 提供的 8 種原始數(shù)據(jù)類型之一。Integer 是封裝類。 默認(rèn)值為0,而 Integer 的默認(rèn)值為null ,int 不適合作為web 層的表單數(shù)據(jù)的類型。Integer 提供了多個與整數(shù)相關(guān)的操作方法,15、 Math.round(11.5)

7、等於多少 ? Math.round(-11.5) 等於多少 ?Math 類中提供了三個與取整有關(guān)的方法: ceil(向上取整)、floor(向下取整) 、round(四舍五入),Math.round(11.5)的結(jié)果為 12, Math.round(-11.5) 的結(jié)果為 -11。16、下面的代碼有什么不妥之處 ?1. if(username.equals(“:zxxusername”) 可能為 NULL, 會報(bào)空指針錯誤;改為 "zxx".equals(username)2.intx = 1;return x=1?true:false; 這個改成return x=1; 就

8、行17、請說出作用域public, private , protected,以及不寫時(shí)( friendly )的區(qū)別作用域當(dāng)前類同一包( package)子孫類 其他包( package)publicprotected ×friendly××private×××18、 Overload 和 Override的區(qū)別。 Overloaded的方法是否可以改變返回值的類型?Overload 是重載的意思,Override 是覆蓋的意思,也就是重寫。重載 Overload 表示同一個類中可以有多個名稱相同的方法,但這些方法的參數(shù)列表各不相同(

9、即參數(shù)個數(shù)或類型不同)。重寫Override 表示子類中的方法可以與父類中的某個方法的名稱和參數(shù)完全相同。如果父類的方法是private 類型,那么,子類則不存在覆蓋的限制,相當(dāng)于子類中增加了一個全新的方法。19、構(gòu)造器Constructor 是否可被override?構(gòu)造器Constructor不能被繼承,因此不能重寫Override ,但可以被重載Overload 。20、接口是否可繼承接口 ?抽象類是否可實(shí)現(xiàn) (implements)接口 ?抽象類是否可繼承具體類 (concrete class)?抽象類中是否可以有靜態(tài)的 main 方法?接口可以繼承接口。 抽象類可以實(shí)現(xiàn)(implem

10、ents) 接口,抽象類可以繼承具體類。抽象類中可以有靜態(tài)的main 方法。抽象類與普通類的唯一區(qū)別:抽象類就是不能創(chuàng)建實(shí)例對象和允許有abstract 方法。21、寫clone()方法時(shí),通常都有一行代碼,是什么?clone 有缺省行為,super.clone();22、面向?qū)ο蟮奶卣饔心男┓矫?封裝:面向?qū)ο蟮姆庋b就是把描述一個對象的屬性和行為的代碼封裝在一個類中,屬性用變量定義,行為用方法進(jìn)行定義,方法可以直接訪問同一個對象中的屬性。抽象:抽象:就是找出一些事物的相似和共性之處,然后將這些事物歸為一個類,這個類只考慮這些事物的相似和共性之處,并且會忽略與當(dāng)前主題和目標(biāo)無關(guān)的那些方面,將注

11、意力集中在與當(dāng)前目標(biāo)有關(guān)的方面。繼承:子類自動共享父類數(shù)據(jù)和方法的機(jī)制,提高了軟件的可重用性和可擴(kuò)展性。多態(tài):在面向?qū)ο笳Z言中,接口的多種不同的實(shí)現(xiàn)方式23、 java 中實(shí)現(xiàn)多態(tài)的機(jī)制是什么?父類或接口定義的引用變量可以指向子類或具體實(shí)現(xiàn)類的實(shí)例對象,而程序調(diào)用的方法在運(yùn)行期才動態(tài)綁定,就是引用變量所指向的具體實(shí)例對象的方法,也就是內(nèi)存里正在運(yùn)行的那個對象的方法,而不是引用變量的類型中定義的方法。24、 abstract class 和 interface 有什么區(qū)別 ?抽象類是含有abstract 修飾符的class ,不能創(chuàng)建實(shí)例對象接口( interface)可以說成是抽象類的一種特例

12、,接口中的所有方法都必須是抽象的。應(yīng)用上的區(qū)別:接口更多的是在系統(tǒng)架構(gòu)設(shè)計(jì)方法發(fā)揮作用,主要用于定義模塊之間的通信契約。而抽象類在代碼實(shí)現(xiàn)方面發(fā)揮作用,可以實(shí)現(xiàn)代碼的重用,25、(抽象)abstract的 (方法)method是否可同時(shí)是(靜態(tài))static,是否可同時(shí)是native,是否可同時(shí)是synchronized?abstract的method不可以是static的,因?yàn)槌橄蟮姆椒ㄊ且蛔宇悓?shí)現(xiàn)的,而static與類扯不上關(guān)系!native 方法表示該方法要用另外一種依賴平臺的編程語言實(shí)現(xiàn)的,不存在著被子類實(shí)現(xiàn)的問題,所以,它也不能是抽象的,不能與abstract 混用。關(guān)于synch

13、ronized 與 abstract 合用的問題,synchronized 應(yīng)該是作用在一個具體的方法上才有意義。而且,方法上的synchronized 同步所使用的同步鎖對象是this ,而抽象方法上無法確定this 是什么。26、什么是內(nèi)部類?Static Nested Class 和 Inner Class的不同。內(nèi)部類就是在一個類的內(nèi)部定義的類,內(nèi)部類中不能定義靜態(tài)成員,內(nèi)部類可以直接訪問外部類中的成員變量,內(nèi)部類可以定義在外部類的方法外面,也可以定義在外部類的方法體中,static Nested Class 能訪問外部類的非static 成員變量 (不能直接訪問,需要創(chuàng)建外部類實(shí)例才

14、能訪問非靜態(tài)變量)。27、內(nèi)部類可以引用它的包含類的成員嗎?有沒有什么限制?完全可以。如果不是靜態(tài)內(nèi)部類,那沒有什么限制!靜態(tài)內(nèi)部類不能訪問外部類的成員,28、 Anonymous Inner Class ( 匿名內(nèi)部類 )是否可以extends(繼承 )其它類,是否可以implements(實(shí)現(xiàn) )interface( 接口 )?可以繼承其他類或?qū)崿F(xiàn)其他接口。不僅是可以,而是必須!29、 super.getClass()方法調(diào)用在 test 方法中調(diào)用getClass().getName()方法,其實(shí)是在調(diào)用從父類繼承的getClass()方法,30、 String 是最基本的數(shù)據(jù)類型嗎?基

15、本數(shù)據(jù)類型包括byte、 int、 char、 long 、 float 、double 、 boolean 和 short。( 8 個)類是 final 類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節(jié)省空間,我們應(yīng)該用 StringBuffer 類431、 String s = "Hello"s = s + " world!"這兩行代碼執(zhí)行后,原始的String對象中的內(nèi)容到底變了沒有?沒有。因?yàn)镾tring 被設(shè)計(jì)成不可變(immutable) 類,所以它的所有對象都是不可變對象。我們對s 進(jìn)行了 +操作, s 不指向原來那個對象了,而

16、指向了另一個String 對象,內(nèi)容為 "Hello world!",原來那個對象還存在于內(nèi)存之中,只是s 這個引用變量不再指向它了。32、是否可以繼承String 類是finalString 類 ?類故不可以繼承。33、 String s = new String("xyz");創(chuàng)建了幾個String Object? 二者之間有什么區(qū)別?兩個或一個,” xyz”對應(yīng)一個對象,這個對象放在字符串常量緩沖區(qū),如果以前就用過不會創(chuàng)建” xyz ”自己了,直接從緩沖區(qū)拿,就是一個。xyz,這句代表就34、 String 和 StringBuffer的區(qū)別都可以

17、儲存和操作字符串,即包含多個字符的字符數(shù)據(jù)。String 類提供了數(shù)值不可改變的字符串。StringBufferString 實(shí)現(xiàn)了StringBuffer類提供的字符串進(jìn)行修改。當(dāng)你知道字符數(shù)據(jù)要改變的時(shí)候你就可以使用equals 方法, new String( “ abc”).equals(newString( “ abc”) 的結(jié)果為true,沒有實(shí)現(xiàn)equals ,new StringBuffer( “ abc” ).equals(newStringBuffer( “ abc” )的結(jié)果為false。35、如何把一段逗號分割的字符串1.用正則表達(dá)式,代碼大概為:2.用 StingTok

18、enizerStr 轉(zhuǎn)換成一個數(shù)組?String result = Str . split(“, ”);36、數(shù)組有沒有數(shù)組沒有l(wèi)ength() 這個方法 ? String length() 這個方法,有 length有沒有l(wèi)ength()這個方法?的屬性。 String 有有l(wèi)ength() 這個方法。37、下面這條語句一共創(chuàng)建了多少個對象:String s="a"+"b"+"c"+"d"代碼被編譯器在編譯時(shí)優(yōu)化后,相當(dāng)于直接定義了一個”abcd”的字符串,所以,上面的代碼應(yīng)該只創(chuàng)建了一個 String 對象。3

19、8、 try 里有一個return語句,那么緊跟在這個try后的finally 里的code會不會被執(zhí)行,什么時(shí)候被執(zhí)行,在 return 前還是后 ? 也許你的答案是在 return 之前,但往更細(xì)地說,我的答案是在return中間執(zhí)行40、 final, finally, finalize的區(qū)別。final用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。內(nèi)部類要訪問局部變量,局部變量必須定義成final類型,例如,一段代碼finally finalize是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。是 Object 類的一個方法,在垃圾收集器執(zhí)行的時(shí)候會調(diào)用被回收對象的此

20、方法41、運(yùn)行時(shí)異常與一般異常有何異同?異常表示程序運(yùn)行過程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表示虛擬機(jī)的通常操作中可能遇到的異常,一般異常是用戶可以拋出的異常,如果拋出調(diào)用必須進(jìn)行處理。42、 error和 exception 有什么區(qū)別 ?error 表示恢復(fù)可能但很困難的一種嚴(yán)重問題。不可能指望程序能處理這樣的情況。exception 表示一種設(shè)計(jì)或?qū)崿F(xiàn)問題。它表示如果程序運(yùn)行正常,從不會發(fā)生的情況。543、 Java 中的異常處理機(jī)制的簡單原理和應(yīng)用。異常是指 java 程序運(yùn)行時(shí) (非編譯) 所發(fā)生的非正常情況或錯誤 ,Java 使用面向?qū)ο蟮姆绞絹硖幚懋惓?,它把程序中發(fā)生的每個異常

21、也都分別封裝到一個對象來表示的,該對象中包含有異常的信息。java 為系統(tǒng)異常和普通異常提供了不同的解決方案,編譯器強(qiáng)制普通異常必須明繼續(xù)拋給上層調(diào)用方法處理,系統(tǒng)異??梢蕴幚硪部梢圆惶幚恚幾g器不強(qiáng)制用明,所以系統(tǒng)異常也稱為unchecked 異常。try.catchtry.catch處理或用處理或用throws throws聲 聲44、請寫出你最常見到的5 個 runtime exception。在 jdk doc中查 RuntimeException類,就可以看到其所有的子類列表,也就是看到了所有的系統(tǒng)異常。有印象的系統(tǒng)異常有:NullPointerException 、 ArrayIn

22、dexOutOfBoundsException、 ClassCastException。我比較47、 sleep()和 wait() 有什么區(qū)別 ?sleep 就是正在執(zhí)行的線程主動讓出cpu,cpu 去執(zhí)行其他線程,在sleep 指定的時(shí)間過后,cpu 才會回到這個線程上繼續(xù)往下執(zhí)行,wait 是指在一個已經(jīng)進(jìn)入了同步鎖的線程內(nèi),讓自己暫時(shí)讓出同步鎖,以便其他正在等待此鎖的線程可以得到同步鎖并運(yùn)行,48、同步和異步有何異同,在什么情況下分別使用他們?舉例說明。如果數(shù)據(jù)將在線程間共享。例如正在寫的數(shù)據(jù)以后可能被另一個線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個線程寫過了,那么這些數(shù)據(jù)就是共享數(shù)據(jù)

23、,必須進(jìn)行同步存取。當(dāng)應(yīng)用程序在對象上調(diào)用了一個需要花費(fèi)很長時(shí)間來執(zhí)行的方法,并且不希望讓程序等待方法的返回時(shí),就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往更有效率。50、多線程有幾種實(shí)現(xiàn)方法?同步有幾種實(shí)現(xiàn)方法?多線程有兩種實(shí)現(xiàn)方法,分別是繼承Thread 類與實(shí)現(xiàn)Runnable 接口同步的實(shí)現(xiàn)方面有兩種,分別是synchronized,wait與 notifywait(): 使一個線程處于等待狀態(tài),并且釋放所持有的對象的lock 。sleep():使一個正在運(yùn)行的線程處于睡眠狀態(tài),是一個靜態(tài)方法,調(diào)用此方法要捕捉InterruptedException()notify(): 喚醒一個

24、處于等待狀態(tài)的線程,是由JVM確定喚醒哪個線程,沒有按優(yōu)先級。Allnotity(): 喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。異常。51、啟動一個線程是用run() 還是start()? .啟動一個線程是調(diào)用start()方法,使線程就緒狀態(tài),以后可以被調(diào)度為運(yùn)行狀態(tài),一個線程必須關(guān)聯(lián)一些具體的執(zhí)行代碼, run() 方法是該線程所關(guān)聯(lián)的執(zhí)行代碼。52、當(dāng)一個線程進(jìn)入一個對象的一個synchronized 方法后,其它線程是否可進(jìn)入此對象的其它方法?分幾種情況:1. 其他方法前是否加了 synchronized 關(guān)鍵字,如果沒加,則能。2.如果這個方

25、法內(nèi)部調(diào)用了wait ,則可以進(jìn)入其他 synchronized方法。3.如果其他個方法都加了synchronized 關(guān)鍵字,并且內(nèi)部沒有調(diào)用wait ,則不能。4. 如果其他方法是 static,它用的同步鎖是當(dāng)前類的字節(jié)碼,與非靜態(tài)的方法不能同步,53、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關(guān)系一個程序中可以有多條執(zhí)行線索同時(shí)執(zhí)行,一個線程就是程序中的一條執(zhí)行線索,每個線程上都關(guān)聯(lián)有要執(zhí)行的代碼,即可以有多段程序代碼同時(shí)運(yùn)行,每個程序至少都有一個線程,狀態(tài):就緒,運(yùn)行, synchronize 阻塞, wait 和 sleep 掛起,結(jié)束。 wait 必須在線程的 start 方法

26、后線程進(jìn)入就緒狀態(tài), 線程調(diào)度系統(tǒng)將就緒狀態(tài)的線程轉(zhuǎn)為運(yùn)行狀態(tài),synchronized 內(nèi)部調(diào)用。調(diào)用遇到synchronized 語句時(shí),6由運(yùn)行狀態(tài)轉(zhuǎn)為阻塞,當(dāng) synchronized 獲得鎖后, 由阻塞轉(zhuǎn)為運(yùn)行, 在這種情況可以調(diào)用wait方法轉(zhuǎn)為掛起狀態(tài),當(dāng)線程關(guān)聯(lián)的代碼執(zhí)行完后,線程變?yōu)榻Y(jié)束狀態(tài)。59、 ArrayList和 Vector 的區(qū)別這兩個類都實(shí)現(xiàn)了List接口( List接口繼承了Collection接口),他們都是有序集合,并且其中的數(shù)據(jù)是允許重復(fù)的,( 1)同步性:Vector 與 Hashtable 是舊的,是java 一誕生就提供了的,它們是線程安全的,Ar

27、rayListHashMap 是 java2 時(shí)才提供的,它們是線程不安全的。( 2)數(shù)據(jù)增長:Vector增長原來的一倍,ArrayList增加原來的0.5 倍。與60、 HashMap和 Hashtable 的區(qū)別HashMap 是 Hashtable 的輕量級實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都完成了Map 接口,主要區(qū)別在于允許空( null )鍵值( key ) ,由于非線程安全,在只有一個線程訪問的情況下,效率要高于Hashtable。HashMap 和 Hashtable 采用的hash/rehash 算法都大概一樣,所以性能不會有很大的差異。HashMap 允許將null作為一個e

28、ntry 的 key 或者value,而 Hashtable 不允許。HashMap 是 Java1.2 引進(jìn)的Map interface 的一個實(shí)現(xiàn),而Hashtable 繼承自Dictionary類。HashMapHashtable 的方法是Synchronize 的,而HashMap 不是,在多個線程訪問Hashtable 時(shí),不需要自己為它的方法實(shí)現(xiàn)同步,而HashMap就必須為之提供外同步。Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的61、 List 和 Map區(qū)別 ?List 是存儲單列數(shù)據(jù)的集合,存儲的數(shù)據(jù)是有順序,并且允許重復(fù);

29、 Map 是存儲鍵和值這樣的雙列數(shù)據(jù)的集合,存儲的數(shù)據(jù)是沒有順序的,其鍵是不能重復(fù)的,它的值是可以有重復(fù)的。62、 List, Set, Map是否繼承自List , Set 是, Map 不是Collection接口 ?63、 List、 Map 、 Set 三個接口,存取元素時(shí),各有什么特點(diǎn)?List 與 Set 具有相似性,它們都是單列元素的集合,所以,它們有一個共同的父接口,叫Set 里面不允許有重復(fù)的元素,在取元素時(shí),沒法說取第幾個,只能以Iterator逐一遍歷各個元素。Collection 。接口取得所有的元素,再List以調(diào)用表示有先后順序的集合,除了可以以 get(index

30、 i) 來明確說明取第幾個。Iterator接口取得所有的元素,再逐一遍歷各個元素之外,還可Map 與 List 和 Set 結(jié)合,還可以獲得所有的不同,它是雙列的集合, 取則可以根據(jù)value 的結(jié)合,還可以獲得key 和key value獲得相應(yīng)的value,也可以獲得所有的組合成的Map.Entry對象的集合。key的List以特定次序來持有元素,可有重復(fù)元素。Set無法擁有重復(fù)元素,內(nèi)部排序。Map保存key-value值,value可多值。64、說出ArrayList,Vector, LinkedList的存儲性能和特性ArrayList和 Vector都是使用數(shù)組方式存儲數(shù)據(jù),Ve

31、ctor 由于使用了synchronized 方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實(shí)現(xiàn)存儲,插入速度較快。LinkedList也是線程不安全的,66、 Collection和Collections的區(qū)別。Collection Collections是集合類的上級接口,繼承與他的接口主要有Set 和 List. ,是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實(shí)現(xiàn)對各種集合的搜索、排序、線程安全化等操作。767、 Set 里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用 =還是equals()?它們有何區(qū)別?a) 使用 equals()

32、 ;=操作符專門用來比較兩個變量的值是否相等,equals 方法是用于比較兩個獨(dú)立對象的內(nèi)容是否相同,多用于字符串的比較68、你所知道的集合類都有哪些?主要方法?最常用的集合類是List和 Map , Set。它們都有增刪改查的方法,但這些方法的具體名稱,我記得不是很清楚,對于set,大概的方法是add,remove,contains;對于 map,大概的方法就是 put,remove,contains 等,因?yàn)?,我只要?eclispe 下按點(diǎn)操作符,很自然的這些方法就出來了。69、兩個對象值相同,但卻可有不同的hashcode,這句話對不對?對。如果對象要保存在HashSet 或 Hash

33、Map 中,它們的equals 相等,那么,它們的hashcode 值就必須相等。70、 TreeSet 里面放對象,如果同時(shí)放入了父類和子類的實(shí)例對象,那比較時(shí)使用的是父類的compareTo 方法,還是使用的子類的compareTo 方法,還是拋異常!當(dāng)前的add 方法放入的是哪個對象,就調(diào)用哪個對象的compareTo 方法,至于這個compareTo 方法怎么做,就看當(dāng)前這個對象的類中是如何編寫這個方法的71、說出一些常用的類,包,接口,請各舉5 個常用的類: BufferedReaderBufferedWriterFileReaderFileWirterStringIntegerja

34、vautil.Date常用的包: java.langjava.iojava.utiljava.sqljavax.servletorg.hibernate常用的接口:ComparableCollectionMapListRunnable72、 java 中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類?字節(jié)流,字符流。字節(jié)流繼承于InputStream OutputStream ,字符流繼承于InputStreamReaderOutputStreamWriter 。在 java.io包中還有許多其他的流73、字節(jié)流與字符流的區(qū)別字節(jié)流可用于任何類型的對象,包括二進(jìn)制對象,而字符流只能處理字符或者字符串74、什么是java 序列化,如何實(shí)現(xiàn)j

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論