Java面試題大全(答案版)_第1頁(yè)
Java面試題大全(答案版)_第2頁(yè)
Java面試題大全(答案版)_第3頁(yè)
Java面試題大全(答案版)_第4頁(yè)
Java面試題大全(答案版)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一個(gè)“Java”源文件中是否可以包括多個(gè)類(lèi)(不是內(nèi)部類(lèi))?有什么限制?可以,但是只能有一個(gè)類(lèi)用public修飾,并且用public修飾的類(lèi)名與文件名要一致2、&和&&的區(qū)別。&和&&都可以用作邏輯與;&&還具有短路功能,即如果第一個(gè)表達(dá)式的結(jié)果為false,則不再計(jì)算第二個(gè)表達(dá)式;&還可以用作位運(yùn)算符,當(dāng)&操作符兩邊的表達(dá)式不是boolean類(lèi)型時(shí),&表 示按位與 操作。3、Java 有沒(méi)有 goto?java中的保留字,現(xiàn)在沒(méi)有在java中使用。4、在JAVA中,如何跳出當(dāng)前的多重嵌套循環(huán)?break+變

2、量控制與return5、sw讓ch是否能作用在byte (拜特)上,是否能作用在long上,是否能作用在Stri ng上?Switch可以作用在int±,而byte可以隱式轉(zhuǎn)換為int所以能作用在byte上不能作用在long上,也不能作用在String上6、short s1 = 1; s1 = s1 + 有什么錯(cuò)? short s1 = 1; s1 +=有什么錯(cuò)?1在java中為int數(shù)據(jù)類(lèi)型,short+int=int,大類(lèi)型轉(zhuǎn)為小類(lèi)型,編譯時(shí),會(huì)報(bào)告需要 強(qiáng)制轉(zhuǎn)換類(lèi)型的錯(cuò)誤。s1+=1不會(huì)報(bào),因?yàn)镴VM會(huì)對(duì)它特殊處理(自動(dòng) 強(qiáng)轉(zhuǎn))7、char型變量中能不能存貯一個(gè)中文漢字?為什么

3、?可以,char型變量是用來(lái)存儲(chǔ)uni code (依妮Q特)編碼的,而uni code編碼包 含了中文,所以是可以保存的&編程題:用最有效率的方法算出2乘以8等於幾?2«3,表示將2左移3位;一個(gè)數(shù)左移幾位就表示這個(gè)數(shù)乘以了2的幾次方,左移運(yùn)算,CPU直接支持,所以是最有效率的9、請(qǐng)?jiān)O(shè)計(jì)一個(gè)一百億的計(jì)算器思路:用兩個(gè)數(shù)組分別保存兩個(gè)操作數(shù),再新建一個(gè)數(shù)組保存結(jié)果。0'使用final關(guān)鍵字修飾一個(gè)變量時(shí),是引用不能變,還是引用的對(duì)象不能變?引用變量不能變1、"="和equals方法究竟有什么區(qū)別?=和equals方法都可以用來(lái)比較兩個(gè)對(duì)象是否是同一

4、個(gè)對(duì)象。=還可以比較兩個(gè)變量的值是否相等。equals是Object類(lèi)中的方法,可以由子類(lèi)重寫(xiě)此方法,實(shí)現(xiàn)內(nèi)容相等。2、靜態(tài)變量和實(shí)例變量的區(qū)別?語(yǔ)法上不同:靜態(tài)變量前要加static關(guān)鍵字,實(shí)例變量不需要程序運(yùn)行時(shí)不同:實(shí)例變量是屬于某個(gè)對(duì)象的,只有創(chuàng)建了對(duì)象,才會(huì)為這個(gè)對(duì)象的 實(shí)例變量分配空間。靜態(tài)變量是屬于類(lèi)的,當(dāng)程序加載了這個(gè)類(lèi)的字節(jié)碼文件,就會(huì)為靜 態(tài)變量分配空間,并且所有對(duì)象共享這個(gè)變量3、是否可以從一個(gè)static方法內(nèi)部發(fā)出對(duì)非static方法的調(diào)用?不可以,非static方法需要與對(duì)象關(guān)聯(lián)在一起的,而static方法調(diào)用時(shí)不需 要對(duì)象,可以直接調(diào)用,也就是說(shuō)調(diào)用static方

5、法時(shí),可能還沒(méi)有創(chuàng)建任何實(shí)例4、Integer與int的區(qū)別int是java中的8種基本數(shù)據(jù)類(lèi)型之一,默認(rèn)值是 0, Integer是int的包裝類(lèi), 默認(rèn)值是null,即Integer可以表示未賦值和賦值為05、 (麥死)Math.round (亂的)(11.5)等於多少? Math.round (-11.5)等於多少? 12,-11,Math.round ()方法的實(shí)現(xiàn)是:Math.floor (n+0.5);6、作用域public, private, protected,以及不寫(xiě)時(shí)的區(qū)別本類(lèi)同包子類(lèi)其他類(lèi)public?protectedfrien dlyprivate ?7、Overlo

