面試過(guò)程
Java基本技術(shù),Android應(yīng)用層開(kāi)發(fā),framework層開(kāi)發(fā)技術(shù),做過(guò)項(xiàng)目分析.
面試官提到的問(wèn)題
一個(gè)".java"源文件中是否可以包括多個(gè)類(不是內(nèi)部類)?有什么限制?
可以有多個(gè)類,但只能有一個(gè)public的類,并且public的類名必須與文件名相一致。
2、Java有沒(méi)有g(shù)oto?
java中的保留字,現(xiàn)在沒(méi)有在java中使用。
3、說(shuō)說(shuō)&和&&的區(qū)別。
&和&&都可以用作邏輯與的運(yùn)算符,表示邏輯與(and),當(dāng)運(yùn)算符兩邊的表達(dá)式的結(jié)果都為true時(shí),整個(gè)運(yùn)算結(jié)果才為true,否則,只要有一方為false,則結(jié)果為false。
&&還具有短路的功能,即如果第一個(gè)表達(dá)式為false,則不再計(jì)算第二個(gè)表達(dá)式,例如,對(duì)于if(str != null && !str.equals(“”))表達(dá)式,當(dāng)str為null時(shí),后面的表達(dá)式不會(huì)執(zhí)行,所以不會(huì)出現(xiàn)NullPointerException如果將&&改為&,則會(huì)拋出NullPointerException異常。If(x==33 & ++y>0) y會(huì)增長(zhǎng),If(x==33 && ++y>0)不會(huì)增長(zhǎng)
&還可以用作位運(yùn)算符,當(dāng)&操作符兩邊的表達(dá)式不是boolean類型時(shí),&表示按位與操作,我們通常使用0x0f來(lái)與一個(gè)整數(shù)進(jìn)行&運(yùn)算,來(lái)獲取該整數(shù)的最低4個(gè)bit位,例如,0x31 & 0x0f的結(jié)果為0x01。
備注:這道題先說(shuō)兩者的共同點(diǎn),再說(shuō)出&&和&的特殊之處,并列舉一些經(jīng)典的例子來(lái)表明自己理解透徹深入、實(shí)際經(jīng)驗(yàn)豐富。
4、在JAVA中如何跳出當(dāng)前的多重嵌套循環(huán)?
在Java中,要想跳出多重循環(huán),可以在外面的循環(huán)語(yǔ)句前定義一個(gè)標(biāo)號(hào),然后在里層循環(huán)體的代碼中使用帶有標(biāo)號(hào)的break 語(yǔ)句,即可跳出外層循環(huán)。例如,
ok:
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
System.out.println(“i=” + i + “,j=” + j);
if(j == 5) break ok;
}
}
另外,我個(gè)人通常并不使用標(biāo)號(hào)這種方式,而是讓外層的循環(huán)條件表達(dá)式的結(jié)果可以受到里層循環(huán)體代碼的控制,例如,要在二維數(shù)組中查找到某個(gè)數(shù)字。
int arr[][] = {{1,2,3},{4,5,6,7},{9}};
boolean found = false;
for(int i=0;i {
for(int j=0;j {
System.out.println(“i=” + i + “,j=” + j);
if(arr[i][j] == 5)
{
found = true;
break;
}
}
}
其它細(xì)節(jié)
應(yīng)聘途徑 網(wǎng)上申請(qǐng)
面試內(nèi)容 職業(yè)技能測(cè)試
面試難度 難度一般
面試感覺(jué) 一般