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

下載本文檔

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

文檔簡介

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

2、嵌套循環(huán)? break+變量控制 與 return5、switch是否能作用在byte(拜特)上,是否能作用在long上,是否能作用在String上? Switch可以作用在int上,而byte可以隱式轉換為int 所以能作用在byte上不能作用在long上,也不能作用在String上6、short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯? 1在java中為int數(shù)據(jù)類型,short+int=int,大類型轉為小類型,編譯時,會報告需要強制轉換類型的錯誤。s1+=1不會報,因為JVM會對它特殊處理(自動強轉)7、char型變量中

3、能不能存貯一個中文漢字?為什么?可以,char型變量是用來存儲unicode(依妮Q特)編碼的,而unicode編碼包含了中文,所以是可以保存的 8、編程題: 用最有效率的方法算出2乘以8等於幾? 2<<3,表示將2左移3位;一個數(shù)左移幾位就表示這個數(shù)乘以了2的幾次方,左移運算,CPU直接支持,所以是最有效率的9、請設計一個一百億的計算器思路:用兩個數(shù)組分別保存兩個操作數(shù),再新建一個數(shù)組保存結果。10、使用final關鍵字修飾一個變量時,是引用不能變,還是引用的對象不能變? 引用變量不能變11、"="和equals方法究竟有什么區(qū)別?=和equals方法都可以用

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

5、也就是說調(diào)用static方法時,可能還沒有創(chuàng)建任何實例14、Integer與int的區(qū)別int是java中的8種基本數(shù)據(jù)類型之一,默認值是0,Integer是int的包裝類,默認值是null,即Integer可以表示未賦值和賦值為015、(麥死)Math.round(亂的)(11.5)等於多少? Math.round(-11.5)等於多少?12,-11,Math.round()方法的實現(xiàn)是: Math.floor(n+0.5);16、作用域public,private,protected,以及不寫時的區(qū)別本類同包子類其他類publicprotectedfriendlyprivate17、Ove

6、rload(喔我樓的)和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型? Overload是重載,Override是重寫。Overload是指在一個類中,方法名相同,參數(shù)列表不同,那么這些方法之間構成重載。Override是指在父子類之間,子類的方法簽名和父類的方法簽名完全一樣,那么這兩個方法構成重寫。Overload的方法可以改變返回值。因為調(diào)用方法時,返回值可以接受也可以不接受,所以編譯器無法根據(jù)返回值來判斷是否重載。18、構造器Constructor(看似爪克特)是否可被override? Constructor不能被繼承,所以不能override19、接口是

7、否可繼承接口? 抽象類是否可實現(xiàn)(implements)接口? 抽象類是否可繼承具體類(concrete class)? 抽象類中是否可以有靜態(tài)的main方法?接口可以繼承接口,抽象類可以實現(xiàn)接口,抽象類可以繼承具體類,抽象類中可以有靜態(tài)的main方法20、寫clone()方法時,通常都有一行代碼,是什么? super.clone();克隆時,首先得將父類的成員克隆完。21、面向對象的特征有哪些方面封裝封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向對象計算始于這個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。繼承繼承是

8、一種聯(lián)結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類 繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或 增加新的方法使之更適合特殊的需要。抽象抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節(jié)。抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。多態(tài)多態(tài)性是指允許不同類的對象對同一消息作出響應。多態(tài)性包括參數(shù)化多態(tài)性和包

9、含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應用程序函數(shù)同名問題。22、java中實現(xiàn)多態(tài)的機制是什么? 靠的是父類或接口能夠指向子類或實現(xiàn)類。程序運行時,JVM會根據(jù)內(nèi)存中實際的對象調(diào)用方法。23、abstract(抽象) class和interface有什么區(qū)別? 1、abstract class 本質是類,用abstract修飾類,而interface是接口,將class替換為interface2、abstract class可以有構造方法,interface不能有3、abstract class中可以包含普通變量,interface所有的變量都是final