6、ad (喔我樓的)和Override的區(qū)別。Overloaded的方法是否可以改變 返回值的類(lèi)型?Overload是重載,Override是重寫(xiě)。Overload是指在一個(gè)類(lèi)中,方法名相同,參數(shù)列表不同,那么這些方法之間構(gòu)成重 載。Override是指在父子類(lèi)之間,子類(lèi)的方法簽名和父類(lèi)的方法簽名完全一樣,那么這兩個(gè) 方法構(gòu)成重寫(xiě)。Overload的方法可以改變返回值。因?yàn)檎{(diào)用方法時(shí),返回值可以接受也可以不接受, 所以編譯器無(wú)法根據(jù)返回值來(lái)判斷是否重載。&構(gòu)造器Constructor (看似爪克特)是否可被override?Constructor不能被繼承,所以不能override9、接

7、口是否可繼承接口 ?抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口 ?抽象類(lèi)是 否可繼 承具體類(lèi)(concrete class)?抽象類(lèi)中是否可以有靜態(tài)的main方法?接口可以繼承接口,抽象類(lèi)可以實(shí)現(xiàn)接口,抽象類(lèi)可以繼承具體類(lèi),抽象類(lèi)中可以有靜態(tài)的main方法0、寫(xiě)clone。方法時(shí),通常都有一行代碼,是什么?super.clo ne();克隆時(shí),首先得將父類(lèi)的成員克隆完。1、面向?qū)ο蟮奶卣饔心男┓矫娣庋b封裝是把過(guò)程和數(shù)據(jù)包圍起來(lái),對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)只能通過(guò)已定義的界面。面向?qū)ο笥?jì)算 始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治' 封裝的對(duì)象,這些對(duì)象通 過(guò)一個(gè)受保護(hù)的接口訪(fǎng)問(wèn)其他對(duì)

8、象。繼承繼承是一種聯(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)可以修改或增加新的方法使之更適合特 殊的需要。抽象抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo) 有關(guān)的方面。抽象并不打算了解全部問(wèn)題,而只是選擇其中的一部分,暫時(shí)不用部分細(xì) 節(jié)。抽象包括兩個(gè)方面,一是過(guò)程抽象,二是數(shù)據(jù)抽象。多態(tài)多態(tài)性是指允許不同類(lèi)的對(duì)象對(duì)同一消息作出響應(yīng)。多態(tài)

9、性包括參數(shù)化多態(tài)性和包含 多態(tài)性。多態(tài)性語(yǔ)言具有靈活' 抽象、行為共享,代碼共享的優(yōu)勢(shì),很好的解決了應(yīng)用程 序函數(shù)同名問(wèn)題。2、java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么?靠的是父類(lèi)或接口能夠指向子類(lèi)或?qū)崿F(xiàn)類(lèi)。程序運(yùn)行時(shí),JVM會(huì)根據(jù)內(nèi)存中實(shí)際的對(duì)象調(diào)用方法。3、abstract (抽象)class 和 in terface 有什么區(qū)別?1V abstract class 本質(zhì)是類(lèi),用 abstract 修飾類(lèi),而 in terface 是接口,將 class 替 換為 in terface2、abstract class可以有構(gòu)造方法,in terface不能有3、abstract class中

10、可以包含普通變量,in terface所有的變量都是final static的4、abstract class中可以包含普通方法,in terface中所有的方法都是抽象的。5、abstract class中除抽象方法不可以是private修飾符外,其它成員任意;而in terface中所有成員的修飾符都為public6、abstract class可以繼承一個(gè)類(lèi)實(shí)現(xiàn)多個(gè)接口,in terface只能繼承接口4、abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí) 是 synchronized?abstract的方法不可以是static, abstrac

11、t方法必須由子類(lèi)去實(shí)現(xiàn),而static方法可以 由當(dāng)前類(lèi)調(diào)用。abstract的方法不可以是native, abstract方法必須由子類(lèi)去實(shí)現(xiàn),而native是調(diào)用其 它程序語(yǔ)言的代碼,所以不存在由子類(lèi)去實(shí)現(xiàn)的問(wèn)題,矛盾。關(guān)于abstract和synchronized同用的問(wèn)題,我覺(jué)得也不行,因?yàn)樵谶@幾年的 開(kāi)發(fā)中, 從沒(méi)見(jiàn)過(guò)這種情況,而且我覺(jué)得syn chr。nized應(yīng)該是作用在一個(gè)具體的方法上才有意義。5、什么是內(nèi)部類(lèi)?在一個(gè)類(lèi)的內(nèi)部定義的類(lèi)叫做內(nèi)部類(lèi)。6、內(nèi)部類(lèi)可以引用外部類(lèi)的成員嗎?有沒(méi)有什么限制?如果不是靜態(tài)內(nèi)部類(lèi),完全可以。7、Static Nested Class 和 Inn

12、er Class 的不同。Nested Clas般是C+勺說(shuō)法,Inner Class 一般是Java的說(shuō)法,指的是同一意思。內(nèi)部類(lèi)分為靜態(tài)內(nèi)部類(lèi)和非靜態(tài)內(nèi)部類(lèi)。靜態(tài)內(nèi)部類(lèi)中可以包含靜態(tài)成員,非靜態(tài)內(nèi)部類(lèi)中不可以包含靜態(tài)成員。靜態(tài)內(nèi)部類(lèi)中不能引用外部類(lèi)中的實(shí)例成員。非靜態(tài)內(nèi)部類(lèi)則沒(méi)有這個(gè)限制。8、Anonymous Inner Class匿名內(nèi)部類(lèi))是否可以extends (繼承)其它類(lèi),是 否可 以 implements (實(shí)現(xiàn))interface (接口) ?可以繼承其它類(lèi),可以實(shí)現(xiàn)接口9、String是最基本的數(shù)據(jù)類(lèi)型嗎?不是,基本數(shù)據(jù)類(lèi)型是:byte short int long fl

13、oat double char boolean0、String s = "Hello's = s+ " world!"這兩行代碼執(zhí)行后,原始的String對(duì)象 中的內(nèi)容 到底變了沒(méi)有?沒(méi)有,String類(lèi)被設(shè)計(jì)為不可變的類(lèi)。所以它的所有對(duì)象都不可變。1、是否可以繼承String類(lèi)?不可以。Stri ng被fin al修飾,被n al修飾的類(lèi)不可被繼承。2、String s = new String("xyz")創(chuàng)建了幾個(gè) String Object?二者之間有什么區(qū) 別?2個(gè)對(duì)象。一個(gè)放在常量區(qū),不管寫(xiě)多少遍,永遠(yuǎn)只有一個(gè)。一個(gè)放在堆內(nèi)

