Java大量面試題目_第1頁(yè)
Java大量面試題目_第2頁(yè)
Java大量面試題目_第3頁(yè)
Java大量面試題目_第4頁(yè)
Java大量面試題目_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余26頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)用標(biāo)準(zhǔn)文案Java基礎(chǔ)方面:1、作用域 public,private,protected,以及不寫(xiě)時(shí)的區(qū)別答:區(qū)別如下:作用域當(dāng)前類(lèi)同一 package子孫類(lèi)其他 packagepublicVVVVprotected VVVXfriendlyVVXXprivateVXXX不寫(xiě)時(shí)默認(rèn)為friendly2、ArrayList 和 Vector 的區(qū)另1J ,HashMap 和 Hashtable 的區(qū)別 答:就 ArrayList 與Vector主要從二方面來(lái)說(shuō).1 .同步性:Vector是線程安全的,也就是說(shuō)是同步的,而ArrayList 是線程序不安全的,不是同步的2 .數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)

2、時(shí),Vector默認(rèn)增長(zhǎng)為原來(lái)一培,而ArrayList 卻是原來(lái)的一半就HashMapW HashTable主要從三方面來(lái)說(shuō)。1 .歷史原因:Hashtable 是基于陳舊的 Dictionary 類(lèi)的,HashMap是Java 1.2 引進(jìn)的Map 接口的一個(gè)實(shí)現(xiàn)2 .同步性:Hashtable是線程安全的,也就是說(shuō)是同步的,而HashMap是線程序不安全的,不是同步的3 .值:只有HashMap可以讓你將空值作為一個(gè)表的條目的key或value 。2.1 兩個(gè)對(duì)象值相同(x.equals(y) = true),但卻可有不同的 hash code ,這句話對(duì)不對(duì)?不對(duì),有相同的 hash

3、code 。2.2 當(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ì)改變的。2.3 swtich是否能作用在 byte上,是否能作用在 long上,是否能作用在 String 上?switch (expr1 )中,expr1是一個(gè)整數(shù)表達(dá)式。因此傳遞給switch 和case 語(yǔ)句的參數(shù)應(yīng)該是int、short、char 或者byte 。 long,

4、string都不能作用于 swtich 。(它能使用長(zhǎng)度是在int范圍之內(nèi)的)2.4 下面都是正確的 main方法簽名。public static void main(String口 args)public static final void main(String口 args)static public void main(String口 args)static public synchronized void main(String口 args)2.5 說(shuō)出一些常用的類(lèi),包,接口,請(qǐng)各舉5個(gè)?答案:常用類(lèi)-System,ArrayList,FileInputStream,Thread,So

5、cket.常用的包-java.io,java.util,java.sql,java.javax.naming,常用接口 -Collection,Connection, Cloneable, Comparable, Serializable2.6 進(jìn)程和線程的區(qū)別:進(jìn)程和線程都是由操作系統(tǒng)所體會(huì)的程序運(yùn)行的基本單元,系統(tǒng)利用該基本單元實(shí)現(xiàn)系統(tǒng)對(duì)應(yīng)用的并發(fā)性。進(jìn)程和線程的區(qū)別在于:簡(jiǎn)而言之,一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程.線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高。另外,進(jìn)程在執(zhí)行過(guò)程中擁有獨(dú)立的內(nèi)存單元,而多個(gè)線程共享內(nèi)存,從而極大地提高了 程序的運(yùn)行效率。線程在執(zhí)行過(guò)程中

6、與進(jìn)程還是有區(qū)別的。每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口、順序執(zhí) 行了序列和程序的出口。但是線程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程 序提供多個(gè)線程執(zhí)行控制。從邏輯角度來(lái)看,多線程的意義在于一個(gè)應(yīng)用程序中,有多個(gè)執(zhí)行部分可以同時(shí)執(zhí)行。 但操作系統(tǒng)并沒(méi)有將多個(gè)線程看做多個(gè)獨(dú)立的應(yīng)用,來(lái)實(shí)現(xiàn)進(jìn)程的調(diào)度和管理以及資源分 配。這就是進(jìn)程和線程的重要區(qū)別。進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位.線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行 的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行