10、 static的4、abstract class中可以包含普通方法,interface中所有的方法都是抽象的。5、abstract class中除抽象方法不可以是private修飾符外,其它成員任意;而interface中所有成員的修飾符都為public6、abstract class可以繼承一個類實現(xiàn)多個接口,interface只能繼承接口24、abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized? abstract的方法不可以是static,abstract方法必須由子類去實現(xiàn),而static方法可以由當前類調(diào)用。abstr

11、act的方法不可以是native,abstract方法必須由子類去實現(xiàn),而native是調(diào)用其它程序語言的代碼,所以不存在由子類去實現(xiàn)的問題,矛盾。關于abstract和synchronized同用的問題,我覺得也不行,因為在這幾年的開發(fā)中,從沒見過這種情況,而且我覺得synchronized應該是作用在一個具體的方法上才有意義。25、什么是內(nèi)部類?在一個類的內(nèi)部定義的類叫做內(nèi)部類。26、內(nèi)部類可以引用外部類的成員嗎?有沒有什么限制? 如果不是靜態(tài)內(nèi)部類,完全可以。27、Static Nested Class 和 Inner Class的不同。 Nested Class一般是C+的說法,Inn

12、er Class一般是Java的說法,指的是同一意思。內(nèi)部類分為靜態(tài)內(nèi)部類和非靜態(tài)內(nèi)部類。靜態(tài)內(nèi)部類中可以包含靜態(tài)成員,非靜態(tài)內(nèi)部類中不可以包含靜態(tài)成員。靜態(tài)內(nèi)部類中不能引用外部類中的實例成員。非靜態(tài)內(nèi)部類則沒有這個限制。28、Anonymous Inner Class (匿名內(nèi)部類) 是否可以extends(繼承)其它類,是否可以implements(實現(xiàn))interface(接口)? 可以繼承其它類,可以實現(xiàn)接口29、String是最基本的數(shù)據(jù)類型嗎? 不是,基本數(shù)據(jù)類型是:byte short int long float double char boolean30、String s =

13、 "Hello"s = s + " world!"這兩行代碼執(zhí)行后,原始的String對象中的內(nèi)容到底變了沒有?沒有,String類被設計為不可變的類。所以它的所有對象都不可變。31、是否可以繼承String類? 不可以。String被final修飾,被final修飾的類不可被繼承。32、String s = new String("xyz");創(chuàng)建了幾個String Object? 二者之間有什么區(qū)別?2個對象。一個放在常量區(qū),不管寫多少遍,永遠只有一個。一個放在堆內(nèi)存中。每次new String就產(chǎn)生一個新的。33、String

14、和StringBuffer的區(qū)別String和StringBuffer都是操作字符串的類。String類被設計為不可變,而StringBuffer可變。34、如何把一段逗號分割的字符串轉換成一個數(shù)組?第一種用正則表達式的方式:String類的split方法第二種方式:StringTokenizer,代碼為: new StringTokenizer(“1,2,3,4”,”,”);35、數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法?數(shù)組是length屬性,String有l(wèi)ength()這個方法 36、try 里有一個return語句,那么緊跟在這個try后的fi

15、nally 里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后? 會,return前38、final, finally, finalize的區(qū)別。 final用來修飾類,變量,方法的。修飾類表示類不可被繼承,修飾變量表示變量的引用不可變,修飾方法表示方法不可被重寫。finally是異常處理結構中的一部分,表示一定會執(zhí)行。finalize是Object類的方法,當垃圾收集器執(zhí)行的時候會調(diào)用此對象的這個方法。39、運行時異常與一般異常有何異同? 一般異常強制要求捕獲或聲明。運行時異常可以捕獲,也可以不捕獲。40、error和exception有什么區(qū)別? error表示恢復不是不可能