14、存中。每次 new String就產(chǎn)生一個(gè)新的。3、String 禾口 Stri ng Buff er 的區(qū)另 UString和StringBuffer都是操作字符串的類(lèi)。String類(lèi)被設(shè)計(jì)為不可變,而StringBuffer可變。4、如何把一段逗號(hào)分割的字符串轉(zhuǎn)換成一個(gè)數(shù)組?第一種用正則表達(dá)式的方式:String類(lèi)的split方法第二種方式:StringTokenizer 代碼為:new StringTokenizer( " 1,2,3,4” ,“,”);5、數(shù)組有沒(méi)有l(wèi)ength。這個(gè)方法? String有沒(méi)有l(wèi)ength。這個(gè)方法?數(shù)組是length屬性,String有l(wèi)en

15、gth。這個(gè)方法6、try 里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的M ally 里的code會(huì)不會(huì)被 執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?會(huì),return 前8、fin al, fin ally, fin alize 的區(qū)別。final用來(lái)修飾類(lèi),變量,方法的。修飾類(lèi)表示類(lèi)不可被繼承,修飾變量表示變量的引 用不可變,修飾方法表示方法不可被重寫(xiě)。fin ally是異常處理結(jié)構(gòu)中的一部分,表示一定會(huì)執(zhí)行。finalize是。bject類(lèi)的方法,當(dāng)垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用此對(duì)象的這個(gè) 方法。9、運(yùn)行時(shí)異常與一般異常有何異同?一般異常強(qiáng)制要求捕獲或聲明。運(yùn)行時(shí)異常可以捕獲,也可

16、以不捕獲。0、error和exception有什么區(qū)別?error表示恢復(fù)不是不可能但是很困難的情況下的一種嚴(yán)重問(wèn)題。例如:內(nèi)存溢出exception表示程序的設(shè)計(jì)或?qū)崿F(xiàn)有問(wèn)題。也就是說(shuō)如果程序正常運(yùn)行,不會(huì)發(fā)生的情 況。1、Java中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用。當(dāng)Java程序違反了 Java的語(yǔ)義規(guī)則時(shí),JVM就會(huì)將發(fā)生的錯(cuò)誤表示為一個(gè)異常。違 反語(yǔ)義規(guī)則包括兩種:一種是Java類(lèi)庫(kù)內(nèi)置的語(yǔ)義檢查,另一種是程 序員自己定義的異 常。2、給我一個(gè)你最常見(jiàn)到的run time (茹二樓)exceptio n。ArithMaticExcepti on NullPoi ntExceptio n

17、In dexOfB oun dExcept! onHibernateExceptio n(子類(lèi):CacheExcepti on J_ azy In itializatio nExceptio n, Mapp in gExceptio n)NestedR un timeExcepti on( AopC on figExcepti on, Aop Inv ocati on Except! on)3、JAVA語(yǔ)言如何進(jìn)行異常處理,關(guān)鍵字:由。/7$,由9亞,甘丫02忙11廣訪(fǎng)211丫分別代表什 么意義?在try塊中可以?huà)伋霎惓??throws用來(lái)表名方法可能拋出異常。throw用來(lái)明確的拋一個(gè)異常。

18、try用來(lái)監(jiān)控一段可能出現(xiàn)異常的代碼。當(dāng)出現(xiàn)異常后進(jìn)入catch塊,進(jìn)行異常類(lèi)型匹配fin ally表示無(wú)論是否出現(xiàn)異常都要執(zhí)行的代碼4、java中有幾種方法可以實(shí)現(xiàn)一個(gè)線(xiàn)程?用什么關(guān)鍵字修飾同步方法? stop()和 suspend(方法為何不推薦使用?有兩種實(shí)現(xiàn)方法,分別是繼承Thread (斯read)類(lèi)與實(shí)現(xiàn)Runnable (軟的包)接口用synchronized (新鬼耐斯特)關(guān)鍵字修飾同步方法因?yàn)樗麄兪蔷€(xiàn)程的方法,不安全,當(dāng)已啟動(dòng)后,就想脫韁野馬難以把控5、sleep。斯瑞譜)和wait()(外特)有什么區(qū)別?1、sleep是線(xiàn)程類(lèi)的方法wait是Object類(lèi)的方法2、slee

19、p會(huì)自動(dòng)醒來(lái)wait需要notify喚醒 3、sleep不會(huì)釋放鎖wait會(huì)釋放鎖6、同步和異步有何異同,在什么情況下分別使用他們?舉例說(shuō)明。&多線(xiàn)程有幾種實(shí)現(xiàn)方法?同步有幾種實(shí)現(xiàn)方法?多線(xiàn)程有兩種實(shí)現(xiàn)方法,分別是繼承Thread類(lèi)與實(shí)現(xiàn)Runnable接口同步的實(shí)現(xiàn)方面有三種:1、同步代碼塊2、同步方法3、 Lock9、啟動(dòng)一個(gè)線(xiàn)程是用run()還是start。?.Start()(斯達(dá)特)0、當(dāng)一個(gè)線(xiàn)程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線(xiàn)程是否可 進(jìn) 入此對(duì)象的其它方法?分幾種情況:1 其他方法前是否加了 syn chro nized關(guān)鍵字,如果沒(méi)加,貝口能。2如

