轉(zhuǎn)載自
思念的空間
答案僅共參考。
1. 比較
a) 1L < <35;
b) 1 < <35;
c) 1 < <4
的大小?
答:a最大。b最小。c中間大。理由:1L < <35等同于1L < <(35%64);1 < <35等同于1 < <(35%32)即1 < <3
2. Class Student{
private String name;
public Boolean nameDuplicate(Student student){
if(this.name == student.name){
return true;
}else return false;
}
}
問(wèn)nameDuplicate方法中能否直接調(diào)用student的name私有字段?
答:當(dāng)然可以。理由:private是在類(lèi)的層次而不是對(duì)象的層次進(jìn)行保護(hù)的。
(對(duì)于私有成員變量和方法,只有在本類(lèi)中創(chuàng)建該類(lèi)的對(duì)象時(shí),這個(gè)對(duì)象才能訪問(wèn)自己的私有成員變量和類(lèi)中的私有方法)
3. short 類(lèi)型需要幾個(gè)字節(jié)?
答:2個(gè)。理由:JAVA中就這么規(guī)定的。
4. 雙精度指的是什么?精度有多少?
答:double類(lèi)型,保證15位有效數(shù)字的精度。
5. 三個(gè)特殊的浮點(diǎn)數(shù)是什么?
答:正無(wú)窮Double.POSITIVE_INFINITY,負(fù)無(wú)窮Double.NEGATIVE_INFINITY ,保持 double 類(lèi)型的非數(shù)字值Double.NaN
6. 如何判斷一個(gè)變量是數(shù)字?
答:若是判斷一個(gè)字符串變量vs是不是整數(shù)值:可用:
try{
int v = Integer.parseInt(vs);
}
catch(NumberFormatException e){
System.out.println("不是數(shù)值。");
}
說(shuō)明:或者使用“正則表達(dá)式”亦可。
7. goto功能如何實(shí)現(xiàn)?
答:使用帶標(biāo)號(hào)的break語(yǔ)句。如:break label 實(shí)現(xiàn)goto的功能。
理由:JAVA中已取消了goto語(yǔ)句(但保留了goto這個(gè)保留字。)goto語(yǔ)句存在的價(jià)值是從嵌套較深的循環(huán)中一下子跳出來(lái)。
(標(biāo)號(hào)必須寫(xiě)在一個(gè)循環(huán)的前面(如label) 。這個(gè)label是修飾這個(gè)循環(huán)的。 那么break label, 和continue label。是說(shuō)相對(duì)于那個(gè)被修飾的循環(huán)的break 和continue。)
8. 一個(gè)源文件中public類(lèi)數(shù)量是否有限制?
答:當(dāng)然有。只能有一個(gè)。
理由:JAVA源程序取名時(shí),擴(kuò)展名是 .java,但文件名必須與public類(lèi)的類(lèi)名相同。故最多只能定義一個(gè)(最少0個(gè)。)。
若沒(méi)有public類(lèi)則文件名可從源程序中的類(lèi)名隨便取一個(gè)來(lái)用。
9. 是否存在私有類(lèi)?
答:如:對(duì)內(nèi)部類(lèi)的定義。
10. 有沒(méi)有一種情況可以訪問(wèn)另一個(gè)類(lèi)的私有字段?
答:當(dāng)然可以。典型情況:非static型內(nèi)部類(lèi)就可以訪問(wèn)外部類(lèi)的一切成員。(含:private型)這也是內(nèi)部類(lèi)存在的價(jià)值之一。
11. 是否可以定義與構(gòu)造器同名的方法?
答:當(dāng)然可以。
12. Java的參數(shù)傳遞是哪種?傳值,傳地址,基本數(shù)據(jù)類(lèi)型傳值、對(duì)象傳地址?
答:值傳遞機(jī)制
a) 通過(guò)Java參數(shù)傳遞,是否可以改變基本數(shù)據(jù)類(lèi)型的值?
答:不能。 理由:值傳遞機(jī)制
b) 是否可以改變對(duì)象的狀態(tài)?
答:可以。 理由:對(duì)象的狀態(tài)是由其數(shù)據(jù)成員表達(dá)的。而數(shù)據(jù)成員的值是可以用方法來(lái)修改的。
c) 是否可以創(chuàng)建對(duì)象?
答:可以。
13. 只寫(xiě)一個(gè)類(lèi)不寫(xiě)main方法,能否像控制臺(tái)輸出“Hello World”。
答:當(dāng)然可以。理由:用類(lèi)的初始化塊 static{ System.out.println("Hello World");}
14. Java程序?qū)inal實(shí)例字段有何要求?
答: 一定要初始化。最好在定義的同時(shí)就進(jìn)行初始化。
15. 如何利用Java反射機(jī)制創(chuàng)建一個(gè)“實(shí)例化時(shí)需要參數(shù)的”對(duì)象?
答:若一個(gè)類(lèi)MyClass定義了一個(gè)帶有int類(lèi)型參數(shù)的構(gòu)造器:
public MyClass(int i)
{...}
則用反射機(jī)制創(chuàng)建一個(gè)“實(shí)例化時(shí)需要參數(shù)的”對(duì)象如下:
Class cls = Class.forName("MyClass");
Constructor cl= cls.getConstructor(int.class);
MyClass t12=(MyClass)cl.newInstance(20);
16. protected的實(shí)例字段的可見(jiàn)范圍?
答:子類(lèi)或同一個(gè)包。
17. 深度克隆和淺克隆的區(qū)別?
答:淺克隆只復(fù)制對(duì)象自身的二進(jìn)制位圖。源對(duì)象與克隆產(chǎn)生的對(duì)象都引用相同的其它資源。
深度克隆不僅是復(fù)制對(duì)象自身,而且源對(duì)象所引用的其它對(duì)象(或資源)都要遞歸地進(jìn)行克隆復(fù)制。
18. 何謂方法的隱式參數(shù)和顯示參數(shù)?
答:this是隱含傳遞給對(duì)象的方法的(類(lèi)方法是不隱含傳遞的)。顯式參數(shù):程序員自己明確定義的方法參數(shù)。
19. Date類(lèi)跟GoreignCalendar類(lèi)的關(guān)鍵區(qū)別?String和StringBuffer?
答:1)Date類(lèi)跟GoreignCalendar類(lèi)的關(guān)鍵區(qū)別是:國(guó)際化。Date類(lèi)不易國(guó)際化。而GregorianCalendar 是
Calendar 的一個(gè)具體子類(lèi),提供了世界上大多數(shù)國(guó)家使用的標(biāo)準(zhǔn)日歷系統(tǒng)。
2)String和StringBuffer:String是一個(gè)字符串常量。可能產(chǎn)生修改串的操作都會(huì)生成一個(gè)新的String對(duì)象。
而:StringBuffer是可以進(jìn)行插入、刪除、修改等操作,都是在自身上進(jìn)行的。不產(chǎn)生新的StringBuffer對(duì)象。
20. 如何編寫(xiě)判斷兩個(gè)對(duì)象的方法?
答:obj1.equals(obj2)