16、但是很困難的情況下的一種嚴重問題。例如:內(nèi)存溢出exception表示程序的設計或實現(xiàn)有問題。也就是說如果程序正常運行,不會發(fā)生的情況。41、Java中的異常處理機制的簡單原理和應用。當Java程序違反了Java的語義規(guī)則時,JVM就會將發(fā)生的錯誤表示為一個異常。違反語義規(guī)則包括兩種:一種是Java類庫內(nèi)置的語義檢查,另一種是程序員自己定義的異常。 42、給我一個你最常見到的runtime(茹二樓) exception。 ArithMaticExceptionNullPointExceptionIndexOfBoundExceptionHibernateException(子類:CacheEx

17、ception,LazyInitializationException,MappingException)NestedRuntimeException(AopConfigException,AopInvocationException)43、JAVA語言如何進行異常處理,關鍵字:throws,throw,try,catch,finally分別代表什么意義?在try塊中可以拋出異常嗎? throws 用來表名方法可能拋出異常。throw 用來明確的拋一個異常。try 用來監(jiān)控一段可能出現(xiàn)異常的代碼。當出現(xiàn)異常后進入catch塊,進行異常類型匹配finally表示無論是否出現(xiàn)異常都要執(zhí)行的代碼。4

18、4、java中有幾種方法可以實現(xiàn)一個線程?用什么關鍵字修飾同步方法? stop()和suspend()方法為何不推薦使用? 有兩種實現(xiàn)方法,分別是繼承Thread(斯 read)類與實現(xiàn)Runnable(軟的包)接口 用synchronized(新鬼耐斯特)關鍵字修飾同步方法 因為他們是線程的方法,不安全,當已啟動后,就想脫韁野馬難以把控45、sleep() (斯瑞譜)和 wait() (外特)有什么區(qū)別?1、sleep是線程類的方法wait 是Object類的方法2、sleep會自動醒來wait需要notify喚醒3、sleep不會釋放鎖wait會釋放鎖46、同步和異步有何異同,在什么情況下

19、分別使用他們?舉例說明。 48、多線程有幾種實現(xiàn)方法?同步有幾種實現(xiàn)方法? 多線程有兩種實現(xiàn)方法,分別是繼承Thread類與實現(xiàn)Runnable接口 同步的實現(xiàn)方面有三種:1、同步代碼塊2、同步方法3、Lock49、啟動一個線程是用run()還是start()? .Start()(斯達特)50、當一個線程進入一個對象的一個synchronized方法后,其它線程是否可進入此對象的其它方法? 分幾種情況:1.其他方法前是否加了synchronized關鍵字,如果沒加,則能。2.如果這個方法內(nèi)部調(diào)用了wait,則可以進入其他synchronized方法。3.如果其他個方法都加了synchroniz

20、ed關鍵字,并且內(nèi)部沒有調(diào)用wait,則不能。51、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關系 線程就是進程中的一個執(zhí)行線路。新建new Thread(); 就緒:thread.start(); 運行,阻塞,掛起,結束。創(chuàng)建一個線程,這時狀態(tài)為新建,當調(diào)用start方法后轉為就緒,再由線程調(diào)度器將就緒狀態(tài)轉為運行狀態(tài),遇到synchronized語句后,可能由運行狀態(tài)改為阻塞狀態(tài),當獲得synchronized鎖后由阻塞狀態(tài)轉為運行,這時調(diào)用wait方法轉為掛起狀態(tài)。當線程關聯(lián)的代碼執(zhí)行完成后。線程轉為結束。52、簡述synchronized和java.util.concurrent.l

21、ocks.Lock的異同 ? 主要相同點:Lock(拉克)能完成synchronized所實現(xiàn)的所有功能 主要不同點:Lock有比synchronized更精確的線程語義和更好的性能。synchronized會自動釋放鎖,而Lock一定要求程序員手工釋放,并且必須在finally從句中釋放。 54、ArrayList和Vector的區(qū)別ArrayList和Vector都實現(xiàn)了List接口。ArrayList是線程不安全的,Vector是線程安全的。ArrayList的增長方式為*3/2+1 Vector的增長方式為*2,Vector還可以設置增長量。55、HashMap和Hashtable的區(qū)