20、果這個(gè)方法內(nèi)部調(diào)用了 wait,則可以進(jìn)入其他synchronized方法。3如果其他個(gè)方法都加了 syn chro nized關(guān)鍵字,并且內(nèi)部沒(méi)有調(diào)用wait,則 不 能。1、線(xiàn)程的基本概念、線(xiàn)程的基本狀態(tài)以及狀態(tài)之間的關(guān)系線(xiàn)程就是進(jìn)程中的一個(gè)執(zhí)行線(xiàn)路。新建new Thread。;就緒:thread.start。;運(yùn)行,阻塞,掛起,結(jié)束。創(chuàng)建一個(gè)線(xiàn)程,這時(shí)狀態(tài)為新建,當(dāng)調(diào)用start方法后轉(zhuǎn)為就緒,再由線(xiàn)程 調(diào)度器 將就緒狀態(tài)轉(zhuǎn)為運(yùn)行狀態(tài),遇到 sy richro nized語(yǔ)句后,可能由運(yùn)行狀態(tài)改 為阻塞狀態(tài),當(dāng)獲得synchronized鎖后由阻塞狀態(tài)轉(zhuǎn)為運(yùn)行,這時(shí)調(diào)用wait方法11/

21、28轉(zhuǎn)為掛起狀態(tài)。當(dāng)線(xiàn)程關(guān)聯(lián)的代碼執(zhí)行完成后。線(xiàn)程轉(zhuǎn)為結(jié)束。2、簡(jiǎn)述 synchronized 禾口 java.util.concurrent.locks.Lock 的異同?主要相同點(diǎn):Lock (拉克)能完成synchronized所實(shí)現(xiàn)的所有功能主要不同點(diǎn):Lock有比synchronized更精確的線(xiàn)程語(yǔ)義和更好的性能。 synchronized會(huì)自動(dòng)釋放鎖,而Lock一定要求程序員手工釋放,并且必須在萬(wàn)n ally從 句中釋放。4、Array List 和 Vector 的區(qū)別ArrayList 和 Vector 都實(shí)現(xiàn)了 List 接口。ArrayList是線(xiàn)程不安全的,Vector

22、是線(xiàn)程安全的。ArrayList的增長(zhǎng)方式為*3/2+1 Vector的增長(zhǎng)方式為*2,Vector還可以設(shè)置增 長(zhǎng)Mo5、HashMap 和 Hashtable 的區(qū)另ijHashtable 和 HashMap 都實(shí)現(xiàn)了 Map 接口。Hashtable是線(xiàn)程安全的,HashMap是線(xiàn)程不安全的。Hashtable不允許鍵值為null, HashMap允許。Hashtable 自 JDK1.0 就有了,HashMap 至IJ 1.2 才出來(lái)。Map 中有 2 個(gè)方法分別是 con tai nsKey 康騰思 Key 和 con tai nsValue; Hashtable 中還有個(gè)conta

23、ins方法,容易讓人誤解,HashMap沒(méi)有。6、List 和 Map 區(qū)別?List是存儲(chǔ)單列數(shù)據(jù)的有序集合,允許重復(fù)。而 Map是鍵值對(duì)雙列數(shù)據(jù)的集 合。鍵不允許重復(fù),值可以重復(fù)。7、List, Set, Map 是否繼承自 Collection 接口 ?Collection (克萊克神)是集合類(lèi)的頂級(jí)接口,其子接口分別是Ust和SetList 下有 ArrayList,LinkedList Se 下有 HashSet TreeSetCollection和Map沒(méi)有關(guān)系,Map是HashMap的父接口8、List、Map、Set三個(gè)接口,存取元素時(shí),各有什么特點(diǎn)?List以特定的次序來(lái)持有

24、元素,允許重復(fù)。Set無(wú)法擁有重復(fù)兀素,內(nèi)部排序。Map保存key-value值,key不可重復(fù),value可重復(fù)。9、說(shuō)出ArrayList,Vector, LinkedList的存儲(chǔ)性能和特性ArrayList和Vector都是使用數(shù)組存儲(chǔ)數(shù)據(jù)。查找快,插入慢。由于Vector是線(xiàn)程安全 的,所以性能上比ArrayList差。LinkedList是鏈表結(jié)構(gòu)。插入快,查找慢。0、去掉一個(gè)Vector集合中重復(fù)的元素最簡(jiǎn)單的方式:HashSet set = new HashSet(vector);1、Collection 和 Collections 的區(qū)別。Collection是集合類(lèi)的頂級(jí)接

25、口,而Collections是集合類(lèi)的輔助類(lèi),如:將一個(gè)數(shù)組 的元素copy到另一個(gè)集合。2、Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢?是用=還是 equals。?它們有1可區(qū)另IJ ?equals,區(qū)別見(jiàn)11題3、你所知道的集合類(lèi)都有哪些?主要方法?集合類(lèi)有(畫(huà)集合類(lèi)的體系結(jié)構(gòu))ArrayList 的主要方法:add,get,remove,c on tai ns,i ndexOf,isEmpty,toArray,iteratorLinkedList 的主要方法:add,get,remove,addFirst,addLast,getFirst,getLast,iterator

26、HashSet 的主要方法:add,iterator,removeHashMap 的主要方法:put,get,remove,entrySet,keyset,values4、兩個(gè)對(duì)象值相同(x.equals(y) = true),但卻可有不同的hash code,這句 話(huà)對(duì)不對(duì)?對(duì)。+5、java中有幾種類(lèi)型的流? JDK為每種類(lèi)型的流提供了一些抽象類(lèi)以供繼承,請(qǐng)說(shuō) 出他們分別是哪些類(lèi)?根據(jù)功能分:輸入流,輸出流根據(jù)類(lèi)型分:字節(jié)流,字符流輸入字節(jié)流的抽象類(lèi):Inputstream輸出字節(jié)流的抽象類(lèi):Outputstream(Stream斯俊木)輸入字符流的抽象類(lèi):Reader (瑞得)輸出字符流

