實習(xí)生java面試題集及詳細答案_第1頁
實習(xí)生java面試題集及詳細答案_第2頁
實習(xí)生java面試題集及詳細答案_第3頁
實習(xí)生java面試題集及詳細答案_第4頁
實習(xí)生java面試題集及詳細答案_第5頁
免費預(yù)覽已結(jié)束,剩余3頁可下載查看

下載本文檔

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

文檔簡介

1、1 .Java有那些基本數(shù)據(jù)類型,String是不是基本數(shù)據(jù)類型,他們有何區(qū)別。Java語言提供了八種基本類型:六種數(shù)字類型(四個整數(shù)型,兩個浮點型)字節(jié)型byte8位短整型short16位整型int32位長整型long64位單精度float32位雙精度double64位一種字符類型字符型char8位還有一種布爾型布爾型:boolean8位可存儲"True"和"false"。String本身就是一個對象而不是基本數(shù)據(jù)類型,String的變量名是對String類的引用。2 .字符串的操作:寫一個方法,實現(xiàn)字符串的反轉(zhuǎn),如:輸入abc,輸出cbapublic

2、staticStringreverse(Strings)intlength=s.length();StringBufferresult=newStringBuffer(length);for(inti=length-1;i>=0;i-)result.append(s.charAt(i);returnresult.toString();寫一個方法,實現(xiàn)字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。Strings="bbbwlirbbb"s.replaceAll("wlirbbb","hhtccc");3 .數(shù)

3、據(jù)類型之間的轉(zhuǎn)換如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double)使用Integer.parseInt()和Double.parseDouble()方法。如何將數(shù)字轉(zhuǎn)換為字符classmyinta=12;Labellabel=newLabel();label.setText(String.valueOf(a);如何取小數(shù)點前兩位,并四舍五入。System.out.println("四舍五入取整:(3.856)="+newBigDecimal(i).setScale(2,BigDecimal.ROUND_HALF_UP);4 .日期和時間如何取得年月日,小時分秒Dat

4、edat=newDate();dat.getYear();dat.getMonth();dat.getDay();dat.getHours();dat.getMinutes();dat.getSeconds();如何取得從1970年到現(xiàn)在的毫秒數(shù)longnow=dat.getTime();如何獲取某個日期是當月的最后一天DateFormatedf=DateFormate.getInstance();df.Format(dat);如何格式化日期DateFormatedf=DateFormate.getInstance();df.Format(dat);5 .數(shù)組和集合數(shù)組與集合的區(qū)別:一:數(shù)組聲

5、明了它容納的元素的類型,而集合不聲明。這是由于集合以object形式來存儲它們的元素。二:一個數(shù)組實例具有固定的大小,不能伸縮。集合則可根據(jù)需要動態(tài)改變大小。三:數(shù)組是一種可讀/可寫數(shù)據(jù)結(jié)構(gòu)沒有辦法創(chuàng)建一個只讀數(shù)組。然而可以使用集合提供的ReadOnly方只讀方式來使用集合。該方法將返回一個集合的只讀版本。6 .文件和目錄(I/O)操作如何列出某個目錄下的所有文件如何列出某個目錄下的所有子目錄判斷一個文件或目錄是否存在如何讀寫文件importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;impor

6、tjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;publicclassFileOpreatepublicstaticvoidmain(Stringargs)FileOpreatefo=newFileOpreate();try文件的寫入/*String口testStr=newString50;for(inti=0;i<testStr.length;i+)testStri="

7、我的測t焉數(shù)據(jù)00"+i;fo.writeFile("D:","test.txt",testStr);*/文件的寫入/*Stringstr="測試"fo.writeFile("D:","test001.txt”,str);*/創(chuàng)建或者刪除文件/*if(fo.createAndDeleteFile("D:","test001.txt")(fo.createAndDeleteFile("D:","test002.txt"

8、);*/創(chuàng)建或者刪除文件夾/*fo.createAndDeleteFolder("D:","2009-07-06");*/輸出一個文件內(nèi)的文件名稱/*fo.readFolderByFile("D:");*/判斷一個文件是否是空的/*fo.fileIsNull("D:","test002.txt");*/讀取全部的文件內(nèi)容/*fo.readAllFile("D:","test.txt");*/一行一行讀取文件內(nèi)容fo.readLineFile("D

9、:","test.txt");catch(Exceptione)(e.printStackTrace();7 .Java多態(tài)的實現(xiàn)(繼承、重載、覆蓋)多態(tài)可分為:1)編譯多態(tài):主要是體現(xiàn)在重載,系統(tǒng)在編譯時就能確定調(diào)用重載函數(shù)的哪個版本。2)運行多態(tài):主要體現(xiàn)在OO設(shè)計的繼承性上,子類的對象也是父類的對象,即上溯造型,所以子類對象可以作為父類對象使用,父類的對象變量可以指向子類對象。因此通過一個父類發(fā)出的方法調(diào)用可能執(zhí)行的是方法在父類中的實現(xiàn),也可能是某個子類中的實現(xiàn),它是由運行時刻具體的對象類型決定的。8 .編碼轉(zhuǎn)換,怎樣實現(xiàn)將GB2312編碼的字符串轉(zhuǎn)換為IS

10、O-8859-1編碼的字符串。Stringstr=newString("字符串".getBytes("GB2312"),"ISO-8859-1");9 .使用StringBuffer類與String類進行字符串連接時有何區(qū)別?JAVA平臺提供了兩個類:String和StringBuffer,它們可以儲存和操作字符串,即包含多個字符的字符數(shù)據(jù)。這個String類提供了數(shù)值不可改變的字符串。而這個StringBuffer類提供的字符串進行修改。當你知道字符數(shù)據(jù)要改變的時候你就可以使用StringBuffer。典型地,你可以使用String

11、Buffers來動態(tài)構(gòu)造字符數(shù)據(jù)。10 .談?wù)刦inal,finally,finalize的區(qū)別。final用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize是Object類的一個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關(guān)閉文件等。ll.Strings=newString("xyz");創(chuàng)建了幾個StringObject?兩個,一個是strings,另一個是"xyz"。12 .Java有沒有g(shù)oto?g

12、oto是java中的保留字,現(xiàn)在沒有在java中使用。13 .數(shù)組有沒有l(wèi)ength()這個方法?String有沒有l(wèi)ength()這個方法?數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。String有l(wèi)ength()這個方法。14.Overload和Override的區(qū)別。override(重寫)1)方法名、參數(shù)、返回值相同。2)子類方法不能縮小父類方法的訪問權(quán)限。3)子類方法不能拋出比父類方法更多的異常(但子類方法可以不拋出異常)。4)存在于父類和子類之間。5)方法被定義為final不能被重寫。overload(重載)1)參數(shù)類型、個數(shù)、順序至少有一個不相同。2)不能重載只有返回