22、別Hashtable和HashMap都實現(xiàn)了Map接口。Hashtable是線程安全的,HashMap是線程不安全的。Hashtable不允許鍵值為null,HashMap允許。Hashtable自JDK1.0就有了,HashMap到1.2才出來。Map中有2個方法分別是containsKey(康騰思Key)和containsValue;Hashtable中還有個contains方法,容易讓人誤解,HashMap沒有。56、List 和 Map 區(qū)別?List是存儲單列數(shù)據(jù)的有序集合,允許重復。而Map是鍵值對雙列數(shù)據(jù)的集合。鍵不允許重復,值可以重復。57、List, Set, Map是否繼承

23、自Collection接口? Collection(克萊克神)是集合類的頂級接口,其子接口分別是List和SetList下有ArrayList,LinkedList Set下有HashSet TreeSetCollection和Map沒有關系,Map是HashMap的父接口58、List、Map、Set三個接口,存取元素時,各有什么特點? List以特定的次序來持有元素,允許重復。Set無法擁有重復元素,內(nèi)部排序。Map保存key-value值,key不可重復,value可重復。59、說出ArrayList,Vector, LinkedList的存儲性能和特性 ArrayList和Vector

24、都是使用數(shù)組存儲數(shù)據(jù)。查找快,插入慢。由于Vector是線程安全的,所以性能上比ArrayList差。LinkedList是鏈表結構。插入快,查找慢。60、去掉一個Vector集合中重復的元素 最簡單的方式:HashSet set = new HashSet(vector);61、Collection 和 Collections的區(qū)別。Collection是集合類的頂級接口,而Collections是集合類的輔助類,如:將一個數(shù)組的元素copy到另一個集合。 62、Set里的元素是不能重復的,那么用什么方法來區(qū)分重復與否呢? 是用=還是equals()? 它們有何區(qū)別? equals,區(qū)別見1

25、1題63、你所知道的集合類都有哪些?主要方法? 集合類有(畫集合類的體系結構)ArrayList的主要方法:add,get,remove,contains,indexOf,isEmpty,toArray,iteratorLinkedList的主要方法:add,get,remove,addFirst,addLast,getFirst,getLast,iteratorHashSet的主要方法:add,iterator,removeHashMap的主要方法:put,get,remove,entrySet,keyset,values64、兩個對象值相同(x.equals(y) = true),但卻可有

26、不同的hash code,這句話對不對? 對。+65、java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類? 根據(jù)功能分:輸入流,輸出流根據(jù)類型分:字節(jié)流,字符流輸入字節(jié)流的抽象類:InputStream輸出字節(jié)流的抽象類:OutputStream(Stream斯俊木)輸入字符流的抽象類:Reader(瑞得)輸出字符流的抽象類:Writer(ruai 的)66、什么是java序列化,如何實現(xiàn)java序列化? 序列化就是指將內(nèi)存中的一個對象存儲到硬盤中或者轉為字節(jié)碼作網(wǎng)絡傳輸。實現(xiàn)Serializable(修兒奈斯啵)接口。67、描述一下JVM加載cla

27、ss文件的原理機制? JVM中類的加載是由ClassLoader和它的子類來實現(xiàn)的。Java Class Loader是一個重要的Java運行時系統(tǒng)組件。它是一個負責查找和裝入類文件的類。68、heap(細譜)和stack(死大克)有什么區(qū)別。 stack是用來保存基本數(shù)據(jù)類型,以及變量的引用。小,速度快heap是用來保存new 出來的對象。大,速度慢。69、GC是什么? 為什么要有GC? GC是Garbage Collection(垃圾回收)。內(nèi)存處理是程序員容易出現(xiàn)問題的地方。忘記回收或錯誤的內(nèi)存回收會導致程序或系統(tǒng)的不穩(wěn)定甚至崩潰。Java提供的GC可以自動檢測對象是否已經(jīng)死亡,從而進行

