java應(yīng)屆生面試題和答案
對于Java應(yīng)屆生求職者而言,提前對面試題目有了解很重要,以下是小編幫你們整理的java應(yīng)屆生面試題和答案,一起來學(xué)習(xí)啦。
java應(yīng)屆生面試題和答案(一)
1.Java有那些基本數(shù)據(jù)類型,String是不是基本數(shù)據(jù)類型,他們有何區(qū)別。
Java語言提供了八種基本類型:
六種數(shù)字類型(四個整數(shù)型,兩個浮點型)
字節(jié)型byte 8位 短整型short 16位 整型int 32位
長整型long 64位 單精度float 32位 雙精度double 64位
一種字符類型
字符型char 8位
還有一種布爾型
布爾型:boolean 8位 可存儲"True"和"false"。
String本身就是一個對象而不是基本數(shù)據(jù)類型,String的變量名是對String類的引用。
2.字符串的操作:
寫一個方法,實現(xiàn)字符串的反轉(zhuǎn),如:輸入abc,輸出cba
public static String reverse(String s){
int length=s.length();
StringBuffer result=new StringBuffer(length);
for(int i=length-1;i>=0;i--)
result.append(s.charAt(i));
return result.toString();
}
寫一個方法,實現(xiàn)字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。 String s = "bbbwlirbbb";s.replaceAll("wlirbbb","hhtccc");
3.數(shù)據(jù)類型之間的轉(zhuǎn)換
如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double)
使用Integer.parseInt()和Double.parseDouble()方法。
如何將數(shù)字轉(zhuǎn)換為字符
class my
{
int a=12;
Label label=new Label();
label.setText(String.valueOf(a));
}
如何取小數(shù)點前兩位,并四舍五入。
System.out.println("四舍五入取整:(3.856)="
+ new BigDecimal(i).setScale(2, BigDecimal.ROUND_HALF_UP));
4.日期和時間
如何取得年月日,小時分秒
Date dat=new Date();
dat.getYear(); dat.getMonth(); dat.getDay(); dat.getHours(); dat.getMinutes(); dat.getSeconds();
如何取得從1970年到現(xiàn)在的毫秒數(shù)
long now=dat.getTime();
如何獲取某個日期是當(dāng)月的最后一天
DateFormate df=DateFormate.getInstance();df.Format(dat);
如何格式化日期
DateFormate df=DateFormate.getInstance();
df.Format(dat);
java應(yīng)屆生面試題和答案(二)
1.數(shù)組和集合
數(shù)組與集合的區(qū)別:一:數(shù)組聲明了它容納的元素的類型,而集合不聲明。這是由于集合以object形式來存儲它們的元素。二:一個數(shù)組實例具有固定的大小,不能伸縮。集合則可根據(jù)需要動態(tài)改變大小。三:數(shù)組是一種可讀/可寫數(shù)據(jù)結(jié)構(gòu)沒有辦法創(chuàng)建一個只讀數(shù)組。然而可以使用集合提供的ReadOnly方 只讀方式來使用集合。該方法將返回一個集合的只讀版本。
2.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),它是由運行時刻具體的對象類型決定的。
3.編碼轉(zhuǎn)換,怎樣實現(xiàn)將GB2312編碼的字符串轉(zhuǎn)換為ISO-8859-1編碼的字符串。
String str = new String("字符串".getBytes("GB2312"),"ISO-8859-1");
4.使用StringBuffer類與String類進行字符串連接時有何區(qū)別?
JAVA平臺提供了兩個類:String和StringBuffer,它們可以儲存和操作字符串,即包含多個字符的字符數(shù)據(jù)。這個String類提供了數(shù)值不可改變的字符串。而這個StringBuffer類提供的字符串進行修改。當(dāng)你知道字符數(shù)據(jù)要改變的時候你就可以使用StringBuffer。典型地,你可以使用StringBuffers來動態(tài)構(gòu)造字符數(shù)據(jù)。
5.談?wù)刦inal, finally, finalize的區(qū)別。
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。 finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。
finalize是Object類的一個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關(guān)閉文件等。
6.int 和 Integer 有什么區(qū)別?
Java 提供兩種不同的類型:引用類型和原始類型(或內(nèi)置類型)。
Int是java的原始數(shù)據(jù)類型,
Integer是java為int提供的封裝類。
Java為每個原始類型提供了封裝類。
原始類型封裝類booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble
引用類型和原始類型的行為完全不同,并且它們具有不同的語義。引用類型和原始類型具有不同的特征和用法,它們包括:大小和速度問題,這種類型以哪種類型的數(shù)據(jù)結(jié)構(gòu)存儲,當(dāng)引用類型和原始類型用作某個類的實例數(shù)據(jù)時所指定的缺省值。對象引用實例變量的缺省值為 null,而原始類型實例變量的缺省值與它們的類型有關(guān)。
java應(yīng)屆生面試題和答案(三)
1.String s = new String("xyz");創(chuàng)建了幾個String Object?
兩個,一個是string s,另一個是”xyz”。
2.Java有沒有g(shù)oto?
goto是java中的保留字,現(xiàn)在沒有在java中使用。
3.數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法?
數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。String有l(wèi)ength()這個方法。
4.Overload和Override的區(qū)別。
override(重寫)
1)方法名、參數(shù)、返回值相同。
2)子類方法不能縮小父類方法的訪問權(quán)限。
3)子類方法不能拋出比父類方法更多的異常(但子類方法可以不拋出異常)。
4)存在于父類和子類之間。
5)方法被定義為final不能被重寫。
overload(重載)
1)參數(shù)類型、個數(shù)、順序至少有一個不相同。
2)不能重載只有返回值不同的方法名。
3)存在于父類和子類、同類中。
5.abstract class和interface有什么區(qū)別?
Interface只能有成員常量,只能是方法的聲明;
而abstract class可以有成員變量,可以聲明普通方法和抽象方法。
聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstract class),它用于要創(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)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof 運算符可以用來決定某對象的類是否實現(xiàn)了接口。
6.是否可以繼承String類?
String類是final類故不可以繼承。
看了“java應(yīng)屆生面試題和答案”