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