7、中必不可少的資源(如程序計(jì)數(shù)器,一組寄存器和棧,但是它可與同屬一個(gè)進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資 源.一個(gè)線程可以創(chuàng)建和撤銷(xiāo)另一個(gè)線程;同一個(gè)進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行.3、char型變量中能不能存貯一個(gè)中文漢字?為什么?(方正簡(jiǎn)答題)答:是能夠定義成為一個(gè)中文的,因?yàn)?java中以u(píng)nicode編碼,一個(gè)char占16位,所以 放一個(gè)中文是沒(méi)問(wèn)題的。1.1 Overload 和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類(lèi)型?方法的重寫(xiě)Overriding 和重載Overloading 是Java多態(tài)性的不同表現(xiàn)。重寫(xiě) Overriding 是父類(lèi)與子

8、類(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)型。1.2 Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢?是用=也是equals。?它們有何區(qū)別?Set里的元素是不能重復(fù)的,用iterator。方法來(lái)區(qū)分

9、重復(fù)與否。equals。是判讀兩個(gè)Set是否相等。equals。和=方法決定引用值是否指向同一對(duì)象equals。在類(lèi)中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類(lèi)型相配的話,返回真值。1.3 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ā)生的情況。1.4 abstract 的method是否可同時(shí)是 static, 是否可同時(shí)是 native ,是否可同時(shí)是 synch ronized?都不能1.5 接口是否

10、可繼承接口 ?抽象類(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ù)。1.6 啟動(dòng)一個(gè)線程是用 run()還是start()?啟動(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è)線程。1.7 構(gòu)造器 Constructor 是否可被 override?構(gòu)造器Constructor 不能被繼承

11、,因此不能重寫(xiě) Overriding ,但可以被重載 Overloading 。1.8 是否可以繼承String類(lèi)?String類(lèi)是final類(lèi)故不可以繼承。1.9 當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?不能,一個(gè)對(duì)象的一個(gè)synchronized 方法只能由一個(gè)線程訪問(wèn)。4、多線程有幾種實(shí)現(xiàn)方法,都是什么?同步有幾種實(shí)現(xiàn)方法,都是什么? 答:多線程有兩種實(shí)現(xiàn)方法,分別是繼承 Thread類(lèi)與實(shí)現(xiàn)Runnable接口 同步的實(shí)現(xiàn)方面有兩種,分別是synchronized,wait 與notify4. 1 談?wù)?final, finall

12、y, finalize的區(qū)別。final?修飾符(關(guān)鍵字)如果一個(gè)類(lèi)被聲明為final ,意味著它不能再派生出新的子類(lèi),不能作為父類(lèi)被繼承。因此一個(gè)類(lèi)不能既被聲明為abstract 的,又被聲明為final的。將變量或方法聲明為final ,可以保證它們?cè)谑褂弥胁槐桓淖?。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載 finally? 再異常處理時(shí)提供finally塊來(lái)執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配的catch 子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入finally 塊(如果有的話)。finalize?

13、方法名。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)用的。5. 2 &和&&勺區(qū)別。&是位運(yùn)算符。&妮布爾邏輯運(yùn)算符。6. 3 HashMap和 Hashtable 的區(qū)別。都屬于Map接口的類(lèi),實(shí)現(xiàn)了將惟一鍵映射到特定的值上。HashMap類(lèi)沒(méi)有分類(lèi)或

14、者排序。它允許一個(gè)null 鍵和多個(gè)null 值。Hashtable 類(lèi)似于 HashMap,但是不允許 null 鍵和null 值。它也比 HashMap慢,因?yàn)?它是同步的。7. 4 Collection 和 Collections 的區(qū)別。Collections 是個(gè)java.util 下的類(lèi),它包含有各種有關(guān)集合操作的靜態(tài)方法。Collection 是個(gè)java.util下的接口,它是各種集合結(jié)構(gòu)的父接口。4. 5 String s = new String("xyz");創(chuàng)建了幾個(gè) String Object? (方正 選擇題)兩個(gè)對(duì)象,一個(gè)是“ xyx”,一個(gè)是

15、指向“xyx”的引用對(duì)象 s。4. 6 Math.round(11.5)等於多少? Math.round(-11.5)等於多少?Math.round(11.5) 返回(long) 12, Math.round(-11.5) 返回(long) -11;4. 7 short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)?(方正選擇題)short s1 = 1; s1 = s1 + 1; 有錯(cuò),s1 是 short 型,s1+1 是 int 型,不能顯式轉(zhuǎn)化為 short 型??尚薷臑?s1 =(short)(s1 + 1)。short s

