隨筆-42  評(píng)論-349  文章-4  trackbacks-0

          ????? 最近找工作,總是屢屢碰壁,原因是多方面的。記得beansoft大哥一句話,面試就是要把人搞的什么都不會(huì)然后砍價(jià),為了應(yīng)付各大公司的筆試,我收集整理了一些java面試題,放在手機(jī)電子書(shū)里面隨時(shí)隨地看,為了以后飯吃……現(xiàn)在放出來(lái),希望可以給同樣找工作的兄弟們能有些幫助——不被資本家砍得太狠……
          ????
          ??? 后面我會(huì)繼續(xù)放一些整理的java編程方面的題目……
          ??? 為了方便大家閱讀下載,也給這個(gè)文章起個(gè)版本,以后有修改就依次是1.1,1.2,1.3,1.4……
          ?
          Java面試題—基礎(chǔ)方面:
          1、作用域public,private,protected,以及不寫(xiě)時(shí)的區(qū)別?

          答:區(qū)別如下:
          作用域 ?當(dāng)前類(lèi)?同一packag?子孫類(lèi)?其他package
          public?√?√?√?√
          protected?√?√?√?×
          friendly?√?√?×?×
          private?√?×?×?×
          不寫(xiě)時(shí)默認(rèn)為friendly

          2、char型變量中能不能存貯一個(gè)中文漢字?為什么?
          答:是能夠定義成為一個(gè)中文的,因?yàn)閖ava中以u(píng)nicode編碼,一個(gè)char占16個(gè)字節(jié),所以放一個(gè)中文字符是沒(méi)問(wèn)題的。

          3、Anonymous Inner Class (匿名內(nèi)部類(lèi)) 是否可以extends(繼承)其它類(lèi),是否可以implements(實(shí)現(xiàn))interface(接口)?
          答:匿名的內(nèi)部類(lèi)是沒(méi)有名字的內(nèi)部類(lèi),不能extends(繼承) 其它類(lèi),但一個(gè)內(nèi)部類(lèi)可以作為一個(gè)接口,由另一個(gè)內(nèi)部類(lèi)實(shí)現(xiàn)。

          4、Static Nested Class 和Inner Class的不同?
          答:Nested Class (一般是C++的說(shuō)法),Inner Class (一般是JAVA的說(shuō)法)。Java內(nèi)部類(lèi)與C++嵌套類(lèi)最大的不同就在于是否有指向外部的引用上。注: 靜態(tài)內(nèi)部類(lèi)(Inner Class)意味著1創(chuàng)建一個(gè)static內(nèi)部類(lèi)的對(duì)象,不需要一個(gè)外部類(lèi)對(duì)象,2不能從一個(gè)static內(nèi)部類(lèi)的一個(gè)對(duì)象訪問(wèn)一個(gè)外部類(lèi)對(duì)象。

          5、&和&&的區(qū)別?
          答:&是位運(yùn)算符,表示按位與運(yùn)算,&&是邏輯運(yùn)算符,表示邏輯與(and)。

          6、Collection 和Collections的區(qū)別?
          答:Collection是集合類(lèi)的上級(jí)接口,繼承與他的接口主要有Set 和List。
          ?? Collections是針對(duì)集合類(lèi)的一個(gè)幫助類(lèi),他提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線程安全化等操作。

          7、什么時(shí)候用assert?
          答:assertion(斷言)在軟件開(kāi)發(fā)中是一種常用的調(diào)試方式,很多開(kāi)發(fā)語(yǔ)言中都支持這種機(jī)制。在實(shí)現(xiàn)中,assertion就是在程序中的一條語(yǔ)句,它對(duì)一個(gè)boolean表達(dá)式進(jìn)行檢查,一個(gè)正確程序必須保證這個(gè)boolean表達(dá)式的值為true;如果該值為false,說(shuō)明程序已經(jīng)處于不正確的狀態(tài)下,系統(tǒng)將給出警告或退出。一般來(lái)說(shuō),assertion用于保證程序最基本、關(guān)鍵的正確性。assertion檢查通常在開(kāi)發(fā)和測(cè)試時(shí)開(kāi)啟。為了提高性能,在軟件發(fā)布后,assertion檢查通常是關(guān)閉的。

          8、代碼String s = new String("xyz");創(chuàng)建了幾個(gè)String Object?
          答:兩個(gè),一個(gè)字符對(duì)象,一個(gè)字符對(duì)象引用對(duì)象。

          9、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
          答:Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回與參數(shù)最接近的長(zhǎng)整數(shù),參數(shù)加1/2后求其floor。

          10、short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)?
          答:short s1 = 1; s1 = s1 + 1; (s1+1運(yùn)算結(jié)果是int型,需要強(qiáng)制轉(zhuǎn)換類(lèi)型)short s1 = 1; s1 += 1;(可以正確編譯)。

          11、Java有沒(méi)有g(shù)oto?
          答:goto是java中的保留字,但現(xiàn)在沒(méi)有在java中使用。

          12、數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法? String有沒(méi)有l(wèi)ength()這個(gè)方法?
          答:數(shù)組沒(méi)有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。String有有l(wèi)ength()這個(gè)方法。

          13、Overload和Override的區(qū)別?Overloaded的方法是否可以改變返回值的類(lèi)型?
          答:方法的重寫(xiě)Overriding 和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫(xiě)(Overriding)是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現(xiàn),重載(Overloading)是一個(gè)類(lèi)中多態(tài)性的一種表現(xiàn)。如果在子類(lèi)中定義某方法與其父類(lèi)有相同的名稱(chēng)和參數(shù),我們說(shuō)該方法被重寫(xiě) (Overriding)。子類(lèi)的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類(lèi)中的定義,對(duì)它而言,父類(lèi)中的定義如同被"屏蔽"了。如果在一個(gè)類(lèi)中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類(lèi)型,則稱(chēng)為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類(lèi)型。

          14、Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?
          答:Set里的元素是不能重復(fù)的,那么用iterator()方法來(lái)區(qū)分重復(fù)與否。equals()是判讀兩個(gè)Set是否相等。
          equals()和==方法決定引用值是否指向同一對(duì)象,equals()在類(lèi)中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類(lèi)型相配的話,返回真值。

          15、運(yùn)行時(shí)異常與一般異常有何異同?
          答:異常表示程序運(yùn)行過(guò)程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見(jiàn)運(yùn)行錯(cuò)誤。java編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。

          16、給我一個(gè)你最常見(jiàn)到的runtime exception?
          答:常見(jiàn)的運(yùn)行時(shí)異常有如下這些: ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException。

          17、error和exception有什么區(qū)別?
          答:error 表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問(wèn)題。比如說(shuō)內(nèi)存溢出。不可能指望程序能處理這樣的情況。
          exception 表示一種設(shè)計(jì)或?qū)崿F(xiàn)問(wèn)題。也就是說(shuō),它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。

          18、List, Set, Map是否繼承自Collection接口?
          答: List,Set是,Map不是。

          19、abstract class和interface有什么區(qū)別?
          答:聲明方法的存在而不去實(shí)現(xiàn)它的類(lèi)被叫做抽象類(lèi)(abstract class),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為的類(lèi),并為該類(lèi)聲明方法,但不能在該類(lèi)中實(shí)現(xiàn)該類(lèi)的情況。不能創(chuàng)建abstract 類(lèi)的實(shí)例。然而可以創(chuàng)建一個(gè)變量,其類(lèi)型是一個(gè)抽象類(lèi),并讓它指向具體子類(lèi)的一個(gè)實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract 類(lèi)的子類(lèi)為它們父類(lèi)中的所有抽象方法提供實(shí)現(xiàn),否則它們也是抽象類(lèi)為。取而代之,在子類(lèi)中實(shí)現(xiàn)該方法。知道其行為的其它類(lèi)可以在類(lèi)中實(shí)現(xiàn)這些方法。
          接口(interface)是抽象類(lèi)的變體。在接口中,所有方法都是抽象的。多繼承性可通過(guò)實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒(méi)有一個(gè)有程序體。接口只可以定義static final成員變量。接口的實(shí)現(xiàn)與子類(lèi)相似,除了該實(shí)現(xiàn)類(lèi)不能從接口定義中繼承行為。當(dāng)類(lèi)實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類(lèi)的任何對(duì)象上調(diào)用接口的方法。由于有抽象類(lèi),它允許使用接口名作為引用變量的類(lèi)型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類(lèi)型或從接口類(lèi)型轉(zhuǎn)換,instanceof 運(yùn)算符可以用來(lái)決定某對(duì)象的類(lèi)是否實(shí)現(xiàn)了接口。

          20、abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized?
          答:都不能

          21、接口是否可繼承接口? 抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口? 抽象類(lèi)是否可繼承實(shí)體類(lèi)(concrete class)?
          答:接口可以繼承接口。抽象類(lèi)可以實(shí)現(xiàn)(implements)接口,抽象類(lèi)是否可繼承實(shí)體類(lèi),但前提是實(shí)體類(lèi)必須有明確的構(gòu)造函數(shù)。

          22、JAVA中的多態(tài)與繼承?
          答:

          23、構(gòu)造器Constructor是否可被override?
          答:構(gòu)造器Constructor不能被繼承,因此不能重寫(xiě)Overriding,但可以被重載Overloading。

          24、是否可以繼承String類(lèi)?
          答:String類(lèi)是final類(lèi)故不可以繼承。

          25、try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?
          答:會(huì)執(zhí)行,在return前執(zhí)行

          26、用最有效率的方法算出2乘以8等於幾?
          答:2 << 3

          27、兩個(gè)對(duì)象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對(duì)不對(duì)?
          答:不對(duì),有相同的hash code。

          28、當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?
          答:是值傳遞。Java 編程語(yǔ)言只有值傳遞參數(shù)。當(dāng)一個(gè)對(duì)象實(shí)例作為一個(gè)參數(shù)被傳遞到方法中時(shí),參數(shù)的值就是對(duì)該對(duì)象的引用。對(duì)象的內(nèi)容可以在被調(diào)用的方法中改變,但對(duì)象的引用是永遠(yuǎn)不會(huì)改變的。

          29、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
          答:switch(expr1)中,expr1是一個(gè)整數(shù)表達(dá)式。因此傳遞給 switch 和 case 語(yǔ)句的參數(shù)應(yīng)該是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。

          30、ArrayList和Vector的區(qū)別?
          答:1)、同步性:Vector是線程安全的,也就是說(shuō)是同步的,而ArrayList是線程序不安全的,不是同步的
          2)、數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector默認(rèn)增長(zhǎng)為原來(lái)一培,而ArrayList卻是原來(lái)的一半

          31、HashMap和Hashtable的區(qū)別?
          答:HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable。
          HashMap允許將null作為一個(gè)entry的key或者value,而Hashtable不允許。
          HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因?yàn)閏ontains方法容易讓人引起誤解。
          Hashtable繼承自Dictionary類(lèi),而HashMap是Java1.2引進(jìn)的Map interface的一個(gè)實(shí)現(xiàn)。
          最大的不同是,Hastable的方法是Synchronize的,而HashMap不是,在多個(gè)線程訪問(wèn)Hashtable時(shí),不需要自己為它的方法實(shí)現(xiàn)同步,而HashMap 就必須為之提供外同步。
          Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會(huì)有很大的差異。

          32、float型float f=3.4是否正確?
          答:不正確。精度不準(zhǔn)確,應(yīng)該用強(qiáng)制類(lèi)型轉(zhuǎn)換,如下所示:float f=(float)3.4。

          33、介紹JAVA中的Collection FrameWork(包括如何寫(xiě)自己的數(shù)據(jù)結(jié)構(gòu))?
          答:Collection FrameWork如下:
          Collection
          ├List
          │├LinkedList
          │├ArrayList
          │└Vector
          │ └Stack
          └Set
          Map
          ├Hashtable
          ├HashMap
          └WeakHashMap
          Collection是最基本的集合接口,一個(gè)Collection代表一組Object,即Collection的元素(Elements)。
          Map提供key到value的映射。

          34、抽象類(lèi)與接口?
          答:抽象類(lèi)與接口都用于抽象,但是抽象類(lèi)(JAVA中)可以有自己的部分實(shí)現(xiàn),而接口則完全是一個(gè)標(biāo)識(shí)(同時(shí)有多重繼承的功能)。
          JAVA類(lèi)實(shí)現(xiàn)序例化的方法是實(shí)現(xiàn)java.io.Serializable接口
          Collection框架中實(shí)現(xiàn)比較要實(shí)現(xiàn)Comparable 接口和Comparator 接口

          35、String是最基本的數(shù)據(jù)類(lèi)型嗎?
          答:基本數(shù)據(jù)類(lèi)型包括byte、int、char、long、float、double、boolean和short。
          java.lang.String類(lèi)是final類(lèi)型的,因此不可以繼承這個(gè)類(lèi)、不能修改這個(gè)類(lèi)。為了提高效率節(jié)省空間,我們應(yīng)該用StringBuffer類(lèi)。

          36、String與StringBuffer的區(qū)別?
          答:String的長(zhǎng)度是不可變的,StringBuffer的長(zhǎng)度是可變的。如果你對(duì)字符串中的內(nèi)容經(jīng)常進(jìn)行操作,特別是內(nèi)容要修改時(shí),那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。

          37、談?wù)刦inal, finally, finalize的區(qū)別?
          答:final—修飾符(關(guān)鍵字)如果一個(gè)類(lèi)被聲明為final,意味著它不能再派生出新的子類(lèi),不能作為父類(lèi)被繼承。因此一個(gè)類(lèi)不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們?cè)谑褂弥胁槐桓淖儭1宦暶鳛閒inal的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載
          finally—再異常處理時(shí)提供finally 塊來(lái)執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配的catch 子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入finally 塊(如果有的話)
          finalize是一個(gè)方法名。Java 技術(shù)允許使用finalize() 方法在垃圾收集器將對(duì)象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對(duì)象沒(méi)有被引用時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。它是在Object 類(lèi)中定義的,因此所有的類(lèi)都繼承了它。子類(lèi)覆蓋finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對(duì)象之前對(duì)這個(gè)對(duì)象調(diào)用的

          38、面向?qū)ο蟮奶卣饔心男┓矫??
          答:主要有以下四方面:
          1)抽象:抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問(wèn)題,而只是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。抽象包括兩個(gè)方面,一是過(guò)程抽象,二是數(shù)據(jù)抽象。
          2)繼承:繼承是一種聯(lián)結(jié)類(lèi)的層次模型,并且允許和鼓勵(lì)類(lèi)的重用,它提供了一種明確表述共性的方法。對(duì)象的一個(gè)新類(lèi)可以從現(xiàn)有的類(lèi)中派生,這個(gè)過(guò)程稱(chēng)為類(lèi)繼承。新類(lèi)繼承了原始類(lèi)的特性,新類(lèi)稱(chēng)為原始類(lèi)的派生類(lèi)(子類(lèi)),而原始類(lèi)稱(chēng)為新類(lèi)的基類(lèi)(父類(lèi))。派生類(lèi)可以從它的基類(lèi)那里繼承方法和實(shí)例變量,并且類(lèi)可以修改或增加新的方法使之更適合特殊的需要。
          3)封裝:封裝是把過(guò)程和數(shù)據(jù)包圍起來(lái),對(duì)數(shù)據(jù)的訪問(wèn)只能通過(guò)已定義的界面。面向?qū)ο笥?jì)算始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、封裝的對(duì)象,這些對(duì)象通過(guò)一個(gè)受保護(hù)的接口訪問(wèn)其他對(duì)象。
          4)多態(tài)性:多態(tài)性是指允許不同類(lèi)的對(duì)象對(duì)同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語(yǔ)言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢(shì),很好的解決了應(yīng)用程序函數(shù)同名問(wèn)題。

          39、int 和 Integer 有什么區(qū)別?
          答:Java 提供兩種不同的類(lèi)型:引用類(lèi)型和原始類(lèi)型(或內(nèi)置類(lèi)型)。Int是java的原始數(shù)據(jù)類(lèi)型,Integer是java為int提供的封裝類(lèi)。Java為每個(gè)原始類(lèi)型提供了封裝類(lèi)。原始類(lèi)型封裝類(lèi):booleanBoolean,charCharacter,byteByte,shortShort,intInteger,longLong,floatFloat,doubleDouble引用類(lèi)型和原始類(lèi)型的行為完全不同,并且它們具有不同的語(yǔ)義。引用類(lèi)型和原始類(lèi)型具有不同的特征和用法,它們包括:大小和速度問(wèn)題,這種類(lèi)型以哪種類(lèi)型的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),當(dāng)引用類(lèi)型和原始類(lèi)型用作某個(gè)類(lèi)的實(shí)例數(shù)據(jù)時(shí)所指定的缺省值。對(duì)象引用實(shí)例變量的缺省值為 null,而原始類(lèi)型實(shí)例變量的缺省值與它們的類(lèi)型有關(guān)?

          40、說(shuō)出ArrayList,Vector, LinkedList的存儲(chǔ)性能和特性?
          答:ArrayList 和Vector都是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號(hào)索引元素,但是插入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。

          41、heap和stack有什么區(qū)別?
          答:棧是一種線形集合,其添加和刪除元素的操作應(yīng)在同一段完成。棧按照后進(jìn)先出的方式進(jìn)行處理。堆是棧的一個(gè)組成元素。

          42、Java的接口和C++的虛類(lèi)的相同和不同處?
          答:由于Java 不支持多繼承,而有可能某個(gè)類(lèi)或?qū)ο笠褂梅謩e在幾個(gè)類(lèi)或?qū)ο罄锩娴姆椒ɑ驅(qū)傩裕F(xiàn)有的單繼承機(jī)制就不能滿(mǎn)足要求。與繼承相比,接口有更高的靈活性,因?yàn)榻涌谥袥](méi)有任何實(shí)現(xiàn)代碼。當(dāng)一個(gè)類(lèi)實(shí)現(xiàn)了接口以后,該類(lèi)要實(shí)現(xiàn)接口里面所有的方法和屬性,并且接口里面的屬性在默認(rèn)狀態(tài)下面都是public? static,所有方法默認(rèn)情況下是public.一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口。

          43、Java中異常處理機(jī)制,事件機(jī)制?
          答:參考http://www.zahui.com/html/6/14076.htm

          44、Java中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用?
          答:當(dāng)JAVA 程序違反了JAVA的語(yǔ)義規(guī)則時(shí),JAVA虛擬機(jī)就會(huì)將發(fā)生的錯(cuò)誤表示為一個(gè)異常。違反語(yǔ)義規(guī)則包括2種情況。一種是JAVA類(lèi)庫(kù)內(nèi)置的語(yǔ)義檢查。例如數(shù)組下標(biāo)越界,會(huì)引發(fā)IndexOutOfBoundsException;訪問(wèn)null的對(duì)象時(shí)會(huì)引發(fā)NullPointerException。另一種情況就是JAVA允許程序員擴(kuò)展這種語(yǔ)義檢查,程序員可以創(chuàng)建自己的異常,并自由選擇在何時(shí)用throw關(guān)鍵字引發(fā)異常。所有的異常都是 java.lang.Thowable的子類(lèi)。

          45、GC是什么? 為什么要有GC?
          答:GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問(wèn)題的地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動(dòng)監(jiān)測(cè)對(duì)象是否超過(guò)作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的,Java語(yǔ)言沒(méi)有提供釋放已分配內(nèi)存的顯示操作方法。

          46、垃圾回收機(jī)制,如何優(yōu)化程序?
          答:對(duì)于GC來(lái)說(shuō),當(dāng)程序員創(chuàng)建對(duì)象時(shí),GC就開(kāi)始監(jiān)控這個(gè)對(duì)象的地址、大小以及使用情況。通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對(duì)象。? 通過(guò)這種方式確定哪些對(duì)象是"可達(dá)的",哪些對(duì)象是"不可達(dá)的"。
          當(dāng)GC確定一些對(duì)象為"不可達(dá)"時(shí),GC就有責(zé)任回收這些內(nèi)存空間。所以,程序員可以手動(dòng)執(zhí)行System.gc(),通知GC運(yùn)行,但是Java語(yǔ)言規(guī)范并不保證GC一定會(huì)執(zhí)行。
          詳情可參考:http://www.matrix.org.cn/resource/article/43/43769_JVM_GC_PDM.html

          47、垃圾回收的優(yōu)點(diǎn)和原理。并考慮2種回收機(jī)制多線程有幾種實(shí)現(xiàn)方法,都是什么?
          答:Java語(yǔ)言中一個(gè)顯著的特點(diǎn)就是引入了垃圾回收機(jī)制,使c++程序員最頭疼的內(nèi)存管理的問(wèn)題迎刃而解,它使得Java程序員在編寫(xiě)程序的時(shí)候不再需要考慮內(nèi)存管理。由于有個(gè)垃圾回收機(jī)制,Java中的對(duì)象不再有"作用域"的概念,只有對(duì)象的引用才有"作用域"。垃圾回收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個(gè)單獨(dú)的低級(jí)別的線程運(yùn)行,不可預(yù)知的情況下對(duì)內(nèi)存堆中已經(jīng)死亡的或者長(zhǎng)時(shí)間沒(méi)有使用的對(duì)象進(jìn)行清楚和回收,程序員不能實(shí)時(shí)的調(diào)用垃圾回收器對(duì)某個(gè)對(duì)象或所有對(duì)象進(jìn)行垃圾回收。回收機(jī)制有分代復(fù)制垃圾回收和標(biāo)記垃圾回收,增量垃圾回收。

          48、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關(guān)系
          答:線程指在程序執(zhí)行過(guò)程中,能夠執(zhí)行程序代碼的一個(gè)執(zhí)行單位,每個(gè)程序至少都有一個(gè)線程,也就是程序本身。
          Java中的線程有四種狀態(tài)分別是:運(yùn)行、就緒、掛起、結(jié)束。

          49、啟動(dòng)一個(gè)線程是用run()還是start()?
          答:?jiǎn)?dòng)一個(gè)線程是調(diào)用start()方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會(huì)立即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來(lái)停止一個(gè)線程。

          50、多線程有幾種實(shí)現(xiàn)方法,都是什么?同步有幾種實(shí)現(xiàn)方法,都是什么?
          答:多線程有兩種實(shí)現(xiàn)方法,分別是繼承Thread類(lèi)與實(shí)現(xiàn)Runnable接口
          同步的實(shí)現(xiàn)方面有兩種,分別是synchronized,wait與notify

          51、sleep() 和 wait() 有什么區(qū)別?
          答:sleep是線程類(lèi)(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用sleep不會(huì)釋放對(duì)象鎖。
          wait是Object類(lèi)的方法,對(duì)此對(duì)象調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。

          52、簡(jiǎn)述synchronized和java.util.concurrent.locks.Lock的異同 ?
          答:主要相同點(diǎn):Lock能完成synchronized所實(shí)現(xiàn)的所有功能
          主要不同點(diǎn):Lock有比synchronized更精確的線程語(yǔ)義和更好的性能。synchronized會(huì)自動(dòng)釋放鎖,而Lock一定要求程序員手工釋放,并且必須在finally從句中釋放。

          53、當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?
          答:不能,一個(gè)對(duì)象的一個(gè)synchronized方法只能由一個(gè)線程訪問(wèn)。

          54、java中有幾種方法可以實(shí)現(xiàn)一個(gè)線程?用什么關(guān)鍵字修飾同步方法? stop()和suspend()方法為何不推薦使用?
          答:有兩種實(shí)現(xiàn)方法,分別是繼承Thread類(lèi)與實(shí)現(xiàn)Runnable接口
          用synchronized關(guān)鍵字修飾同步方法
          反對(duì)使用stop(),是因?yàn)樗话踩K鼤?huì)解除由線程獲取的所有鎖定,而且如果對(duì)象處于一種不連貫狀態(tài),那么其他線程能在那種狀態(tài)下檢查和修改它們。結(jié)果很難檢查出真正的問(wèn)題所在。suspend()方法容易發(fā)生死鎖。調(diào)用suspend()的時(shí)候,目標(biāo)線程會(huì)停下來(lái),但卻仍然持有在這之前獲得的鎖定。此時(shí),其他任何線程都不能訪問(wèn)鎖定的資源,除非被"掛起"的線程恢復(fù)運(yùn)行。對(duì)任何線程來(lái)說(shuō),如果它們想恢復(fù)目標(biāo)線程,同時(shí)又試圖使用任何一個(gè)鎖定的資源,就會(huì)造成死鎖。所以不應(yīng)該使用suspend(),而應(yīng)在自己的Thread類(lèi)中置入一個(gè)標(biāo)志,指出線程應(yīng)該活動(dòng)還是掛起。若標(biāo)志指出線程應(yīng)該掛起,便用wait()命其進(jìn)入等待狀態(tài)。若標(biāo)志指出線程應(yīng)當(dāng)恢復(fù),則用一個(gè)notify()重新啟動(dòng)線程。

          55、同步和異步有何異同,在什么情況下分別使用他們?舉例說(shuō)明。
          答:如果數(shù)據(jù)將在線程間共享。例如正在寫(xiě)的數(shù)據(jù)以后可能被另一個(gè)線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個(gè)線程寫(xiě)過(guò)了,那么這些數(shù)據(jù)就是共享數(shù)據(jù),必須進(jìn)行同步存取。
          當(dāng)應(yīng)用程序在對(duì)象上調(diào)用了一個(gè)需要花費(fèi)很長(zhǎng)時(shí)間來(lái)執(zhí)行的方法,并且不希望讓程序等待方法的返回時(shí),就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往更有效率。

          56、JAVA類(lèi)實(shí)現(xiàn)序列化的方法(二種)?
          答: JAVA類(lèi)實(shí)現(xiàn)序例化的方法是實(shí)現(xiàn)java.io.Serializable接口。

          57、如在Collection框架中,實(shí)現(xiàn)比較要實(shí)現(xiàn)什么樣的接口?
          答: Collection框架中實(shí)現(xiàn)比較要實(shí)現(xiàn)Comparable 接口和 Comparator 接口。

          58、應(yīng)用服務(wù)器有那些?
          答:BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server,jBoss,Tomcat。

          59、你所知道的集合類(lèi)都有哪些?主要方法?
          答:最常用的集合類(lèi)是 List 和 Map。 List 的具體實(shí)現(xiàn)包括 ArrayList 和 Vector,它們是可變大小的列表,比較適合構(gòu)建、存儲(chǔ)和操作任何類(lèi)型對(duì)象的元素列表。 List 適用于按數(shù)值索引訪問(wèn)元素的情形。
          Map 提供了一個(gè)更通用的元素存儲(chǔ)方法。 Map 集合類(lèi)用于存儲(chǔ)元素對(duì)(稱(chēng)作"鍵"和"值"),其中每個(gè)鍵映射到一個(gè)值。

          60、描述一下JVM加載class文件的原理機(jī)制?
          答:JVM中類(lèi)的裝載是由ClassLoader和它的子類(lèi)來(lái)實(shí)現(xiàn)的,Java ClassLoader 是一個(gè)重要的Java運(yùn)行時(shí)系統(tǒng)組件。它負(fù)責(zé)在運(yùn)行時(shí)查找和裝入類(lèi)文件的類(lèi)。

          61、簡(jiǎn)述邏輯操作(&,|,^)與條件操作(&&,||)的區(qū)別。
          答:區(qū)別主要答兩點(diǎn):a.條件操作只能操作布爾型的,而邏輯操作不僅可以操作布爾型,而且可以操作數(shù)值型
          b.邏輯操作不會(huì)產(chǎn)生短路

          62、JAVA語(yǔ)言如何進(jìn)行異常處理,關(guān)鍵字:throws,throw,try,catch,finally分別代表什么意義?在try塊中可以拋出異常嗎?
          答:Java通過(guò)面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種不同的異常進(jìn)行分類(lèi),并提供了良好的接口。在Java中,每個(gè)異常都是一個(gè)對(duì)象,它是Throwable類(lèi)或其它子類(lèi)的實(shí)例。當(dāng)一個(gè)方法出現(xiàn)異常后便拋出一個(gè)異常對(duì)象,該對(duì)象中包含有異常信息,調(diào)用這個(gè)對(duì)象的方法可以捕獲到這個(gè)異常并進(jìn)行處理。Java的異常處理是通過(guò)5個(gè)關(guān)鍵詞來(lái)實(shí)現(xiàn)的:try、catch、throw、throws和finally。一般情況下是用try來(lái)執(zhí)行一段程序,如果出現(xiàn)異常,系統(tǒng)會(huì)拋出(throws)一個(gè)異常,這時(shí)候你可以通過(guò)它的類(lèi)型來(lái)捕捉(catch)它,或最后(finally)由缺省處理器來(lái)處理。
          用try來(lái)指定一塊預(yù)防所有"異常"的程序。緊跟在try程序后面,應(yīng)包含一個(gè)catch子句來(lái)指定你想要捕捉的"異常"的類(lèi)型。
          throw語(yǔ)句用來(lái)明確地拋出一個(gè)"異常"。
          throws用來(lái)標(biāo)明一個(gè)成員函數(shù)可能拋出的各種"異常"。
          Finally為確保一段代碼不管發(fā)生什么"異常"都被執(zhí)行一段代碼。
          可以在一個(gè)成員函數(shù)調(diào)用的外面寫(xiě)一個(gè)try語(yǔ)句,在這個(gè)成員函數(shù)內(nèi)部寫(xiě)另一個(gè)try語(yǔ)句保護(hù)其他代碼。每當(dāng)遇到一個(gè)try語(yǔ)句,"異常"的框架就放到堆棧上面,直到所有的try語(yǔ)句都完成。如果下一級(jí)的try語(yǔ)句沒(méi)有對(duì)某種"異常"進(jìn)行處理,堆棧就會(huì)展開(kāi),直到遇到有處理這種"異常"的try語(yǔ)句。

          63、一個(gè)".java"源文件中是否可以包括多個(gè)類(lèi)(不是內(nèi)部類(lèi))?有什么限制?
          答:可以。必須只有一個(gè)類(lèi)名與文件名相同。

          64、java中有幾種類(lèi)型的流?JDK為每種類(lèi)型的流提供了一些抽象類(lèi)以供繼承,請(qǐng)說(shuō)出他們分別是哪些類(lèi)?
          答:字節(jié)流,字符流。字節(jié)流繼承于InputStream OutputStream,字符流繼承于InputStreamReader OutputStreamWriter。在java.io包中還有許多其他的流,主要是為了提高性能和使用方便。

          65、java中會(huì)存在內(nèi)存泄漏嗎,請(qǐng)簡(jiǎn)單描述。
          答:會(huì)。如:int i,i2; return (i-i2); //when i為足夠大的正數(shù),i2為足夠大的負(fù)數(shù)。結(jié)果會(huì)造成溢位,導(dǎo)致錯(cuò)誤。

          66、什么是java序列化,如何實(shí)現(xiàn)java序列化?
          答:序列化就是一種用來(lái)處理對(duì)象流的機(jī)制,所謂對(duì)象流也就是將對(duì)象的內(nèi)容進(jìn)行流化。可以對(duì)流化后的對(duì)象進(jìn)行讀寫(xiě)操作,也可將流化后的對(duì)象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對(duì)對(duì)象流進(jìn)行讀寫(xiě)操作時(shí)所引發(fā)的問(wèn)題。
          序列化的實(shí)現(xiàn):將需要被序列化的類(lèi)實(shí)現(xiàn)Serializable接口,該接口沒(méi)有需要實(shí)現(xiàn)的方法,implements Serializable只是為了標(biāo)注該對(duì)象是可被序列化的,然后使用一個(gè)輸出流(如:FileOutputStream)來(lái)構(gòu)造一個(gè)ObjectOutputStream(對(duì)象流)對(duì)象,接著,使用ObjectOutputStream對(duì)象的writeObject(Object obj)方法就可以將參數(shù)為obj的對(duì)象寫(xiě)出(即保存其狀態(tài)),要恢復(fù)的話則用輸入流。

          67、是否可以從一個(gè)static方法內(nèi)部發(fā)出對(duì)非static方法的調(diào)用?
          答:不可以,如果其中包含對(duì)象的method();不能保證對(duì)象初始化.

          68、寫(xiě)clone()方法時(shí),通常都有一行代碼,是什么?
          答:Clone 有缺省行為,super.clone();他負(fù)責(zé)產(chǎn)生正確大小的空間,并逐位復(fù)制。

          69、在JAVA中,如何跳出當(dāng)前的多重嵌套循環(huán)?
          答:用break; return 方法。

          70、內(nèi)部類(lèi)可以引用他包含類(lèi)的成員嗎?有沒(méi)有什么限制?
          答:一個(gè)內(nèi)部類(lèi)對(duì)象可以訪問(wèn)創(chuàng)建它的外部類(lèi)對(duì)象的內(nèi)容。



          By:殘夢(mèng)追月
          posted on 2009-03-13 20:28 殘夢(mèng)追月 閱讀(7239) 評(píng)論(21)  編輯  收藏 所屬分類(lèi): java

          評(píng)論:
          # re: 收集整理的java筆試面試題目 1.0版本……[未登錄](méi) 2009-03-13 20:34 | joe
          學(xué)Java不是考政治!!

            回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本…… 2009-03-13 21:01 | mathlove
          謝謝了  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本…… 2009-03-13 21:02 | 隔葉黃鶯
          背下來(lái),應(yīng)付面試對(duì)答如流,關(guān)鍵是不用經(jīng)過(guò)大腦。  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本…… 2009-03-13 21:20 | 殘夢(mèng)追月
          @隔葉黃鶯
          呵呵,用處不大,只是為了應(yīng)付面試而已,但是又不得不去弄……  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本…… 2009-03-13 23:04 | 逝水fox
          個(gè)別答案是有問(wèn)題的咯
          比如這個(gè)

          63、一個(gè)".java"源文件中是否可以包括多個(gè)類(lèi)(不是內(nèi)部類(lèi))?有什么限制?
          答:可以。必須只有一個(gè)類(lèi)名與文件名相同。

          你完全可以在一個(gè)java文件里面建多個(gè)類(lèi) 并且每個(gè)類(lèi)都和這個(gè)文件名不一樣是完全可以的
          約束是在于 如果這些類(lèi)里面有public類(lèi) 那么 public類(lèi)只能有一個(gè) 并且必須和文件名同名 如果沒(méi)有哪個(gè)類(lèi)是public的 就沒(méi)有約束了 可以自己試試  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本…… 2009-03-13 23:14 | stone2083
          心態(tài)要擺正,如果純粹為了面試而去看面試題,是沒(méi)多少意義的。
          真正在面試過(guò)程中,對(duì)于一些僅僅看過(guò)面試題卻沒(méi)有深入掌握的人,只要多問(wèn)幾個(gè)為什么,往往就回答不上來(lái)了。  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本…… 2009-03-14 08:47 | Rique
          背題只是臨時(shí)抱佛腳,平時(shí)的積累很重要  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本…… 2009-03-14 16:35 | bitian
          "1、作用域public,private,protected,以及不寫(xiě)時(shí)的區(qū)別?
          答:區(qū)別如下:
          作用域 當(dāng)前類(lèi) 同一packag 子孫類(lèi) 其他package
          public √ √ √ √
          protected √ √ √ ×
          friendly √ √ × ×
          private √ × × ×
          不寫(xiě)時(shí)默認(rèn)為friendly"
          默認(rèn)應(yīng)該為Defualt(缺省的),怎么是friendly?  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本…… 2009-03-14 17:05 | 銀河使者
          # re: 收集整理的java筆試面試題目 1.0版本…… 2009-03-14 16:35 | bitian
          "1、作用域public,private,protected,以及不寫(xiě)時(shí)的區(qū)別?
          答:區(qū)別如下:
          作用域 當(dāng)前類(lèi) 同一packag 子孫類(lèi) 其他package
          public √ √ √ √
          protected √ √ √ ×
          friendly √ √ × ×
          private √ × × ×

          默認(rèn)時(shí)可以在子孫類(lèi)中使用(可以繼承),應(yīng)該和protected是一樣的,不信試試  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本…… 2009-03-14 17:55 | cmzy
          @bitian
          這個(gè)只是叫法不一樣,這個(gè)friendly是c++的叫法……  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本…… 2009-03-14 18:01 | regale
          float f=(float)3.4--->float f=3.4f
          兩個(gè)對(duì)象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對(duì)不對(duì)?
          答:對(duì),可以有不同的hash code。
          5、&和&&的區(qū)別?
          答:&&是短路與
            回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本……[未登錄](méi) 2009-03-16 10:39 | zeyuphoenix
          暈死,好多只能編程確認(rèn)了,概念記不清了。  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本……[未登錄](méi) 2009-03-16 23:34 | Nile Black
          @regale
          float f=(float)3.4--->float f=3.4f
          這兩者是不一樣的
          兩個(gè)對(duì)象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對(duì)不對(duì)?
          答:對(duì),可以有不同的hash code。
          這個(gè)回答就誤人子弟了。應(yīng)該是反過(guò)來(lái)說(shuō)。hash code 一樣,可以不equals但是,equals的hash code絕對(duì)要一樣,不然就會(huì)遇到麻煩的。
          看看《effective java》

          改天有空一個(gè)個(gè)幫你看看 估計(jì)有問(wèn)題的 1/4 到 1/3 樓主繼續(xù)努力  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本……[未登錄](méi) 2009-03-17 09:52 | nile black
          3、Anonymous Inner Class (匿名內(nèi)部類(lèi)) 是否可以extends(繼承)其它類(lèi),是否可以implements(實(shí)現(xiàn))interface(接口)?
          答:匿名的內(nèi)部類(lèi)是沒(méi)有名字的內(nèi)部類(lèi),不能extends(繼承) 其它類(lèi),但一個(gè)內(nèi)部類(lèi)可以作為一個(gè)接口,由另一個(gè)內(nèi)部類(lèi)實(shí)現(xiàn)。

          new JButton().addMouseListener(new MouseAdapter(){});
          這里的匿名類(lèi)就是MouseAdapter的一個(gè)子類(lèi)  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本……[未登錄](méi) 2009-03-17 09:55 | nile black
          14、Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?
          答:Set里的元素是不能重復(fù)的,那么用iterator()方法來(lái)區(qū)分重復(fù)與否。equals()是判讀兩個(gè)Set是否相等。
          equals()和==方法決定引用值是否指向同一對(duì)象,equals()在類(lèi)中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類(lèi)型相配的話,返回真值。

          不能重復(fù),set判斷是否相等對(duì)象的順序是 先hashcode比較,在hashcode相同點(diǎn)情況再比較 equals。hashmap 同理。 看源碼實(shí)際上可以看到hashset里面就是hashmap  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本……[未登錄](méi) 2009-03-17 10:05 | nile black
          29、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
          答:switch(expr1)中,expr1是一個(gè)整數(shù)表達(dá)式。因此傳遞給 switch 和 case 語(yǔ)句的參數(shù)應(yīng)該是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
          現(xiàn)在還有enum也可以  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本……[未登錄](méi) 2009-03-17 10:17 | nile black
          65、java中會(huì)存在內(nèi)存泄漏嗎,請(qǐng)簡(jiǎn)單描述。
          答:會(huì)。如:int i,i2; return (i-i2); //when i為足夠大的正數(shù),i2為足夠大的負(fù)數(shù)。結(jié)果會(huì)造成溢位,導(dǎo)致錯(cuò)誤。
          貌似和泄漏關(guān)系不大。

          例子很容易寫(xiě),只要寫(xiě)個(gè)靜態(tài)的集合,寫(xiě)個(gè)線程不停往里面寫(xiě)東西。
          內(nèi)存泄漏問(wèn)題不是語(yǔ)言層面能夠完全解決的。設(shè)計(jì)也會(huì)帶來(lái)內(nèi)存泄漏。  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本……[未登錄](méi) 2009-03-17 10:18 | nile black
          實(shí)際上樓主還是答得相當(dāng)不錯(cuò)的。為我的粗魯?shù)狼浮?nbsp; 回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本……[未登錄](méi) 2009-03-17 20:43 | 殘夢(mèng)追月
          @nile black
          寒,不是我回答得,只是我收集整理得&……  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本……[未登錄](méi) 2009-11-26 10:30 | 日月
          你的內(nèi)容很不錯(cuò)啊,尤其是spring2.5內(nèi)容寫(xiě)的很通俗易懂.希望你今后能有更好的更新的的內(nèi)容出來(lái)啊  回復(fù)  更多評(píng)論
            
          # re: 收集整理的java筆試面試題目 1.0版本…… 2010-07-27 10:41 | juqkai
          好多內(nèi)容都 是錯(cuò)的~~~  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 灵丘县| 和龙市| 辽宁省| 天台县| 襄垣县| 阆中市| 高平市| 漳浦县| 绿春县| 称多县| 德兴市| 玉山县| 鹤壁市| 富阳市| 宜昌市| 称多县| 陕西省| 哈密市| 峨眉山市| 拉萨市| 大姚县| 安丘市| 兴仁县| 安福县| 新泰市| 常山县| 泊头市| 永德县| 抚州市| 广河县| 通化县| 东丽区| 婺源县| 阿克苏市| 乳山市| 盐山县| 兖州市| 苗栗市| 包头市| 兴宁市| 新津县|