28、回收內(nèi)存。70、垃圾回收的優(yōu)點和原理。并考慮2種回收機制。 垃圾回收機制使得程序員不需要關注內(nèi)存的回收和釋放,提高了程序的健壯性。垃圾回收器通常是作為一個單獨的低級別線程運行。當程序員創(chuàng)建對象時,GC就開始監(jiān)測這個對象的地址、大小及使用情況,通常,GC采用有向圖的方式記錄和管理堆中的所有對象。通過這種方式確定哪些對象是”不可達”時,GC就有責任回收這些內(nèi)存空間。標記垃圾回收機制和分帶復制垃圾回收機制。71、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動通知虛擬機進行垃圾回收? 垃圾回收器通常是作為一個單獨的低級別線程運行。當程序員創(chuàng)建對象時,GC就開始監(jiān)測這個對象的地

29、址、大小及使用情況,通常,GC采用有向圖的方式記錄和管理堆中的所有對象。通過這種方式確定哪些對象是”不可達”時,GC就有責任回收這些內(nèi)存空間??梢浴Mㄟ^System.gc();或者Runtime.getRuntime().gc();來通知GC回收內(nèi)存,但是Java語言規(guī)范不保證GC一定會執(zhí)行。72、什么時候用assert(額色特)。 assert(斷言)是程序開發(fā)中一種常見的調(diào)試方式。73、java中會存在內(nèi)存泄漏嗎,請簡單描述。 會。內(nèi)存泄漏就是指一個不再被程序使用的對象一直占據(jù)著內(nèi)存。長生命周期的對象持有短生命周期對象的引用就很可能發(fā)生內(nèi)存泄露,盡管短生命周期對象已經(jīng)不再需要,但是因為長生

30、命周期對象持有它的引用而導致不能被回收,這就是java中內(nèi)存泄露的發(fā)生場景75、說出一些常用的類,包,接口,請各舉5個 ext,接口:(Spring)ApplicationContext, (Hibernate)SessionFactory,Session,Query,Criteria,SQLQuery,Transaction (Struts)FormFile類:(Spring)ClassPathApplicationContext, OpenSessionInViewFilter,CharacterEncodingFilter (Hibernate)Configuration,Hiberna

31、te (Struts)ActionForm,Action,DispatchAction,MappingDisactionAction (DWR)DwrServlet77、能不能自己寫個類,也叫java.lang.String?能,但是沒什么價值。79、說明生活中遇到的二叉樹,用java實現(xiàn)二叉樹81、寫一個Singleton(省構騰)出來。1、構造私有2、一個靜態(tài)的自身屬性,初始化3、提供共有的訪問自身屬性的方法84、排序都有哪幾種方法?請列舉。用JAVA實現(xiàn)一個快速排序。 冒泡排序,插入排序,選擇排序,快速排序90、HTTP請求的GET與POST方式的區(qū)別1、Get方式請求的字符串長度不能超

32、過255,Post理論上沒有限制。2、Get方式會將請求的內(nèi)容在地址欄顯示,Post不會。所以Get方式不安全,Post方式安全。91、解釋一下什么是servlet;servlet就是運行在服務器端的java小程序。92、說一說Servlet的生命周期? 出生(new),學習(init),服務(service),死亡(destroy)93、Servlet的基本架構 public MyServlet extends HttpServletpublic void doGet(HttpServletRequest req,HttpServletResponse resp)throws IOExcep

33、tion,ServletExceptionpublic void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException94、SERVLET API中forward() 與redirect()(瑞滴ruai克特)的區(qū)別? 1、forward是請求對象的方法,redirect是響應對象的方法;2、forward是轉發(fā),地址欄不會顯示轉發(fā)后的路徑,redirect是重定向,地址欄會顯示3、forward比redirect效率更高4、forward是1次請求,redirec