27、的抽象類(lèi):Writer(ruai 的)6、什么是java序列化,如何實(shí)現(xiàn)java序列化?序列化就是指將內(nèi)存中的一個(gè)對(duì)象存儲(chǔ)到硬盤(pán)中或者轉(zhuǎn)為字節(jié)碼作網(wǎng)絡(luò)傳輸。實(shí)現(xiàn)Serializable修兒奈斯口波)接口。7、描述一下JVM加載class文件的原理機(jī)制?JVM中類(lèi)的加載是由ClassLoade和它的子類(lèi)來(lái)實(shí)現(xiàn)的。Java Class Loade是一個(gè)重 要的Java運(yùn)行時(shí)系統(tǒng)組件。它是一個(gè)負(fù)責(zé)查找和裝入類(lèi)文件的類(lèi)。8、heap (細(xì)譜)和stack (死大克)有什么區(qū)別。stack是用來(lái)保存基本數(shù)據(jù)類(lèi)型,以及變量的引用。小,速度快heap是用來(lái)保存new出來(lái)的對(duì)象。大,速度慢。9、GC是什么?為

28、什么要有GC?13 /GC是Garbage Collec寸on位圾回收)。內(nèi)存處理是程序員容易出現(xiàn)問(wèn)題的地方。忘 記回收或錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰。Java提供的GC可以自動(dòng)檢測(cè)對(duì)象是否已經(jīng)死亡,從而進(jìn)行回收內(nèi)存。0、垃圾回收的優(yōu)點(diǎn)和原理。并考慮2種回收機(jī)制。垃圾回收機(jī)制使得程序員不需要關(guān)注內(nèi)存的回收和釋放,提高了程序的健壯性。垃圾回收器通常是作為一個(gè)單獨(dú)的低級(jí)別線(xiàn)程運(yùn)行。當(dāng)程序員創(chuàng)建對(duì)象時(shí),GC就開(kāi) 始監(jiān)測(cè)這個(gè)對(duì)象的地址、大小及使用情況,通常,GC采用有向圖的方式記錄和管理堆中的所有對(duì)象。通過(guò)這種方式確定哪些對(duì)象是 “不可達(dá)”時(shí),GC就 有責(zé)任回收這些內(nèi)存空間。標(biāo)記垃圾

29、回收機(jī)制和分帶復(fù)制垃圾回收機(jī)制。1、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主 動(dòng)通知虛擬機(jī)進(jìn)行垃圾回收?垃圾回收器通常是作為一個(gè)單獨(dú)的低級(jí)別線(xiàn)程運(yùn)行。當(dāng)程序員創(chuàng)建對(duì)象時(shí),GC就開(kāi) 始監(jiān)測(cè)這個(gè)對(duì)象的地址、大小及使用情況,通常,GC采用有向圖的方式記錄和管理堆中的所有對(duì)象。通過(guò)這種方式確定哪些對(duì)象是 “不可達(dá)”時(shí),GC就 有責(zé)任回收這些內(nèi)存空間??梢?。通過(guò)System.gc()或者Runtime.getRuntime().gc()來(lái)通知GC回收內(nèi)存,但是 Java語(yǔ)言規(guī)范不保證GC一定會(huì)執(zhí)行。2、什么時(shí)候用assert (額色特)。assert(斷言)是程序開(kāi)發(fā)中一種

30、常見(jiàn)的調(diào)試方式。3、java中會(huì)存在內(nèi)存泄漏嗎,請(qǐng)簡(jiǎn)單描述。會(huì)。內(nèi)存泄漏就是指一個(gè)不再被程序使用的對(duì)象一直占據(jù)著內(nèi)存。長(zhǎng)生命周期的對(duì)象持有短生命周期對(duì)象的引用就很可能發(fā)生內(nèi)存泄露,盡管短生命周 期對(duì)象已經(jīng)不再需要,但是因?yàn)殚L(zhǎng)生命周期對(duì)象持有它的引用而導(dǎo)致不能被回收,這就是 java中內(nèi)存泄露的發(fā)生場(chǎng)景5、說(shuō)出一些常用的類(lèi),包,接口,請(qǐng)各舉 5個(gè)包:(Spri ng)org.spri ngframework.c on text,org.spr in gframework.web.c on text,org.spri ngframework.web.c on text.filter,org.spr

31、i ngframework.orm.hibernate3.su pport(Hibernate)org.hiber nate,org.hibernate.cfg(Struts)org.apache.struts.actio ns,org.apache.struts.upload(DWR)org.directwebremoti ng.servlet接口 :(Spring)ApplicationContext,(Hibernate)Sessi on Factory,Sessio n, Query,Criteria,SQLQuery,Tra nsactio n(Stru ts)FormFile類(lèi):(

32、Spri ng)ClassPathApplicatio nCon text, Ope nSessi onlnV iewFilter,CharacterE ncodi ngFilter(Hibernate)C on figurati on 'Hibernate(Struts)Actio nForm,Actio nQispatchActio n,Mappi ngDisactio nActio n(DWR)DwrServlet7、能不能自己寫(xiě)個(gè)類(lèi),也叫java.la ng.Stri ng?能,但是沒(méi)什么價(jià)值。9、說(shuō)明生活中遇到的二叉樹(shù),用java實(shí)現(xiàn)二叉樹(shù)1、寫(xiě)一個(gè)Singleton (省構(gòu)

