Java經(jīng)典筆試題8篇_第1頁
Java經(jīng)典筆試題8篇_第2頁
Java經(jīng)典筆試題8篇_第3頁
Java經(jīng)典筆試題8篇_第4頁
Java經(jīng)典筆試題8篇_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java經(jīng)典筆試題8篇篇1:java筆試題java筆試題1.java是從()語言改進(jìn)重新設(shè)計,a.adab.cc.pasacald.basic答案:b2.下列語句哪一個正確()a.java程序經(jīng)編譯后會產(chǎn)生machinecodeb.java程序經(jīng)編譯后會產(chǎn)生bytecodec.java程序經(jīng)編譯后會產(chǎn)生dlld.以上都不正確答案:b3.下列說法正確的有()a.class中的constructor不可省略b.constructor必須與class同名,但方法不能與class同名c.constructor在一個對象被new時執(zhí)行d.一個class只能定義一個constructor答案:c4.提供java存取數(shù)據(jù)庫能力的包是()a.java.sqlb.java.awtc.java.langd.java.swing答案:a5.下列運(yùn)算符合法的是()a.&b.c.ifd.:=答案:a6.執(zhí)行如下程序代碼a=0;c=0;do{--c;a=a-1;}while(a>0);后,c的值是()a.0b.1c.-1d.死循環(huán)答案:c7.下列哪一種敘述是正確的()a.abstract修飾符可修飾字段、方法和類b.抽象方法的body部分必須用一對大括號{}包住c.聲明抽象方法,大括號可有可無d.聲明抽象方法不可寫出大括號答案:d8.下列語句正確的是()a.形式參數(shù)可被視為localvariableb.形式參數(shù)可被字段修飾符修飾c.形式參數(shù)為方法被調(diào)用時,真正被傳遞的參數(shù)d.形式參數(shù)不可以是對象答案:a9.下列哪種說法是正確的()a.實例方法可直接調(diào)用超類的實例方法b.實例方法可直接調(diào)用超類的類方法c.實例方法可直接調(diào)用其他類的實例方法d.實例方法可直接調(diào)用本類的類方法答案:d二、多項選擇題1.java程序的`種類有()a.類(class)b.appletc.applicationd.servlet2.下列說法正確的有()a.環(huán)境變量可在編譯sourcecode時指定b.在編譯程序時,所能指定的環(huán)境變量不包括classpathc.javac一次可同時編譯數(shù)個java源文件d.javac.exe能指定編譯結(jié)果要置于哪個目錄(directory)答案:bcd3.下列標(biāo)識符不合法的有()a.newb.$usdollarsc.1234d.car.taxi答案:acd4.下列說法錯誤的有()a.數(shù)組是一種對象b.數(shù)組屬于一種原生類c.intnumber=[]={31,23,33,43,35,63}d.數(shù)組的大小可以任意改變答案:bcd5.不能用來修飾interface的有()a.privateb.publictectedd.static答案:acd篇2:java筆試題及其答案1、在java中如果聲明一個類為final,表示什么意思?答:final是最終的意思,final可用于定義變量、方法和類但含義不同,聲明為final的類不能被繼承。2、父類的構(gòu)造方法是否可以被子類覆蓋(重寫)?答:父類的構(gòu)造方法不可以被子類覆蓋,因為父類和子類的類名是不可能一樣的。3、請講述String和StringBuffer的區(qū)別。答:String類所定義的對象是用于存放“長度固定”的字符串。StringBuffer類所定義的對象是用于存放“長度可變動”的字符串。4、如果有兩個類A、B(注意不是接口),你想同時使用這兩個類的功能,那么你會如何編寫這個C類呢?答:因為類A、B不是接口,所以是不可以直接繼承的,但可以將A、B類定義成父子類,那么C類就能實現(xiàn)A、B類的功能了。假如A為B的父類,B為C的父類,此時C就能實現(xiàn)A、B的功能。5、結(jié)合Java視頻Lesson5(多線程),分析sleep和wait()方法的區(qū)別。答:Sleeping睡眠的意思:sleep()方法用來暫時中止執(zhí)行的線程。在睡眠后,線程將進(jìn)入就緒狀態(tài)。waiting等待的意思:如果調(diào)用了wait()方法,線程將處于等待狀態(tài)。用于在兩個或多個線程并發(fā)運(yùn)行時。6、談?wù)勀銓Τ橄箢惡徒涌诘睦斫?。答:定義抽象類的目的是提供可由其子類共享的一般形式、子類可以根據(jù)自身需要擴(kuò)展抽象類、抽象類不能實例化、抽象方法沒有函數(shù)體、抽象方法必須在子類中給出具體實現(xiàn)。他使用extends來繼承。接口:一個接口允許一個類從幾個接口繼承而來,Java程序一次只能繼承一個類但可以實現(xiàn)幾個接口,接口不能有任何具體的方法,接口也可用來定義可由類使用的一組常量。其實現(xiàn)方式是interface來實現(xiàn)。[java筆試題及其答案]篇3:經(jīng)典java筆試題及答案1、anonymousinnerclass(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)答:匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能extends(繼承)其它類,但一個內(nèi)部類可以作為一個接口,由另一個內(nèi)部類實現(xiàn)2、作用域public,private,protected,以及不寫時的區(qū)別答:區(qū)別如下:作用域當(dāng)前類同一package子孫類其他packagepublic√√√√protected√√√×friendly√√××private√×××不寫時默認(rèn)為friendly3、staticnestedclass和innerclass的不同答:nestedclass(一般是c++的說法),innerclass(一般是java的說法)。java內(nèi)部類與c++嵌套類最大的不同就在于是否有指向外部的引用上。注:靜態(tài)內(nèi)部類(innerclass)意味著1創(chuàng)建一個static內(nèi)部類的對象,不需要一個外部類對象,2不能從一個static內(nèi)部類的一個對象訪問一個外部類對象4、&和&&的區(qū)別答:&是位運(yùn)算符,表示按位與運(yùn)算,&&是邏輯運(yùn)算符,表示邏輯與(and)5、collection和collections的區(qū)別答:collection是集合類的上級接口,繼承與他的接口主要有set和list.collections是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、線程安全化等操作6、什么時候用assert答:assertion(斷言)在軟件開發(fā)中是一種常用的調(diào)試方式,很多開發(fā)語言中都支持這種機(jī)制。在實現(xiàn)中,assertion就是在程序中的一條語句,它對一個boolean表達(dá)式進(jìn)行檢查,一個正確程序必須保證這個boolean表達(dá)式的值為true;如果該值為false,說明程序已經(jīng)處于不正確的狀態(tài)下,系統(tǒng)將給出警告或退出。一般來說,assertion用于保證程序最基本、關(guān)鍵的正確性。assertion檢查通常在開發(fā)和測試時開啟。為了提高性能,在軟件發(fā)布后,assertion檢查通常是關(guān)閉的7、strings=newstring(“xyz”);創(chuàng)建了幾個stringobject答:兩個,一個字符對象,一個字符對象引用對象8、math.round(11.5)等於多少?math.round(-11.5)等於多少答:math.round(11.5)==12;math.round(-11.5)==-11;round方法返回與參數(shù)最接近的長整數(shù),參數(shù)加1/2后求其floor9、shorts1=1;s1=s1+1;有什么錯?shorts1=1;s1+=1;有什么錯答:shorts1=1;s1=s1+1;(s1+1運(yùn)算結(jié)果是int型,需要強(qiáng)制轉(zhuǎn)換類型)shorts1=1;s1+=1;(可以正確編譯)10、java有沒有g(shù)oto答:java中的保留字,現(xiàn)在沒有在java中使用11、數(shù)組有沒有l(wèi)ength()這個方法?string有沒有l(wèi)ength()這個方法答:數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。string有有l(wèi)ength()這個方法12、overload和override的區(qū)別。overloaded的方法是否可以改變返回值的類型答:方法的重寫overriding和重載overloading是java多態(tài)性的不同表現(xiàn)。重寫overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(overloading)。overloaded的方法是可以改變返回值的類型13、set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用==還是equals()?它們有何區(qū)別答:set里的元素是不能重復(fù)的,那么用iterator()方法來區(qū)分重復(fù)與否。equals()是判讀兩個set是否相等equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當(dāng)兩個分離的對象的內(nèi)容和類型相配的話,返回真值14、給我一個你最常見到的runtimeexception答:常見的運(yùn)行時異常有如下這些arithmeticexception,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,unsupportedoperationexception15、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)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義staticfinal成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof運(yùn)算符可以用來決定某對象的類是否實現(xiàn)了接口16、error和exception有什么區(qū)別答:error表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢出。不可能指望程序能處理這樣的情況exception表示一種設(shè)計或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運(yùn)行正常,從不會發(fā)生的情況17、list,set,map是否繼承自collection接口答:list,set是,map不是篇4:java面試筆試題大JAVA相關(guān)基礎(chǔ)知識1、面向?qū)ο蟮奶卣饔心男┓矫?.抽象:抽象就是忽略一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面,抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細(xì)節(jié)。抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。2.繼承:繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。3.封裝:封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥嬎闶加谶@個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護(hù)的接口訪問其他對象。4.多態(tài)性:多態(tài)性是指允許不同類的對象對同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函數(shù)同名問題。2、String是最基本的數(shù)據(jù)類型嗎?基本數(shù)據(jù)類型包括byte、int、char、long、float、double、boolean和short。java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節(jié)省空間,我們應(yīng)該用StringBuffer類3、int和Integer有什么區(qū)別Java提供兩種不同的類型:引用類型和原始類型(或內(nèi)置類型)。Int是java的原始數(shù)據(jù)類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。原始類型封裝類booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble引用類型和原始類型的行為完全不同,并且它們具有不同的語義。引用類型和原始類型具有不同的特征和用法,它們包括:大小和速度問題,這種類型以哪種類型的數(shù)據(jù)結(jié)構(gòu)存儲,當(dāng)引用類型和原始類型用作某個類的實例數(shù)據(jù)時所指定的缺省值。對象引用實例變量的缺省值為null,而原始類型實例變量的缺省值與它們的類型有關(guān)。4、String和StringBuffer的區(qū)別JAVA平臺提供了兩個類:String和StringBuffer,它們可以儲存和操作字符串,即包含多個字符的字符數(shù)據(jù)。這個String類提供了數(shù)值不可改變的字符串。而這個StringBuffer類提供的字符串進(jìn)行修改。當(dāng)你知道字符數(shù)據(jù)要改變的時候你就可以使用StringBuffer。典型地,你可以使用StringBuffers來動態(tài)構(gòu)造字符數(shù)據(jù)。5、運(yùn)行時異常與一般異常有何異同?異常表示程序運(yùn)行過程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時異常表示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見運(yùn)行錯誤。java編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時異常。6、說出Servlet的生命周期,并說出Servlet和CGI的區(qū)別。Servlet被服務(wù)器實例化后,容器運(yùn)行其init方法,請求到達(dá)時運(yùn)行其service方法,service方法自動派遣運(yùn)行與請求對應(yīng)的doXXX方法(doGet,doPost)等,當(dāng)服務(wù)器決定將實例銷毀的時候調(diào)用其destroy方法。與cgi的區(qū)別在于servlet處于服務(wù)器進(jìn)程中,它通過多線程方式運(yùn)行其service方法,一個實例可以服務(wù)于多個請求,并且其實例一般不會銷毀,而CGI對每個請求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷毀,所以效率上低于servlet。7、說出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ù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時只需要記錄本項的前后項即可,所以插入速度較快。8、EJB是基于哪些技術(shù)實現(xiàn)的?并說出SessionBean和EntityBean的區(qū)別,StatefulBean和StatelessBean的區(qū)別。EJB包括SessionBean、EntityBean、MessageDrivenBean,基于JNDI、RMI、JAT等技術(shù)實現(xiàn)。SessionBean在J2EE應(yīng)用程序中被用來完成一些服務(wù)器端的業(yè)務(wù)操作,例如訪問數(shù)據(jù)庫、調(diào)用其他EJB組件。EntityBean被用來代表應(yīng)用系統(tǒng)中用到的數(shù)據(jù)。對于客戶機(jī),SessionBean是一種非持久性對象,它實現(xiàn)某些在服務(wù)器上運(yùn)行的業(yè)務(wù)邏輯。對于客戶機(jī),EntityBean是一種持久性對象,它代表一個存儲在持久性存儲器中的實體的對象視圖,或是一個由現(xiàn)有企業(yè)應(yīng)用程序?qū)崿F(xiàn)的實體。SessionBean還可以再細(xì)分為StatefulSessionBean與StatelessSessionBean,這兩種的SessionBean都可以將系統(tǒng)邏輯放在method之中執(zhí)行,不同的是StatefulSessionBean可以記錄呼叫者的狀態(tài),因此通常來說,一個使用者會有一個相對應(yīng)的StatefulSessionBean的實體。StatelessSessionBean雖然也是邏輯組件,但是他卻不負(fù)責(zé)記錄使用者狀態(tài),也就是說當(dāng)使用者呼叫StatelessSessionBean的時候,EJBContainer并不會找尋特定的StatelessSessionBean的實體來執(zhí)行這個method。換言之,很可能數(shù)個使用者在執(zhí)行某個StatelessSessionBean的methods時,會是同一個Bean的Instance在執(zhí)行。從內(nèi)存方面來看,StatefulSessionBean與StatelessSessionBean比較,StatefulSessionBean會消耗J2EEServer較多的內(nèi)存,然而StatefulSessionBean的優(yōu)勢卻在于他可以維持使用者的狀態(tài)。9、Collection和Collections的區(qū)別。Collection是集合類的上級接口,繼承與他的接口主要有Set和List.Collections是針對集合類的'一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、線程安全化等操作。10、&和&&的區(qū)別,&是位運(yùn)算符,表示按位與運(yùn)算,&&是邏輯運(yùn)算符,表示邏輯與(and)。11、HashMap和Hashtable的區(qū)別。HashMap是Hashtable的輕量級實現(xiàn)(非線程安全的實現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable。HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。Hashtable繼承自Dictionary類,而HashMap是Java1.2引進(jìn)的Mapinterface的一個實現(xiàn)。最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現(xiàn)同步,而HashMap就必須為之提供外同步。Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。12、final,finally,finalize的區(qū)別。final用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize是Object類的一個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關(guān)閉文件等。13、sleep和wait()有什么區(qū)別?sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時間,給執(zhí)行機(jī)會給其他線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢復(fù)。調(diào)用sleep不會釋放對象鎖。wait是Object類的方法,對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,進(jìn)入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對象鎖定池準(zhǔn)備獲得對象鎖進(jìn)入運(yùn)行狀態(tài)。14、Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。15、error和exception有什么區(qū)別?error表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢出。不可能指望程序能處理這樣的情況。exception表示一種設(shè)計或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運(yùn)行正常,從不會發(fā)生的情況。16、同步和異步有何異同,在什么情況下分別使用他們?舉例說明。如果數(shù)據(jù)將在線程間共享。例如正在寫的數(shù)據(jù)以后可能被另一個線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個線程寫過了,那么這些數(shù)據(jù)就是共享數(shù)據(jù),必須進(jìn)行同步存取。當(dāng)應(yīng)用程序在對象上調(diào)用了一個需要花費很長時間來執(zhí)行的方法,并且不希望讓程序等待方法的返回時,就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往更有效率。17、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)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義staticfinal成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof運(yùn)算符可以用來決定某對象的類是否實現(xiàn)了接口。18、heap和stack有什么區(qū)別。棧是一種線形集合,其添加和刪除元素的操作應(yīng)在同一段完成。棧按照后進(jìn)先出的方式進(jìn)行處理。堆是棧的一個組成元素19、forward和redirect的區(qū)別forward是服務(wù)器請求資源,服務(wù)器直接訪問目標(biāo)地址的URL,把那個URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器,瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容是從哪兒來的,所以它的地址欄中還是原來的地址。redirect就是服務(wù)端根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數(shù)重新請求,所以session,request參數(shù)都可以獲取。20、EJB與JAVABEAN的區(qū)別?JavaBean是可復(fù)用的組件,對JavaBean并沒有嚴(yán)格的規(guī)范,理論上講,任何一個Java類都可以是一個Bean。但通常情況下,由于JavaBean是被容器所創(chuàng)建(如Tomcat)的,所以JavaBean應(yīng)具有一個無參的構(gòu)造器,另外,通常JavaBean還要實現(xiàn)Serializable接口用于實現(xiàn)Bean的持久性。JavaBean實際上相當(dāng)于微軟COM模型中的本地進(jìn)程內(nèi)COM組件,它是不能被跨進(jìn)程訪問的。EnterpriseJavaBean相當(dāng)于DCOM,即分布式組件。它是基于Java的遠(yuǎn)程方法調(diào)用(RMI)技術(shù)的,所以EJB可以被遠(yuǎn)程訪問(跨進(jìn)程、跨計算機(jī))。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^容器來訪問真正的EJB組件。21、StaticNestedClass和InnerClass的不同。StaticNestedClass是被聲明為靜態(tài)(static)的內(nèi)部類,它可以不依賴于外部類實例被實例化。而通常的內(nèi)部類需要在外部類實例化后才能實例化。22、JSP中動態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?動態(tài)INCLUDE用jsp:include動作實現(xiàn)它總是會檢查所含文件中的變化,適合用于包含動態(tài)頁面,并且可以帶參數(shù)。靜態(tài)INCLUDE用include偽碼實現(xiàn),定不會檢查所含文件的變化,適用于包含靜態(tài)頁面篇5:java面試筆試題(WEB)1.jsp有哪些內(nèi)置對象?作用分別是什么?一共有9個內(nèi)置對象pageContextjavax.servlet.jsp.pageContextrequestjavax.servlet.http.HttpServletRequestresponsejavax.servlet.http.HttpServletResponsesessionjavax.servlet.http.HttpSessionapplicationjavax.servlet.ServletContextàthis.getServletContext()configjavax.serlvet.ServletConfigexceptionjava.lang.Throwablepagejava.lang.Objectoutjavax.servlet.jsp.JspWriter作用:1、pageContext表示頁容器àEL表達(dá)式、標(biāo)簽、上傳2、request服務(wù)器端取得客戶端的信息:頭信息、Cookie、請求參數(shù),最大用處在MVC設(shè)計模式上3、response服務(wù)器端回應(yīng)客戶端信息:Cookie、重定向4、session表示每一個用戶,用于登錄驗證上5、application表示整個服務(wù)器6、config取得初始化參數(shù),初始化參數(shù)在web.xml文件中配置7、exception表示的是錯誤頁的處理操作8、page如同this一樣,代表整個jsp頁面自身9、out輸出,但是盡量使用表達(dá)式輸出2.jsp有哪些動作?作用分別是什么?jsp共有以下6中基本動作:在頁面被請求的時候包含一個文件:尋找或者實例化一個javaBean:設(shè)置javaBean的屬性,通過反射調(diào)用方法:取得某個javaBean的屬性:把請求轉(zhuǎn)到一個新的頁面:插入Applet程序的代碼:用于傳參數(shù),和forward一起使用3.jsp中動態(tài)INCLUDE和靜態(tài)INCLUDE的區(qū)別?動態(tài)INCLUDE用動作實現(xiàn):如果包含的是動態(tài)頁,則先編譯之后再進(jìn)行處理,它總是會檢查所包含文件中的變化,并且可以帶參數(shù)靜態(tài)INCLUDE用<%@include%>偽碼實現(xiàn):<%@includefile=”include.jsp”%>直接將內(nèi)容先包含后處理,它不會檢查所包含的文件的變化,適用于包含靜態(tài)頁面4.兩種跳轉(zhuǎn)方式分別是什么?有什么區(qū)別?客戶端跳轉(zhuǎn):跳轉(zhuǎn)之后地址欄不改變,執(zhí)行完頁面后不會轉(zhuǎn)向還會回來,相當(dāng)于函數(shù)調(diào)用,并且可以傳遞request屬性,實際上是對RequestDispatcher接口的封裝服務(wù)器端跳轉(zhuǎn):response.sendRedirect(),跳轉(zhuǎn)之后地址欄改變,完全轉(zhuǎn)向新的頁面,不會再回來,相當(dāng)于goto語句。5.請總結(jié)一下WEB開發(fā)中的會話跟蹤實現(xiàn)1、Session也是最常用的一種2、Cookie3、地址重寫4、隱藏域6.在Web開發(fā)中需要處理HTML標(biāo)記時,應(yīng)做什么樣的處理,要篩選哪些字符(<>&“‘空格乘號除號)因為以上的標(biāo)記都屬于HTML范疇的內(nèi)容,所以必須進(jìn)行轉(zhuǎn)義操作顯示效果符號說明實體名表示實體編號表示空格符<小于號<<>大于號>>&符號&&&“雙引號“”C版權(quán)符號&169;R注冊商標(biāo)×乘號××÷除號÷÷‘單引號7.說明Jsp中errorpage的作用域,應(yīng)用范圍表示錯誤頁的操作,在一般的站點中,只要一個程序出現(xiàn)了錯誤,就是產(chǎn)生了異常,則可以統(tǒng)一跳轉(zhuǎn)到一個頁面上進(jìn)行顯示,那么這種操作就屬于錯誤頁的處理,但是簡單的錯誤頁基本上都是在Jsp的開發(fā)中使用的。要想進(jìn)行錯誤頁的設(shè)置,需要滿足以下兩個條件:1.在錯誤能夠處理的頁上的page指令中,增加:isErrorpage=”true”,表示可以處理錯誤2.在每一個頁面指定errorpage,執(zhí)行isErrorpage為true的頁面。如果現(xiàn)在希望能夠配置一種全局的錯誤處理的話,則可以在Web.xml文件中進(jìn)行配置404/errors.jspjava.lang.NullpointerException/errors.jsp一旦出現(xiàn)錯誤之后,會自動跳轉(zhuǎn)到指定的頁面,但是這樣的跳轉(zhuǎn),永遠(yuǎn)都是屬于服務(wù)器端跳轉(zhuǎn)篇6:java筆試題以及答案詳解java筆試題以及答案詳解一、單項選擇題1.Java是從語言改進(jìn)重新設(shè)計,A.AdaB.C++C.PasacalD.BASIC答案:B2.下列語句哪一個正確()A.Java程序經(jīng)編譯后會產(chǎn)生machinecodeB.Java程序經(jīng)編譯后會產(chǎn)生bytecodeC.Java程序經(jīng)編譯后會產(chǎn)生DLLD.以上都不正確答案:B3.下列說法正確的有()A.class中的constructor不可省略B.constructor必須與class同名,但方法不能與class同名C.constructor在一個對象被new時執(zhí)行D.一個class只能定義一個constructor答案:C詳解:見下面代碼,很明顯方法是可以和類名同名的,和構(gòu)造方法唯一的區(qū)別就是,構(gòu)造方法沒有返回值。packagenet.study;publicclassTestConStructor{publicTestConStructor(){System.out.println(“constructor”);}publicvoidTestConStructor(){System.out.println(“notconstructor”);}publicstaticvoidmain(String[]args){TestConStructortestConStructor=newTestConStructor();System.out.println(“main”);testConStructor.TestConStructor();}}4.提供Java存取數(shù)據(jù)庫能力的包是()A.java.sqlB.java.awtC.java.langD.java.swing答案:A5.下列運(yùn)算符合法的是()A.&&B.C.ifD.:=答案:A詳解:java中沒有:=這種運(yùn)算符,ifelse不算運(yùn)算符6.執(zhí)行如下程序代碼a=0;c=0;do{--c;a=a-1;}while(a>0);后,C的值是()A.0B.1C.-1D.死循環(huán)答案:C詳解:Dowhile中的語句是至少要執(zhí)行一次的。執(zhí)行順序為:do中的語句,然后價差while條件,如果為false,則終止;如果為true,則繼續(xù)執(zhí)行Do中的語句,然后再檢查while條件,如此循環(huán)。7.下列哪一種敘述是正確的()A.abstract修飾符可修飾字段、方法和類B.抽象方法的body部分必須用一對大括號{}包住C.聲明抽象方法,大括號可有可無D.聲明抽象方法不可寫出大括號答案:D詳解:abstract不能修飾字段。既然是抽象方法,當(dāng)然是沒有實現(xiàn)的方法,根本就沒有body部分。8.下列語句正確的是()A.形式參數(shù)可被視為localvariableB.形式參數(shù)可被字段修飾符修飾C.形式參數(shù)為方法被調(diào)用時,真正被傳遞的參數(shù)D.形式參數(shù)不可以是對象答案:A詳解:形參可以看成方法中的局部變量。傳遞的是對象引用9.下列哪種說法是正確的()A.實例方法可直接調(diào)用超類的實例方法B.實例方法可直接調(diào)用超類的類方法C.實例方法可直接調(diào)用其他類的實例方法D.實例方法可直接調(diào)用本類的類方法答案:D二、多項選擇題1.Java程序的種類有()A.類(Class)B.AppletC.ApplicationD.Servlet2.下列說法正確的有()A.環(huán)境變量可在編譯sourcecode時指定B.在編譯程序時,所能指定的環(huán)境變量不包括classpathC.javac一次可同時編譯數(shù)個Java源文件D.javac.exe能指定編譯結(jié)果要置于哪個目錄(directory)答案:BCD3.下列標(biāo)識符不合法的有()A.newB.$UsdollarsC.1234D.car.taxi答案:ACD解釋:java變量命名規(guī)則:1.大小寫有別,例如a和A是兩個變量2.長度任意3.可以任何字母開始,另外還可以以“_”和“$”開始,一般“$”是很多代碼生成器用的,人工寫出來的代碼不鼓勵“_”“$”4.除了第一個字符,后面可以跟任何字母,數(shù)字,_和$new是關(guān)鍵字不行,不能以數(shù)字開頭。不用有“.”這種符號4.下列說法錯誤的.有()A.數(shù)組是一種對象B.數(shù)組屬于一種原生類C.intnumber=[]={31,23,33,43,35,63}D.數(shù)組的大小可以任意改變答案:BCD解釋:數(shù)組不是原生類:intdoublebooleanfloatbyteshortlongchar,初始化多大就是多大5.不能用來修飾interface的有()A.privateB.publicC.protectedD.static答案:ACD解釋:interface是public的,加不加都是public6.下列正確的有()A.callbyvalue不會改變實際參數(shù)的數(shù)值B.callbyreference能改變實際參數(shù)的參考地址C.callbyreference不能改變實際參數(shù)的參考地址D.callbyreference能改變實際參數(shù)的內(nèi)容答案:ACD7.下列說法錯誤的有()A.在類方法中可用this來調(diào)用本類的類方法B.在類方法中調(diào)用本類的類方法時可直接調(diào)用C.在類方法中只能調(diào)用本類中的類方法D.在類方法中絕對不能調(diào)用實例方法答案:CD解釋:原來答案中包含A,但是在JDK1.5中,這樣寫是不會出錯的,只不過會有警告而已。類方法中當(dāng)然可以條用其它的方法,比如system.out。當(dāng)然你也可以newObject,調(diào)用一下object.toString()8.下列說法錯誤的有()A.Java面向?qū)ο笳Z言容許單獨的過程與函數(shù)存在B.Java面向?qū)ο笳Z言容許單獨的方法存在C.Java語言中的方法屬于類中的成員(member)D.Java語言中的方法必定隸屬于某一類(對象),調(diào)用方法與過程或函數(shù)相同答案:ABC解釋:java全部完全面向?qū)ο蟮?.下列說法錯誤的有()A.能被java.exe成功運(yùn)行的javaclass文件必須有main()方法B.J2SDK就是JavaAPIC.Appletviewer.exe可利用jar選項運(yùn)行.jar文件D.能被Appletviewer成功運(yùn)行的javaclass文件必須有main()方法答案:BCD解釋:A正確main方法是入口BJ2SDK當(dāng)然不僅僅包含javaAPICjar選項是java.exe的選項DAppletviewer是運(yùn)行applet的,applet不用main方法,繼承applet類即可。三、判斷題1.Java程序中的起始類名稱必須與存放該類的文件名相同。()答案:正確2.Unicode是用16位來表示一個字的。()答案:正確3.原生類中的數(shù)據(jù)類型均可任意轉(zhuǎn)換。()答案:錯誤1.分別寫出BOOL,int,float,指針類型的變量a與“零”的比較語句。答案:BOOL:if(!a)orif(a)int:if(a==0)float:constEXPRESSIONEXP=0.000001if(a<EXP&&a>-EXP)pointer:if(a!=NULL)orif(a==NULL)篇7:完美時空java筆試題完美時空java筆試題老早之前筆的,當(dāng)時都不會,就把題抄到紙上了,發(fā)現(xiàn)完美還在通知筆試??發(fā)上來大家參考一下吧簡答題:死鎖是怎么出現(xiàn)的?如何避免?數(shù)據(jù)庫設(shè)計的第三范式;什么是存儲過程?其原理和好處?IP頭和TCP頭分別包含什么信息;JAVA中異常的分類;Linux中syslog的分類?默認(rèn)文件?日志輪轉(zhuǎn)的配置;C++中虛函數(shù)的實現(xiàn)機(jī)制;windows的hernel32.dll和user.dll分別完成了哪些方面的'函數(shù)封裝;程序輸出題:System.out.println(2.0-1.1);請問這條語句有問題嗎,輸出結(jié)果是什么??1:2:有什么問題,輸出結(jié)果是什么?publicclassTest{publicstaticvoidmain(Stringargs[]){finallongM=24*60*60*1000*1000;finallongS=24*60*60*1000;System.out.println(“Mis:”+M);System.out.println(“Sis:”+S);System.out.println(M/S);}}還有一道輸出題,好像是print和println不記得了編程題:用基本的字符操作函數(shù)完成IP地址與十進(jìn)制之間的轉(zhuǎn)換,大概是這樣編程題給了個轉(zhuǎn)換的例子,我當(dāng)時怎么轉(zhuǎn)都轉(zhuǎn)不對,就沒寫。后來聽說那個例子本身就不對。。。對了,還有個智力題:8個球,一個球較重,一個天平,最少次數(shù)找到重球。類似的吧,我怎么記得不是8個球。畢業(yè)生求職網(wǎng)提供相關(guān)文章:

應(yīng)用系統(tǒng)開發(fā)筆試題

筆試題(信令網(wǎng))

網(wǎng)通集團(tuán)筆試題目篇8:常見java應(yīng)聘筆試題常見java應(yīng)聘筆試題1.Java中sleep和wait的區(qū)別①這兩個方法來自不同的類分別是,sleep來自Thread類,和wait來自O(shè)bject類。sleep是Thread的靜態(tài)類方法,誰調(diào)用的誰去睡覺,即使在a線程里調(diào)用b的sleep方法,實際上還是a去睡覺,要讓b線程睡覺要在b的代碼中調(diào)用sleep。②鎖:最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。sleep不出讓系統(tǒng)資源;wait是進(jìn)入線程等待池等待,出讓系統(tǒng)資源,其他線程可以占用CPU。一般wait不會加時間限制,因為如果wait線程的運(yùn)行資源不夠,再出來也沒用,要等待其他線程調(diào)用notify/notifyAll喚醒等待池中的所有線程,才會進(jìn)入就緒隊列等待OS分配系統(tǒng)資源。sleep(milliseconds)可以用時間指定使它自動喚醒過來,如果時間不到只能調(diào)用interrupt()強(qiáng)行打斷。Thread.sleep(0)的作用是“觸發(fā)操作系統(tǒng)立刻重新進(jìn)行一次CPU競爭”。③使用范圍:wait,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在任何地方使用。synchronized(x){

x.notify()

//或者wait()

}2.Java中HashMap和HashTable的區(qū)別①歷史原因:Hashtable是給予陳舊的Dictonary類的,HashMap是Java1.2引進(jìn)的Map接口的一個實現(xiàn)②HashMap允許空的鍵值對,而HashTable不允許③HashTable同步,而HashMap非同步,效率上比HashTable要高3.請簡述在異常當(dāng)中,throw和throws有什么區(qū)別①throw代表動作,表示拋出一個異常的動作;throws代表一種狀態(tài),代表方法可能有異常拋出②throw用在方法實現(xiàn)中,而throws用在方法聲明中③throw只能用于拋出一種異常,而throws可以拋出多個異常4.內(nèi)存溢出和內(nèi)存泄露的區(qū)別內(nèi)存溢出outofmemory,是指程序在申請內(nèi)存時,沒有足夠的內(nèi)存空間供其使用,出現(xiàn)outofmemory;比如申請了一個integer,但給它存了long才能存下的數(shù),那就是內(nèi)存溢出。內(nèi)存泄露memoryleak,是指程序在申請內(nèi)存后,無法釋放已申請的內(nèi)存空間,一次內(nèi)存泄露危害可以忽略,但內(nèi)存泄露堆積后果很嚴(yán)重,無論多少內(nèi)存,遲早會被占光。memoryleak會最終會導(dǎo)致outofmemory!內(nèi)存溢出就是你要求分配的內(nèi)存超出了系統(tǒng)能給你的,系統(tǒng)不能滿足需求,于是產(chǎn)生溢出。內(nèi)存泄漏是指你向系統(tǒng)申請分配內(nèi)存進(jìn)行使用(new),可是使用完了以后卻不歸還(),結(jié)果你申請到的那塊內(nèi)存你自己也不能再訪問(也許你把它的地址給弄丟了),而系統(tǒng)也不能再次將它分配給需要的程序。一個盤子用盡各種方法只能裝4個果子,你裝了5個,結(jié)果掉倒地上不能吃了。這就是溢出!比方說棧,棧滿時再做進(jìn)棧必定產(chǎn)生空間溢出,叫上溢,??諘r再做退棧也產(chǎn)生空間溢出,稱為下溢。就是分配的內(nèi)存不足以放下數(shù)據(jù)項序列,稱為內(nèi)存溢出。以發(fā)生的方式來分類,內(nèi)存泄漏可以分為4類:①常發(fā)性內(nèi)存泄漏。發(fā)生內(nèi)存泄漏的代碼會被多次執(zhí)行到,每次被執(zhí)行的時候都會導(dǎo)致一塊內(nèi)存泄漏。②偶發(fā)性內(nèi)存

溫馨提示

  • 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

提交評論