34、t是2次請求5、forward只能在本工程內(nèi)轉向,redirect可以跳轉到其他工程95、什么情況下調(diào)用doGet()和doPost()? jsp頁面中的form標簽里的method屬性為get時調(diào)用doGet(),為post時調(diào)用doPost()。96、Request對象的主要方法:setAttribute(String name,Object):設置名字為name的request的參數(shù)值 getAttribute(String name):返回由name指定的屬性值 getAttributeNames():返回request對象所有屬性的名字集合,結果是一個枚舉的實例 getCookies

35、():返回客戶端的所有Cookie對象,結果是一個Cookie數(shù)組 getCharacterEncoding():返回請求中的字符編碼方式 getContentLength():返回請求的Body的長度 getHeader(String name):獲得HTTP協(xié)議定義的文件頭信息 getHeaders(String name):返回指定名字的request Header的所有值,結果是一個枚舉的實例 getHeaderNames():返回所以request Header的名字,結果是一個枚舉的實例 getInputStream():返回請求的輸入流,用于獲得請求中的數(shù)據(jù) getMethod(

36、):獲得客戶端向服務器端傳送數(shù)據(jù)的方法 getParameter(String name):獲得客戶端傳送給服務器端的有name指定的參數(shù)值 getParameterNames():獲得客戶端傳送給服務器端的所有參數(shù)的名字,結果是一個枚舉的實例 getParametervalues(String name):獲得有name指定的參數(shù)的所有值 getProtocol():獲取客戶端向服務器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱 getQueryString():獲得查詢字符串 getRequestURI():獲取發(fā)出請求字符串的客戶端地址 getRemoteAddr():獲取客戶端的IP地址 getRemo

37、teHost():獲取客戶端的名字 getSession(Boolean create):返回和請求相關Session getServerName():獲取服務器的名字 getServletPath():獲取客戶端所請求的腳本文件的路徑 getServerPort():獲取服務器的端口號 removeAttribute(String name):刪除請求中的一個屬性 97、forward 和redirect的區(qū)別 98、request.getAttribute() 和 request.getParameter() 有何區(qū)別?1、request.getParameter() 從 請求中的參數(shù)中取

38、值;request.getAttribute() 從 請求的作用域中取值2、request.getParameter() 返回 String類型; request.getAttribute()返回Object類型99、 jsp有哪些內(nèi)置對象?作用分別是什么? 分別有什么方法? JSP共有以下9個內(nèi)置的對象: request-用戶端請求,此請求會包含來自GET/POST請求的參數(shù) response-網(wǎng)頁傳回用戶端的回應 pageContext-網(wǎng)頁的屬性是在這里管理 session-與請求有關的會話期 application servlet 正在執(zhí)行的內(nèi)容 out-用來傳送回應的輸出 confi

39、g- servlet的構架部件 page-JSP網(wǎng)頁本身 exception-針對錯誤網(wǎng)頁,未捕捉的例外100、 jsp有哪些動作?作用分別是什么? JSP共有以下6種基本動作 jsp:include:在頁面被請求的時候引入一個文件。 jsp:useBean:尋找或者實例化一個JavaBean。 jsp:setProperty:設置JavaBean的屬性。 jsp:getProperty:輸出某個JavaBean的屬性。 jsp:forward:把請求轉到一個新的頁面。 jsp:plugin:根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標記101、JSP的常用指令 page指令 屬