13、值不同的方法名。3)存在于父類和子類、同類中。15 .abstractclas喇interface有什么區(qū)另1J?Interface只能有成員常量,只能是方法的聲明;而abstractclass可以有成員變量,可以聲明普通方法和抽象方法。聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstractclass),它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實現(xiàn)該類的情況。不能創(chuàng)建abstract類的實例。然而可以創(chuàng)建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract類的子類為它們父類中的所有抽象方法提供實現(xiàn),否

14、則它們也是抽象類為。取而代之,在子類中實現(xiàn)該方法。知道其行為的其它類可以在類中實現(xiàn)這些方法。接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義staticfinal成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanc

15、eof運算符可以用來決定某對象的類是否實現(xiàn)了接口。16 .是否可以繼承String類?String類是final類故不可以繼承。17 .面向?qū)ο蟮奶卣饔心男┓矫妫?)抽象:抽象就是忽略一個主題中與當前目標無關(guān)的那些方面,以便更充分地注意與當前目標有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節(jié)。抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。2)繼承:繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類

16、(父類)c派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。3)封裝:封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥嬎闶加谶@個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。4)多態(tài)性:多態(tài)性是指允許不同類的對象對同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函數(shù)同名問題。1.1 int和Integer有什么區(qū)別?Java提供兩種不同的類型:引用類型和原始類型(或內(nèi)置類型)。Int是java的

17、原始數(shù)據(jù)類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。原始類型封裝類booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble引用類型和原始類型的行為完全不同,并且它們具有不同的語義。引用類型和原始類型具有不同的特征和用法,它們包括:大小和速度問題,這種類型以哪種類型的數(shù)據(jù)結(jié)構(gòu)存儲,當引用類型和原始類型用作某個類的實例數(shù)據(jù)時所指定的缺省值。對象引用實例變量的缺省值為null,而原始類型實例變量的缺省值與它們的類型有關(guān)。.作用域public,p

