範文齋

位置:首頁 > 職場範文 > 職場百科

黑馬程序員Java培訓和Android培訓-就業面試題學習

黑馬程序員Java培訓和Android培訓-就業面試題學習

經典問題:

(1)在JAVA中如何跳出當前的多重嵌套循環

法一:在Java中,要想跳出多重循環,可以在外面的循環語句前定義一個標號,然後在裏層循環體的代碼中使用帶有標號的break 語句,即可跳出外層循環。例如,

ok:

for(int i=0;i<10;i++)< p="">

{

for(int j=0;j<10;j++)< p="">

{

tln(“i=” + i + “,j=” + j);

if(j == 5) break ok;

}

}

法二:讓外層的循環條件表達式的結果可以受到裏層循環體代碼的控制,例如,要在二維數組中查找到某個數字。

int arr[][] = {{1,2,3},{4,5,6,7},{9}};

boolean found = false;

for(int i=0;i<th p="" !found;i++)<="">

{

for(int j=0;j

{

tln(“i=” + i + “,j=” + j);

if(arr[i][j] == 5)

{

found = true;

break;

}

}

}

(2)在switch(expr1)中,expr1只能是一個整數表達式或者枚舉常量(更大字體),整數表達式可以是int基本類型或Integer包裝類型(JDK1.5新特性,拆包),由於,byte,short,char都可以隱含轉換爲int,所以些類型以及這些類型的包裝類型也是可以的作爲expr1的類型

(3)使用final關鍵字修飾一個變量時,是指引用變量(存儲對象地址的變量)不能變,即其中存儲的對象地址值不能變,也就是說引用變量不能指向另外一個對象,存儲另外一個對象的地址,引用變量所指向的對象中的內容還是可以改變的。例如,對於如下語句:個

finalStringBuffera=newStringBuffer("immutable");

執行如下語句將報告編譯期錯誤:

a=newStringBuffer("");

但是,執行如下語句則可以通過編譯:

nd("broken!");

有人在定義方法的參數時,可能想採用如下形式來阻止方法內部修改傳進來的參數對象:

public void method(final StringBuffer param)

{

}

實際上,這是辦不到的,在該方法內部仍然可以增加如下代碼來修改參數對象:

nd("a");

(4)字符串的比較基本上都是使用equals方法

(5)27、String s = new String("xyz");創建了幾個String Object? 二者之間有什麼區別?

兩個或一個,”xyz”對應一個對象,這個對象放在字符串常量緩衝區,常量”xyz”不管出現多少遍,都是緩衝區中的那一個。New String每寫一遍,就創建一個新的對象,它一句那個常量”xyz”對象的內容來創建出一個新String對象。如果以前就用過’xyz’,這句代表就不會創建”xyz”自己了,直接從緩衝區拿。

關於字符串的研究:

清晰的學習String需具備的知識:

1.內存棧與堆

詳細知識請看我回答的內容:

ng的關鍵知識點

String是常量,其對象一旦創建完畢就無法改變。當使用+拼接字符串時,會生成新的String對象,而不是向原有的'String對象追加內容。

String pool(字符串池)內存棧即你上面說的緩衝池

String s = “aaa”;(採用字面值方式賦值)

1) 查找String pool中是否存在“aaa”這個對象,如果不存在,則在String pool中創建一個“aaa”對象,然後將String pool中的這個“aaa”對象的地址返回來,賦給引用變量s,這樣s會指向String pool中的這個“aaa”字符串對象

2) 如果存在,則不創建任何對象,直接將String pool中的這個“aaa”對象地址返回來,賦給s引用。

String s = new String(“aaa”); 堆內存

1) 首先在String pool中查找有沒有“aaa”這個字符串對象,如果有,則不在String pool中再去創建“aaa”這個對象了,直接在堆中(heap)中創建一個“aaa”字符串對象,然後將堆中的這個“aaa”對象的地址返回來,賦給s引用,導致s指向了堆中創建的這個“aaa”字符串對象。

2) 如果沒有,則首先在String pool中創建一個“aaa“對象,然後再在堆中(heap)創建一個”aaa“對象,然後將堆中的這個”aaa“對象的地址返回來,賦給s引用,導致s指向了堆中所創建的這個”aaa“對象。