40、性: language(指示使用什么語言編譯JSP網(wǎng)頁,暫時只支持Java語言,默認java)、extends(定義JSP網(wǎng)頁產(chǎn)生的Servlet繼承的父類)、import(同Java的import)、session(設置當前網(wǎng)頁是否可以使用Session對象,默認為true)、buffer(設置輸出流是否有緩沖區(qū),默認為8KB)、autoFlush(設置是否自動清除緩沖區(qū),緩沖區(qū)如果溢出會產(chǎn)生異常,默認true)、isThreadSafe(設置當前頁面是否允許處理超過1個以上的請求,不建議更改,默認為true)、info(設置當前JSP網(wǎng)頁的相關信息)、errorPage(設置一旦發(fā)生異常后

41、重新定向哪個url)、isErrorPage(設置該JSP頁面是否為異常處理的頁面)、contentType(置MIME類型和編碼方式:text/html;charset=GBK)、pageEncoding(設置編碼方式)、isELIgnored(設置是否忽略EL表達式,默認值為false)taglib指令 include指令102、 JSP中動態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?1、靜態(tài)是指令 動態(tài)是動作2、靜態(tài)只產(chǎn)生一個文件 動態(tài)產(chǎn)生兩個3、靜態(tài)不可以帶參數(shù) 動態(tài)可以帶參數(shù)4、靜態(tài)不會動態(tài)更新 動態(tài)可以。 104、頁面間對象傳遞的方法 session、cookie、隱藏表單域、ur

42、l重寫105、JSP和Servlet有哪些相同點和不同點,他們之間的聯(lián)系是什么? JSP 轉義以后就是servlet1、 jsp后綴名是.jsp servlet的后綴名是.java2、 jsp 側重于顯示 servlet側重于邏輯3、 jsp在mvc中屬于view servlet屬于controller106、MVC的各個部分都有那些技術來實現(xiàn)?如何實現(xiàn)?MVC 是Model-View-Controller的簡寫."Model" 代表的是應用的業(yè)務邏輯(通過JavaBean,EJB組件實現(xiàn)), "View" 是應用的表示面(由JSP頁面產(chǎn)生),"

43、;Controller" 是提供應用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現(xiàn).這些組件可以進行交互和重用。107、我們在web應用開發(fā)過程中經(jīng)常遇到輸出某種編碼的字符,如iso8859-1等,如何輸出一個某種編碼的字符串? new String(str.getByte(“原編碼”),”新編碼”);108、現(xiàn)在輸入n個數(shù)字,以逗號,分開;然后可選擇升或者降序排序;按提交鍵就在另一頁面顯示按什么排序,結果為,提供reset109、數(shù)據(jù)庫三范式是什么?第一范式:保證每列的原子性。第二范式:必須要有主鍵,并且其它列都依賴于該

44、主鍵;第三范式:取消傳遞依賴110、說出一些數(shù)據(jù)庫優(yōu)化方面的經(jīng)驗?1、存儲優(yōu)化A、通過表空間將數(shù)據(jù)分散到不同的硬盤上B、通過表分區(qū)分散數(shù)據(jù),方便備份還原2、查詢優(yōu)化A、通過表分區(qū)方便查詢B、為表建立索引C、SQL語句111、union(優(yōu)妮安)和union all(哦)有什么不同?union去重復 union all不去重復113、什么是存儲過程和如何編寫存儲過程就是存儲在數(shù)據(jù)庫中帶有名字的PL/SQL塊,完成一定的功能。Create or replace procedure procName(參數(shù)in,out,in out)As|isVariable.Beginexceptionend114