18、rivate,protected,以及不寫時的區(qū)別?訪問PublicProtected缺省的Private同類VVVV同包VVVx子類VVXx通用性V7xXX.用java寫一個冒泡排序。/*對int數(shù)組進行升序排序*paramintVal:要排序的數(shù)組paramasc:值為true,表示升序排序;傳入值為false,表示降序排序return返回排序后的int數(shù)組/publicstaticint口intArraySort(int口intVal,booleanasc)int口vals=intVal;inttemp;if(vals.length>0)if(asc=true)for(inti=0

19、;i<=vals.length-2;i+)for(intj=0;j<vals.length-i-1;j+)if(valsj>valsj+1)升序排列temp=valsj;valsj=valsj+1;valsj+1=temp;)elsefor(inti=0;i<=vals.length-2;i+)for(intj=0;j<vals.length-i-1;j+)if(valsj<valsj+1)降序排列temp=valsj;valsj=valsj+1;valsj+1=temp;returnvals;21.shortsi=1;si=si+1有什么錯?shortsi

20、=1;si+=傳什么錯?shorts1=1;s1=s1+1;(s1+1運算結(jié)果是int型,需要強制轉(zhuǎn)換類型)shorts1=1;s1+=1;(可以正確編譯)22.float型floatf=3.4是否正確?不正確。精度不準確,應(yīng)該用強制類型轉(zhuǎn)換,如下所示:floatf=(float)3.4或floatf=3.4f在java里面,沒小數(shù)點的默認是int,有小數(shù)點的默認是double;23.ArrayList和Vector的區(qū)另1J,HashMap和Hashtable的區(qū)另ArrayList和Vector都是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素數(shù)大于實際存儲的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號

21、索引元素,但是插入元素要涉及數(shù)組元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差。HashMap是Hashtable的輕量級實現(xiàn)(非線程安全的實現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable。HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因

22、為contains方法容易讓人引起誤解。Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Mapinterface的一個實現(xiàn)。最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現(xiàn)同步,而HashMap就必須為之提供外同步。24.Error與Exception有什么區(qū)另1J?error表示恢復(fù)不是不可能但很困難的情況下的一種嚴重問題。比如說內(nèi)存溢出。不可能指望程序能處理這樣的情況。exception表示一種設(shè)計或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運行正常,從不會發(fā)生

23、的情況。25.statement和preparestatement區(qū)別1)創(chuàng)建時的區(qū)別:Statementstm=con.createStatement();PreparedStatementpstm=con.prepareStatement(sql);執(zhí)行的時候:stm.execute(sql);pstm.execute();2)pstm一旦綁定了SQL,此pstm就不能執(zhí)行其他的Sql,即只能執(zhí)行一條SQL命令。stm可以執(zhí)行多條SQL命令。3)對于執(zhí)行同構(gòu)的sql(只有值不同,其他結(jié)構(gòu)都相同),用pstm的執(zhí)行效率比較的高,對于異構(gòu)的SQL語句,Statement的執(zhí)行效率要高。4)當需

24、要外部變量的時候,pstm的執(zhí)行效率更高.26.寫一個數(shù)據(jù)庫連接類,包括查詢及結(jié)果存儲。importjava.sql.*;需要加入的包類的定義classDBConnectprivateStringcon1="sun.jdbc.odbc.JdbcOdbcDriver"/連接SQL所需要的字符串privateStringurl="jdbc:odbc:test"privateStringuser="sa",password=""/這里請根據(jù)您的數(shù)據(jù)庫用戶和密碼自行修改Connectioncon;/用于連接數(shù)據(jù)庫用的Pre

25、paredStatementps;/其實用Statement也行,PreparedStatement集成了Statement.ResultSetrs;一個集合,可以用于執(zhí)行SQL命令/構(gòu)造函數(shù)DBConnect()tryClass.forName(conl);/Class.forName()用于將一些類加載到JVMthis.Connect();/函數(shù)調(diào)用trythis.execute();catch(SQLExceptionex)System.out.println(ex.toString();catch(ClassNotFoundExceptionce)System.out.println(ce);publicvoidConnect()trycon=DriverManager.getConnection(url,user,password);/做這部之前先把ODBC配置好if(con!=null)System.out.println("ConnectionSucessfully!");)catch(SQLExceptionex)System.out.println(ex.toString();publicv

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論