33、騰)出來(lái)。1V構(gòu)造私有2、一個(gè)靜態(tài)的自身屬性,初始化 3、提供共有的訪(fǎng)問(wèn)自身屬性的方法4、排序都有哪幾種方法?請(qǐng)列舉。用JAVA實(shí)現(xiàn)一個(gè)快速排序。冒泡排序,插入排序,選擇排序,快速排序0、HTTP請(qǐng)求的GET與POST方式的區(qū)別1、Get方式請(qǐng)求的字符串長(zhǎng)度不能超過(guò)255, Post理論上沒(méi)有限制。2、Get方式會(huì)將請(qǐng)求的內(nèi)容在地址欄顯示,Post不會(huì)。所以Get方式不安全, Post方式安全。1、解釋一下什么是servlet;servlet就是運(yùn)行在服務(wù)器端的java小程序。2、說(shuō)一說(shuō)Servlet的生命周期?出生(new),學(xué)習(xí)(init),服務(wù)(service)死亡(destroy)3、

34、Servlet的基本架構(gòu)public MyServlet exte nds HttpServletpublic void doGet(HttpServletRequest req,HttpServletResp onse resp)throws lOExceptio n, ServletExceptio npublic void doPost(HttpServletRequest req,HttpServletResp onse resp) throws ServletExceptio n,lOExceptio n)4、SERVLET A 中 forwardo 與 redirect。(瑞滴 r

35、uai 克特)的區(qū)別?1 v forward是請(qǐng)求對(duì)象的方法,redirect是響應(yīng)對(duì)象的方法;2、forward是轉(zhuǎn)發(fā),地址欄不會(huì)顯示轉(zhuǎn)發(fā)后的路徑'redirect是重定向,地址欄會(huì)顯示3、forward 比 redirect 效率更高4v forward是1次請(qǐng)求,redirect是2次請(qǐng)求5、forward只能在本工程內(nèi)轉(zhuǎn)向,redirect可以跳轉(zhuǎn)到其他工程 5、什么情況下調(diào)用doGet()和doPostQ?jsp頁(yè)面中的form標(biāo)簽里的method屬性為get時(shí)調(diào)用doGet(),為post時(shí)調(diào) 用 doPost()o17/6、Request對(duì)象的主要方法: setAttri

36、bute(String name,Object):設(shè)置名字為 name 的 request 的參數(shù)值getAttribute(String name):返回由 name 指定的屬性值 getAttributeNames():返回request對(duì)象所有屬性的名字集合,結(jié)果是一個(gè)枚 舉的實(shí)例getCookies():返回客戶(hù)端的所有Cookie對(duì)象,結(jié)果是一個(gè)Cookie數(shù)組getCharacterEncoding()返回請(qǐng)求中的字符編碼方式getContentLength():返回請(qǐng)求的Body的長(zhǎng)度 getHeader(String name):獲得HTTP協(xié)議定義的文件頭信息getHeade

37、rs(String name)返回指定名字的request Header的所有值,結(jié)果是 一個(gè)枚舉的實(shí)例getHeaderNames():返回所以request Header的名字,結(jié)果是一個(gè)枚舉的實(shí) 例getlnputStream():返回請(qǐng)求的輸入流,用于獲得請(qǐng)求中的數(shù)據(jù)getMethod():獲得客戶(hù)端向服務(wù)器端傳送數(shù)據(jù)的方法getParameter(String name):獲得客戶(hù)端傳送給服務(wù)器端的有name指定的參數(shù)值getParameterNames():獲得客戶(hù)端傳送給服務(wù)器端的所有參數(shù)的名字,結(jié)果是一個(gè) 枚舉的實(shí)例getParametervalues(String name)

38、獲得有 name 指定的參數(shù)的所有值 getProtocol。:獲取客戶(hù)端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱(chēng)getQueryString():獲得查詢(xún)字符串getRequestURI()獲取發(fā)出請(qǐng)求字符串的客戶(hù)端地址getRemoteAddr():獲取客戶(hù)端的IP地址getRemoteHost():獲取客戶(hù)端的名字getSession(Boolean create)返回和請(qǐng)求相關(guān) Session getServerName():獲取服務(wù)器的名字getServletPath():獲取客戶(hù)端所請(qǐng)求的腳本文件的路徑getServerPort():獲取服務(wù)器的端口號(hào)removeAttribute(St

39、ring name):刪除請(qǐng)求中的一個(gè)屬性7v forward 和 redirect 的區(qū)別request.getAttribute()從請(qǐng)求的8、 request.getAttribute()7R request.getParameter。有彳可區(qū)另 U ?1、request.getParameter()A 請(qǐng)求中的參數(shù)中取值;作用域中取值2、request.getParameter() String 類(lèi)型;request.getAttribute。返回 Object 類(lèi)型9、jsp有哪些內(nèi)置對(duì)象?作用分別是什么?分別有什么方法?JSP共有以下9個(gè)內(nèi)置的對(duì)象:request-用戶(hù)端請(qǐng)求,此請(qǐng)

40、求會(huì)包含來(lái)自 GET/POST青求的參數(shù)response-網(wǎng)頁(yè)傳回用戶(hù)端的回應(yīng)pageContext-網(wǎng)頁(yè)的屬性是在這里管理session-請(qǐng)求有關(guān)的會(huì)話(huà)期application servlet正在執(zhí)行的內(nèi)容out-用來(lái)傳送回應(yīng)的輸出config- servlet的構(gòu)架部件 pageJSF網(wǎng)頁(yè)本身佃/ 28exception一針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外00' jsp有哪些動(dòng)作?作用分別是什么?JSP共有以下6種基本動(dòng)作 jsp:i nclude :在頁(yè)面被請(qǐng)求的時(shí)候引入一個(gè)文件。jsp:useBean :尋找或者實(shí)例化一個(gè)JavaBeanjsp:setProperty:設(shè)置 JavaB