16、1 = 1; s1 += 1 正確。4. 8 sleep() 和wait() 有什么區(qū)別?搞線程的最?lèi)?ài)sleep()方法是使線程停止一段時(shí)間的方法。在 sleep時(shí)間間隔期滿后,線程不一定立即恢復(fù)執(zhí)行。這是因?yàn)樵谀莻€(gè)時(shí)刻,其它線程可能正在運(yùn)行而且沒(méi)有被調(diào)度為放棄執(zhí)行,除非(a)“醒來(lái)”的線程具有更高的優(yōu)先級(jí)(b)正在運(yùn)行的線程因?yàn)槠渌蚨枞?。wait()是線程交互時(shí),如果線程對(duì)一個(gè)同步對(duì)象x發(fā)出一個(gè)wait()調(diào)用,該線程會(huì)暫停執(zhí)行,被調(diào)對(duì)象進(jìn)入等待狀態(tài),直到被喚醒或等待時(shí)間到。4. 9數(shù)組有沒(méi)有l(wèi)ength() 這個(gè)方法? String 有沒(méi)有l(wèi)ength() 這個(gè)方法? 數(shù)組沒(méi)有l(wèi)en

17、gth()這個(gè)方法,有l(wèi)ength的屬性。String有l(wèi)ength()這個(gè)方法。5、繼承時(shí)候類(lèi)的執(zhí)行順序問(wèn)題,一般都是選擇題,問(wèn)你將會(huì)打印出什么?答:父類(lèi):package test;public class FatherClasspublic FatherClass()System.out.println("FatherClass Create");子類(lèi):package test;import test.FatherClass;public class ChildClass extends FatherClasspublic ChildClass()System.out.

18、println("ChildClass Create");public static void main(String口 args)FatherClass fc = new FatherClass();ChildClass cc = new ChildClass();輸出結(jié)果:C:>java test.ChildClassFatherClass CreateFatherClass CreateChildClass Create6、內(nèi)部類(lèi)的實(shí)現(xiàn)方式?答:示例代碼如下:package test;public class OuterClassprivate class In

19、terClasspublic InterClass()System.out.println("InterClass Create");public OuterClass()InterClass ic = new InterClass();System.out.println("OuterClass Create");public static void main(String口 args)OuterClass oc = new OuterClass();輸出結(jié)果:C:>java test/OuterClassInterClass CreateOut

20、erClass Create再一個(gè)例題:public class OuterClass private double d1 = 1.0;/insert code hereYou need to insert an inner class declaration at line 3. Which two inner class declarations arevalid?(Choose two.)A. class InnerOnepublic static double methoda() return d1; B. public class InnerOnestatic double meth

21、oda() return d1; C. private class InnerOne double methoda() return d1; D. static class InnerOneprotected double methoda() return d1; E. abstract class InnerOne public abstract double methoda();說(shuō)明如下:1 .靜態(tài)內(nèi)部類(lèi)可以有靜態(tài)成員,而非靜態(tài)內(nèi)部類(lèi)則不能有靜態(tài)成員。故A、B錯(cuò)2 .靜態(tài)內(nèi)部類(lèi)的非靜態(tài)成員可以訪問(wèn)外部類(lèi)的靜態(tài)變量,而不可訪問(wèn)外部類(lèi)的非靜態(tài)變量;return d1 出錯(cuò)。故D錯(cuò)3 .非靜態(tài)內(nèi)

22、部類(lèi)的非靜態(tài)成員可以訪問(wèn)外部類(lèi)的非靜態(tài)變量。故C正確4 .答案為C E7、垃圾回收機(jī)制,如何優(yōu)化程序?希望大家補(bǔ)上,謝謝8、float 型 float f=3.4是否正確?答:不正確。精度不準(zhǔn)確,應(yīng)該用強(qiáng)制類(lèi)型轉(zhuǎn)換,如下所示:float f=(float)3.49、介紹JAVA中的Collection FrameWork(包括如何寫(xiě)自己的數(shù)據(jù)結(jié)構(gòu))?答:Collection FrameWork 如下:Collection卜 List卜 LinkedList卜 ArrayListL Vector LStackLSetMap卜Hashtabl e卜 HashMapLWeakHashMapColle