45、、注冊Jdbc驅動程序的三種方式Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);System.setProperty(“jdbc.drivers”,” com.microsoft.sqlserver.jdbc.SQLServerDriver”);DriverManager.registerDriver(new ();115、用JDBC如何調(diào)用存儲過程CallableStatement callSta = con.prepareCall (“call 過程名”);callSta.execute();116、JDBC中的P

46、reparedStatement相比Statement的好處速度快,可以防止sql 注入攻擊。118、Class.forName的作用?為什么要用? 加載類文件,創(chuàng)建類對象。注冊驅動。119、大數(shù)據(jù)量下的分頁解決方法。我們一般采用后臺SQL語句分頁 121、說出數(shù)據(jù)連接池的工作機制是什么? 因為我們在操作數(shù)據(jù)庫的時候 ,打開連接和關閉連接是耗時,耗性能,我們希望通過一種機制減少這種開銷,這就是數(shù)據(jù)連接池的初衷;J2EE服務器啟動時會建立一定數(shù)量的池連接,并放入到一個池中,當我需要獲得連接的時候,只需要從此池中拿到連接并標記為繁忙,用完之后放回池中并標記為空閑,這樣就能提高我們的訪問性能。122

47、、為什么要用 ORM? 和 JDBC 有何不一樣? ORM就是Object Relational Mapping 對象關系映射,因為用jdbc操作數(shù)據(jù)庫代碼非常繁瑣,ORM可以將表映射成實體,與我們的OOP編程思想完全一致的,方便程序開發(fā)。但速度比jdbc慢123、xml有哪些解析技術?區(qū)別是什么?DOM、SAXDOM是一次性將一個文件載入內(nèi)存,產(chǎn)生DOM樹,適合多次讀寫操作,適合操作小型文檔SAX 是事件驅動的解析方式,它不是一次性載入整個文件,而是遇到文檔開頭標記等等觸發(fā)事件來處理,適合解析大型文檔124、你在項目中用到了xml技術的哪些方面?如何實現(xiàn)的? 1、數(shù)據(jù)交換2、配置文件3、存儲

48、數(shù)據(jù)125、用jdom解析xml文件時如何解決中文問題?如何解析? import javax.xml.transform.*;Transformer transformer = TransformerFactory.newInstance().newTransformer();transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312"); transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,

49、"yes");126、編程用JAVA解析XML的方式. 127、XML文檔定義有幾種形式?它們之間有何本質區(qū)別?解析XML文檔有哪幾種方式? a: 兩種形式 dtd schema,(是給帽)b: 本質區(qū)別:schema本身是xml的,比DTD有更精確的規(guī)則定義;128、BS與CS的聯(lián)系與區(qū)別。C/S是Client/Server的縮寫。B/是Brower/Server的縮寫,1、 硬件不同,一個是局域網(wǎng),一個是廣域網(wǎng)2、 安全不同 C/S安全高 B/S3、 速度不同 C/S速度塊4、 維護C/S不方便維護 B/S方便維護129、應用服務器與WEB SERVER的區(qū)別?1、應用

50、服務器處理業(yè)務邏輯,web服務器則主要是讓客戶可以通過瀏覽器進行訪問。2、應用服務器處理業(yè)務邏輯,web服務器是用于處理HTML文件的。web服務器通常比應用服務器簡單,如apache就是web服務器,Jboss就是EJB應用服務器。應用服務器:Weblogic、Tomcat、JbossWEB SERVER:IIS、 Apache130、應用服務器有那些? BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server,jBoss,Tomcat131、J2EE是什么? J2EE是應用平臺,是標準,

51、是框架133、請對以下在J2EE中常用的名詞進行解釋(或簡單描述) Web容器:能解析Jsp和Servlet的應用服務器EJB容器:就是能解析EJB組件的應用服務器JNDI(Java Naming And Directory Interface) Java命名與目錄接口JMS(Java Message Service)Java 消息服務JTA(Java Transaction API)Java事務接口JAF(Java Action Framework)Java 安全認證框架RMI/IIOP(Remote Method Invocation/Internet Inter Object Reque

52、st Broker Protocol)遠程方法調(diào)用/互聯(lián)網(wǎng)內(nèi)部對象請求代理協(xié)議150、WEB SERVICE名詞解釋。JSWDL開發(fā)包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。JAXP(Java API for XML Parsing)JAXM(Java API for XML Messaging)SOAP(Simple Object Access Protocol)UDDI(Universal Description, Discovery and Integration)WSDL(Web Services Description Language)151、CORBA是什么?用途是什么? CORBA(Common Object Request Broker Architecture,公共對象代理體系結構為解決分布式處理環(huán)境(DCE)中,硬件和軟件系統(tǒng)的互連而提出的一種解決方案;152、流行的

溫馨提示

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

評論

0/150

提交評論