41、ean 的屬性。jsp:getProperty :輸出某個(gè) JavaBean 的屬性。jsp:forward :把請(qǐng)求轉(zhuǎn)到一個(gè)新的頁(yè)面。jsp:plugin:根據(jù)瀏覽器類(lèi)型為Java插件生成OBJEC或EMBED標(biāo)記01、JSP的常用指令page指令屬性:language指示使用什么語(yǔ)言編譯JSP網(wǎng)頁(yè),暫時(shí)只支持Java語(yǔ) 言,默認(rèn)java)、extends定義JSP網(wǎng)頁(yè)產(chǎn)生的Servlet繼承的父類(lèi)),import (同Java 的import)、session設(shè)置當(dāng)前網(wǎng)頁(yè)是否可以使用Session對(duì)象,默認(rèn)為true)、buffer (設(shè) 置輸出流是否有緩沖區(qū) 默認(rèn)為8KB) autoFl

42、ush (設(shè)置是否自動(dòng)清除緩沖 區(qū)緩沖區(qū)如果溢 出會(huì)產(chǎn)生異常默認(rèn)true)、isThreadSafe設(shè)置當(dāng)前頁(yè)面是否允許 處理超過(guò)1個(gè)以上的請(qǐng) 求,不建議更改,默認(rèn)為true)、info (設(shè)置當(dāng)前JSP網(wǎng)頁(yè)的相 關(guān)信息)、errorPage (設(shè) 置一旦發(fā)生異常后重新定向哪個(gè)url)、isErrorPage設(shè)置該JSP頁(yè)面是否為異常處理的頁(yè) 面)、contentType (置 MIME 類(lèi)型和編碼方 式:text/html;charset 二 GBK)、 pageEncoding設(shè)置編碼方式)、isELIgnored設(shè)置是否 忽略EL表達(dá)式,默認(rèn)值為false)taglib指令in elud

43、e 旨令02、JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE勺區(qū)別?1、靜態(tài)是指令動(dòng)態(tài)是動(dòng)作2、靜態(tài)只產(chǎn)生一個(gè)文件動(dòng)態(tài)產(chǎn)生兩個(gè)3、靜態(tài)不可以帶參數(shù)動(dòng)態(tài)可以帶參數(shù)4、靜態(tài)不會(huì)動(dòng)態(tài)更新動(dòng)態(tài)可以。04、頁(yè)面間對(duì)象傳遞的方法sessionV cookie、隱藏表單域、url重寫(xiě)05、JSP和Servlet有哪些相同點(diǎn)和不同點(diǎn),他們之間的聯(lián)系是什么?JSP轉(zhuǎn)義以后就是servletjsp后綴名是.jsp servlet的后綴名是Javajsp側(cè)重于顯示servlet側(cè)重于邏輯jsp 在 mvc 中屬于 view servlet 屬于 controller06、MVC的各個(gè)部分都有那些技術(shù)來(lái)實(shí)現(xiàn)?如何實(shí)現(xiàn)

44、?MVC是Model-View-Controller的簡(jiǎn)寫(xiě)Mode代表的是應(yīng)用的業(yè)務(wù)邏輯(通 過(guò) JavaBean,EJ組件實(shí)現(xiàn))JView”是應(yīng)用的表示面(由JSF頁(yè)面產(chǎn)生)/Controller”是提供應(yīng) 用的處理過(guò)程控制(一般是一個(gè)Servlet)通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程和顯示 邏輯分成不同的組件實(shí)現(xiàn)這些組件可以進(jìn)行交互和重用。07、我們?cè)趙eb應(yīng)用開(kāi)發(fā)過(guò)程中經(jīng)常遇到輸出某種編碼的字符,如iso8859-1等,如 何輸出一個(gè)某種編碼的字符串?new String (str.getByte (原編碼“)新編碼”);08、現(xiàn)在輸入n個(gè)數(shù)字,以逗號(hào),分開(kāi);然后可選擇升或者降序排序;

45、按提 交鍵就在 另一頁(yè)面顯示按什么排序,結(jié)果為,提供reset09、數(shù)據(jù)庫(kù)三范式是什么?第一范式:保證每列的原子性。第二范式:必須要有主鍵,并且其它列都依賴(lài)于該主鍵;第三范式:取消傳遞依賴(lài)10、說(shuō)出一些數(shù)據(jù)庫(kù)優(yōu)化方面的經(jīng)驗(yàn)? 1、存儲(chǔ)優(yōu)化A、通過(guò)表空間將數(shù)據(jù)分散到不同的硬盤(pán)上B、通過(guò)表分區(qū)分散數(shù)據(jù),方便備份還原2、查詢(xún)優(yōu)化A、通過(guò)表分區(qū)方便查詢(xún)B、為表建立索引C、SQL語(yǔ)句11 v union (優(yōu)妮安)和union all (哦)有什么不同?union 去重復(fù) union all不去重復(fù)13、什么是存儲(chǔ)過(guò)程和如何編寫(xiě)存儲(chǔ)過(guò)程就是存儲(chǔ)在數(shù)據(jù)庫(kù)中帶有名字的PL/SQL塊,完成一定的功能。Crea

46、te or replace procedure procName 參數(shù) in,out,in out)AspsVariableBeg inexcepti onend14、注冊(cè)Jdbc驅(qū)動(dòng)程序的三種方式15、用JDBC如何調(diào)用存儲(chǔ)過(guò)程CallableStatement callSta = con.prepareCal( “ ca 過(guò)程名”);callSta.execute();16、 JDBC 中的 PreparedStatement 相比 Statement 的好處速度快,可以防止sql注入攻擊。18、Class.forName的作用?為什么要用?加載類(lèi)文件,創(chuàng)建類(lèi)對(duì)象。注冊(cè)驅(qū)動(dòng)。19、大數(shù)據(jù)量