23、ction是最基本的集合接口,一個(gè) Collection 代表一組 Object ,即Collection 的元素(Elements )Map提供key至U value的映射10、Java中異常處理機(jī)制,事件機(jī)制?11、JAVA中的多態(tài)與繼承?希望大家補(bǔ)上,謝謝12、抽象類(lèi)與接口?答:抽象類(lèi)與接口都用于抽象,但是抽象類(lèi)(JAVA中)可以有自己的部分實(shí)現(xiàn),而接口則完全是一個(gè)標(biāo)識(shí)(同時(shí)有多重繼承的功能)。13、Java的通信編程,編程題(或問(wèn)答),用JAVA SOCKETS,讀服務(wù)器幾個(gè)字符,再寫(xiě) 入本地顯示?答:Server端程序:package test;import .*;import ja

24、va.io.*;public class Server private ServerSocket ss;private Socket socket;private BufferedReader in;private PrintWriter out;public Server() try ss=new ServerSocket(10000);while(true) socket = ss.accept();String RemoteIP = socket.getInetAddress().getHostAddress();String RemotePort = ":"+soc

25、ket.getLocalPort();System.out.println("A client come in!IP:"+RemoteIP+RemotePort); in = new BufferedReader(newInputStreamReader(socket.getInputStream();String line = in.readLine();System.out.println("Cleint send is :" + line);out = new PrintWriter(socket.getOutputStream(),true);o

26、ut.println("Your Message Received!");out.close();in.close();socket.close();catch (IOException e)out.println("wrong");public static void main(String口 args)new Server。;;Client端程序:package test;import java.io.*;import .*;public class ClientSocket socket;BufferedReader in;PrintWriter

27、out;public Client。trySystem.out.println("Try to Connect to :10000");socket = new Socket("",10000);System.out.println("The Server Connected!");System.out.println("Please enter some Character:");BufferedReader line = new BufferedReader(newInput

28、StreamReader(System.in);out = new PrintWriter(socket.getOutputStream(),true);out.println(line.readLine();in = new BufferedReader(new InputStreamReader(socket.getInputStream();System.out.println(in.readLine();out.close();in.close();socket.close();catch(IOException e)out.println("Wrong");pub

29、lic static void main(String口 args)new Client。;14、用JAVA實(shí)現(xiàn)一種排序,JAVA類(lèi)實(shí)現(xiàn)序列化的方法(二種)?如在COLLECTIONS架中, 實(shí)現(xiàn)比較要實(shí)現(xiàn)什么樣的接口?答:用插入法進(jìn)行排序代碼如下package test;import java.util.*;class InsertSortArrayList al;public InsertSort(int num,int mod)al = new ArrayList(num);Random rand = new Random();System.out.println("The A

30、rrayList Sort Before:");for (int i=0;i<num ;i+ )al.add(new Integer(Math.abs(rand.nextInt() % mod + 1);System.out.println("al"+i+"="+al.get(i);public void SortIt()Integer tempInt;int MaxSize=1;for(int i=1;i<al.size();i+)tempInt = (Integer)al.remove(i);if(tempIValu

31、e()>=(Integer)al.get(MaxSize-1).intValueO)al.add(MaxSize,tempInt);MaxSize+;System.out.println(al.toString(); else for (int j=0;j<MaxSize ;j+ ) if(Integer)al.get(j).intValue()>=tempIValue()al.add(j,tempInt);MaxSize+;System.out.println(al.toString(); break;System.out.println("The A

32、rrayList Sort After:");for(int i=0;i<al.size();i+)System.out.println("al"+i+"="+al.get(i);public static void main(String args)InsertSort is = new InsertSort(10,100);is.SortIt();JAVA類(lèi)實(shí)現(xiàn)序例化的方法是實(shí)現(xiàn)java.io.Serializable 接口Collection框架中實(shí)現(xiàn)比較要實(shí)現(xiàn)Comparable接口和 Comparator 接口15、編程:編寫(xiě)一

33、個(gè)截取字符串的函數(shù),輸入為一個(gè)字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。但是要保證漢字不被截半個(gè),如“我 ABC 4,應(yīng)該截為“我 AB',輸入“我ABC漢DEF , 6,應(yīng)該輸出為“我 ABC而不是“我 ABC權(quán)的半個(gè)”。(方正編程題)答:代碼如下:package test;class SplitStringString SplitStr;int SplitByte;public SplitString(String str,int bytes) SplitStr=str;SplitByte=bytes;System.out.println("The String is:&

34、#39; "+SplitStr+" ' ;SplitBytes="+SplitByte);public void SplitIt()int loopCount;loopCount=(SplitStr.length()%SplitByte=0)?(SplitStr.length()/SplitByte):(SplitStr.length()/SplitByte+1);System.out.println("Will Split into "+loopCount);for (int i=1;i<=loopCount ;i+ )if (

35、i=loopCount)System.out.println(SplitStr.substring(i-1)*SplitByte,SplitStr.length(); else System.out.println(SplitStr.substring(i-1)*SplitByte,(i*SplitByte);public static void main(String口 args)SplitString ss = new SplitString("test中 dd 文 dsaf 中男大 3443n 中國(guó) 43 中國(guó)人0ewldfls=103",4);ss.SplitIt(

36、); 16、JAVA多線程編程。用JAVA寫(xiě)一個(gè)多線程程序,如寫(xiě)四個(gè)線程,二個(gè)加 1,二個(gè)對(duì)一個(gè)變量減一,輸出。注:因?yàn)檫@4個(gè)線程共享J,所以線程類(lèi)要寫(xiě)到內(nèi)部類(lèi)中。加線程:每次對(duì)j加一。減線程:每次對(duì)j減一。public class TestThreads private int j=1;/加線程private class Inc implements Runnable public void run() for(int i = 0;i < 10;i+) inc(); /減線程 private class Dec implements Runnable public void run()

37、 for(int i = 0;i < 10;i+)dec();/加1private synchronized void inc()j+;System.out.println(Thread.currentThread().getName()+"-inc:"+j);/減1private synchronized void dec()j-;System.out.println(Thread.currentThread().getName()+"-dec:"+j);/測(cè)試程序public static void main(String口 args)Test

38、Threads test = new TestThreads();/創(chuàng)建兩個(gè)線程類(lèi)Thread thread = null;Inc inc = test.new Inc();Dec dec = test.new Dec();/啟動(dòng)4個(gè)線程for(int i = 0;i < 2;i+)thread = new Thread(inc);thread.start();thread = new Thread(dec);thread.start();17、 STRING STRINGBUFFER區(qū)另1J。答:STRING的長(zhǎng)度是不可變的,STRINGBUFFER長(zhǎng)度是可變的。如果你對(duì)字符串中的內(nèi)容

39、經(jīng)常進(jìn)行操作,特別是內(nèi)容要修改時(shí),那么使用StringBuffer ,如果最后需要 String ,那么使用 StringBuffer 的 toString()方法Jsp方面1、jsp有哪些內(nèi)置對(duì)象?作用分別是什么?答:JSP共有以下9種基本內(nèi)置組件(可與ASP的6種內(nèi)部組件相對(duì)應(yīng)):request用戶端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST青求的參數(shù)response網(wǎng)頁(yè)傳回用戶端的回應(yīng)pageContext網(wǎng)頁(yè)的屬性是在這里管理session 與請(qǐng)求有關(guān)的會(huì)話期application servlet正在執(zhí)行的內(nèi)容out用來(lái)傳送回應(yīng)的輸出config servlet的構(gòu)架部件page JSP網(wǎng)

40、頁(yè)本身exception 針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外2、jsp有哪些動(dòng)作?作用分別是什么?答:JSP共有以下6種基本動(dòng)作jsp:include :在頁(yè)面被請(qǐng)求的時(shí)候引入一個(gè)文件。jsp:useBean :尋找或者實(shí)例化一個(gè)JavaBean。jsp:setProperty :設(shè)置 JavaBean 的屬性。jsp:getProperty :輸出某個(gè) JavaBean 的屬性。jsp:forward :把請(qǐng)求轉(zhuǎn)到一個(gè)新的頁(yè)面。jsp:plugin :根據(jù)瀏覽器類(lèi)型為Java插件生成OBJECT EMBEDS3、JSP中動(dòng)態(tài)INCLUDE靜態(tài)INCLUDE勺區(qū)另1J?答:動(dòng)態(tài)INCLUDE用jsp:

41、include動(dòng)作實(shí)現(xiàn)<jsp:include page="included.jsp" flush="true" />它總是會(huì)檢查所含文件中的變化,適合用于包含動(dòng)態(tài)頁(yè)面,并且可以帶參數(shù)靜態(tài)INCLUDED include偽碼實(shí)現(xiàn),定不會(huì)檢查所含文件的變化,適用于包含靜態(tài)頁(yè)面<% include file="included.htm" %>4、兩種跳轉(zhuǎn)方式分別是什么?有什么區(qū)別?答:有兩種,分別為:<jsp:include page="included.jsp" flush="

42、true"><jsp:forward page= "nextpage.jsp"/>前者頁(yè)面不會(huì)轉(zhuǎn)向include所指的頁(yè)面,只是顯示該頁(yè)的結(jié)果,主頁(yè)面還是原來(lái)的頁(yè)面。執(zhí) 行完后還會(huì)回來(lái),相當(dāng)于函數(shù)調(diào)用。并且可以帶參數(shù).后者完全轉(zhuǎn)向新頁(yè)面,不會(huì)再回來(lái)。相當(dāng)于go to語(yǔ)句。Servlet 方面1、說(shuō)一說(shuō)Servlet的生命周期?答:servlet有良好的生存期的定義,包括加載和實(shí)例化、初始化、處理請(qǐng)求以及服務(wù)結(jié)束。這個(gè)生存期由 javax.servlet.Servlet 接口的 init,service 和 destroy 方法表達(dá)。2、Servl

43、et版本間(忘了問(wèn)的是哪兩個(gè)版本了)的不同?希望大家補(bǔ)上,謝謝3、JAVA SERVLET API 中 forward。與 redirect。的區(qū)別?答:前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;后 者則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的 地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時(shí),盡量使用forward。方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳 轉(zhuǎn)到一個(gè)其它服務(wù)器上的資源,則必須使用sendRedirect()方法。4、Servlet的基本架構(gòu)public cl

44、ass ServletName extends HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException public void doGet(HttpServletRequest request, HttpServletResponse response) thr owsServletException, IOException Jdbc、Jdo 方面1、可能會(huì)讓你寫(xiě)一段 Jdbc連Oracle的程序,并

45、實(shí)現(xiàn)數(shù)據(jù)查詢.(方正 編程題) 答:程序如下:package hello.ant;import java.sql.*;public class jdbc String dbUrl="jdbc:oracle:thin::1521:orcl"String theUser="admin"String thePw="manager"Connection c=null;Statement conn;ResultSet rs=null;public jdbc()tryClass.forName("oracle.jdbc

46、.driver.OracleDriver");c = DriverManager.getConnection(dbUrl,theUser,thePw);conn=c.createStatement();catch(Exception e) e.printStackTrace();public boolean executeUpdate(String sql)tryconn.executeUpdate(sql);return true;catch (SQLException e)e.printStackTrace();return false;public ResultSet exec

47、uteQuery(String sql)rs=null;tryrs=conn.executeQuery(sql);catch (SQLException e)e.printStackTrace();return rs;public void close() tryconn.close();c.close();catch (Exception e)e.printStackTrace();public static void main(String口 args)ResultSet rs;jdbc conn = new jdbc();rs=conn.executeQuery("select

48、 * from test");trywhile (rs.next()System.out.println(rs.getString("id");System.out.println(rs.getString("name");catch(Exception e)e.printStackTrace();2、Class.forName 的作用?為什么要用?答:調(diào)用該訪問(wèn)返回一個(gè)以字符串指定類(lèi)名的類(lèi)的對(duì)象。3、Jdo是什么?答:JDO是Java對(duì)象持久化的新的規(guī)范,為java data object 的簡(jiǎn)稱(chēng),也是一個(gè)用于存取某種數(shù)據(jù)倉(cāng)庫(kù)中的對(duì)象的標(biāo)準(zhǔn)化

49、API。JDO提供了透明的對(duì)象存儲(chǔ),因此對(duì)開(kāi)發(fā)人員來(lái)說(shuō),存儲(chǔ)數(shù)據(jù)對(duì)象完全不需要額外的代碼(如 JDBC API的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到JDO產(chǎn)品提供商身上,使開(kāi)發(fā)人員解脫出來(lái),從而集中時(shí)間和精力在業(yè)務(wù)邏輯上。另外,JDO很靈活,因?yàn)樗梢栽谌魏螖?shù)據(jù)底層上運(yùn)行。JDBC只是面向關(guān)系數(shù)據(jù)庫(kù)(RDBMS)JD通用,提供到任何數(shù)據(jù)底層的存儲(chǔ)功能,比如關(guān)系數(shù)據(jù)庫(kù)、文件、XML以及對(duì)象數(shù)據(jù)庫(kù)(ODBMS等等,使得應(yīng)用可移植性更強(qiáng)。4、在ORACLE數(shù)據(jù)量下的分頁(yè)解決方法。一般用截取ID方法,還有是三層嵌套方法。答:一種分頁(yè)方法<%int i=1;int numPages=14;Stri

50、ng pages = request.getParameter("page");int currentPage = 1;currentPage=(pages=null)?:Integer.parseInt(pages)sql = "select count(*) from tables"ResultSet rs = DBLink.executeQuery(sql);while(rs.next() i = rs.getInt(1);int intPageCount=1;intPageCount=(i%numPages=0)?(i/numPages):(i/

51、numPages+1);int nextPage ;int upPage;nextPage = currentPage+1;if (nextPage>=intPageCount) nextPage=intPageCount;upPage = currentPage-1;if (upPage<=1) upPage=1;rs.close();sql="select * from tables"rs=DBLink.executeQuery(sql);i=0;while(i<numPages*(currentPage-1)&&rs.next()i+

52、;%>/輸出內(nèi)容/輸出翻頁(yè)連接合計(jì):<%=currentPage%>/<%=intPageCount%><a href="List.jsp?page=1">第一頁(yè) </a><ahref="List.jsp?page=<%=upPage%>"> 上一頁(yè) </a><%for(int j=1;j<=intPageCount;j+)if(currentPage!=j)%><a href="list.jsp?page=<%=j%>

53、"><%=j%></a><%else out.println(j); %><a href="List.jsp?page=<%=nextPage%>"> 下一頁(yè) </a><a href="List.jsp?page=<%=intPa geCount%>"> 最后頁(yè)</a>Xml方面1、xml有哪些解析技術(shù)?區(qū)別是什么?(方正 簡(jiǎn)答題) 答:有 DOM,SAX,STA痔DOM處理大型文件時(shí)其性能下降的非常厲害。這個(gè)問(wèn)題是由DOM勺樹(shù)結(jié)構(gòu)

54、所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM、須在解析文件之前把整個(gè)文檔裝入內(nèi)存,適合對(duì)XML的隨機(jī)訪問(wèn)SAX:不現(xiàn)于DOM,SA混事件驅(qū)動(dòng)型的 XML解析方式。它順序讀取 XML文件,不需要一 次全部裝載整個(gè)文件。當(dāng)遇到像文件開(kāi)頭,文檔結(jié)束,或者標(biāo)簽開(kāi)頭與標(biāo)簽結(jié)束時(shí),它會(huì)觸 發(fā)一個(gè)事件,用戶通過(guò)在其回調(diào)事件中寫(xiě)入處理代碼來(lái)處理XML文件,適合對(duì)XML的順序訪問(wèn)STAX:Streaming API for XML (StAX)2、你在項(xiàng)目中用到了 xml技術(shù)的哪些方面?如何實(shí)現(xiàn)的?答:用到了數(shù)據(jù)存貯,信息配置兩方面。在做數(shù)據(jù)交換平臺(tái)時(shí),將不能數(shù)據(jù)源的數(shù)據(jù)組裝成XML文件,然后將XML文件壓縮打

55、包加密后通過(guò)網(wǎng)絡(luò)傳送給接收者,接收解密與解壓縮后再 同XML文件中還原相關(guān)信息進(jìn)行處理。在做軟件配置時(shí),利用XML可以很方便的進(jìn)行,軟件的各種配置參數(shù)都存貯在XML文件中。3、用jdom解析xml文件時(shí)如何解決中文問(wèn)題?如何解析?答:看如下代碼,用編碼方式加以解決package test;import java.io.*;public class DOMTest private String inFile = "c:people.xml"private String outFile = "c:people.xml" public static void

56、main(String args) new DOMTest();public DOMTest()tryjavax.xml.parsers.DocumentBuilder builder =javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();org.w3c.dom.Document doc = builder.newDocument();org.w3c.dom.Element root = doc.createElement("老師");org.w3c.dom.Element

57、wang = doc.createElement("王)org.w3c.dom.Element liu = doc.createElement(" 劉");wang.appendChild(doc.createTextNode("我是王老師");root.appendChild(wang);doc.appendChild(root);javax.xml.transform.Transformer transformer =javax.xml.transform.TransformerFactory.newInstance().newTransformer();transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312 ");transforme

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論