47、下的分頁(yè)解決方法。我們一般采用后臺(tái)SQL語(yǔ)句分頁(yè)21、說(shuō)出數(shù)據(jù)連接池的工作機(jī)制是什么?因?yàn)槲覀冊(cè)诓僮鲾?shù)據(jù)庫(kù)的時(shí)候,打開(kāi)連接和關(guān)閉連接是耗時(shí),耗性能,我 們希望通過(guò)一種機(jī)制減少這種開(kāi)銷(xiāo),這就是數(shù)據(jù)連接池的初衷;J2EEI服務(wù)器啟動(dòng)時(shí)會(huì)建立一定數(shù)量的池連接,并放入到一個(gè)池中,當(dāng)我需要獲得連 接的時(shí)候,只需要從此池中拿到連接并標(biāo)記為繁忙,用完之后放回池中并標(biāo)記為空閑,這 樣就能提圖我們的訪(fǎng)問(wèn)性能。22、為什么要用ORM?和JDBC有何不一樣?ORM就是Object Relational Mapping對(duì)象關(guān)系映射,因?yàn)橛胘dbc操作數(shù)據(jù)庫(kù) 代碼非 常繁瑣,ORM可以將表映射成實(shí)體,與我們的OOP編程

48、思想完全一致的,方便程序開(kāi) 發(fā)。但速度比jdbc慢23、xml有哪些解析技術(shù)?區(qū)別是什么?DOM、SAXDOM是一次性將一個(gè)文件載入內(nèi)存,產(chǎn)生 DOM樹(shù),適合多次讀寫(xiě)操作,適 合操作小型文檔SAX是事件驅(qū)動(dòng)的解析方式,它不是一次性載入整個(gè)文件,而是遇到文檔開(kāi)頭標(biāo)記等 等觸發(fā)事件來(lái)處理,適合解析大型文檔24、你在項(xiàng)目中用到了 xml技術(shù)的哪些方面?如何實(shí)現(xiàn)的?1、數(shù)據(jù)交換 2、配置文件3、存儲(chǔ)數(shù)據(jù)25、用jdom解析xml文件時(shí)如何解決中文問(wèn)題?如何解析?import javax.xml.tra nsform.*;Tran sformer tran sformer =Tran sformerFa

49、ctory. newl nsta nce(). newTra nsformer();tran sformer.setOutputProperty(javax.xml.tra nsform.OutputKeys.ENCODING, Hgb2312H);tran sformer.setOutputProperty(javax.xml.tra nsform.OutputKeys .IN DENT, “yes”);26、編程用JAVA解析XML的方式.27、 XML文檔定義有幾種形式?它們之間有何本質(zhì)區(qū)別?解析XML文檔有 哪幾種 方式?a:兩種形式dtd schema,(是給帽)b:本質(zhì)區(qū)別:sch

50、ema本身是xml的,比DTD有更精確的規(guī)則定義;28、BS與CS的聯(lián)系與區(qū)別。C/S 是 Client/Server 的縮寫(xiě)。B/ S 是 Brower/Server 的縮寫(xiě),硬件不同,一個(gè)是局域網(wǎng),一個(gè)是廣域網(wǎng)安全不同 C/S安全高B/S速度不同 C/S速度塊維護(hù)C/S不方便維護(hù)B/S方便維護(hù)29、應(yīng)用服務(wù)器與WEB SERVE的區(qū)別?1、應(yīng)用服務(wù)器處理業(yè)務(wù)邏輯,web服務(wù)器則主要是讓客戶(hù)可以通過(guò)瀏覽器進(jìn)行訪(fǎng)問(wèn)。2、應(yīng)用服務(wù)器處理業(yè)務(wù)邏輯,web服務(wù)器是用于處理HTML文件的。web服務(wù)器通 常比應(yīng)用服務(wù)器簡(jiǎn)單,如apache就是web服務(wù)器,Jboss就是EJB應(yīng)用服務(wù)器。應(yīng)用服務(wù)器:W

51、eblogiCx Tomcatx JbossWEB SERVERIIS Apache30、應(yīng)用服務(wù)器有那些?BEA WebLogic Server IBM WebSphere Application Serve,Oracle9i Application Serve, jBoss, Tomcat31、J2EE是什么?J2EE是應(yīng)用平臺(tái),是標(biāo)準(zhǔn),是框架33、請(qǐng)對(duì)以下在J2EE中常用的名詞進(jìn)行解釋(或簡(jiǎn)單描述)Web容器:能解析Jsp和Servlet的應(yīng)用服務(wù)器EJB容器:就是能解析EJB組件的應(yīng)用服務(wù)器JNDI(Java Nami ng And Directory In terface) Jav

52、命名與目錄接口JMS(Java Message Service)Jav ;肖,息月艮務(wù)JTA(Java Tran saction API)JaV 事 務(wù)接口JAF(Java Actio n Framework)Java 安全認(rèn)證框架RMI/IIOP(Remote Method In vocatio n/ln ternet In ter Object Request Broker Protocol)遠(yuǎn)程方法調(diào)用/互聯(lián)網(wǎng)內(nèi)部對(duì)象請(qǐng)求代理協(xié)議50、 WEBSERVIC名詞解釋。JSWDL開(kāi)發(fā)包的介紹。JAXPJAXM的解釋。SOAPUDDI,WSDL角翠木舉。JAXP(Java API for XML Parsi ng)JAXM(Java API for XML Messagi ng)SOAP(Simple Object Access Protocol)UDDI(U niversal Descripti on, Discovery and In teg rati on)WSDL(Web Services

溫馨提示

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

評(píng)論

0/150

提交評(píng)論