- 相關(guān)推薦
黑馬程序員Java培訓和Android培訓-就業(yè)面試題學習
經(jīng)典問題:
(1)在JAVA中如何跳出當前的多重嵌套循環(huán)
法一:在Java中,要想跳出多重循環(huán),可以在外面的循環(huán)語句前定義一個標號,然后在里層循環(huán)體的代碼中使用帶有標號的break 語句,即可跳出外層循環(huán)。例如,
ok:
for(int i=0;i<10;i++)< p="">
{
for(int j=0;j<10;j++)< p="">
{
System.out.println(“i=” + i + “,j=” + j);
if(j == 5) break ok;
}
}
法二:讓外層的循環(huán)條件表達式的結(jié)果可以受到里層循環(huán)體代碼的控制,例如,要在二維數(shù)組中查找到某個數(shù)字。
int arr[][] = {{1,2,3},{4,5,6,7},{9}};
boolean found = false;
for(int i=0;i<arr.length p="" !found;i++)<="">
{
for(int j=0;j
{
System.out.println(“i=” + i + “,j=” + j);
if(arr[i][j] == 5)
{
found = true;
break;
}
}
}
(2)在switch(expr1)中,expr1只能是一個整數(shù)表達式或者枚舉常量(更大字體),整數(shù)表達式可以是int基本類型或Integer包裝類型(JDK1.5新特性,拆包),由于,byte,short,char都可以隱含轉(zhuǎn)換為int,所以些類型以及這些類型的包裝類型也是可以的作為expr1的類型
(3)使用final關(guān)鍵字修飾一個變量時,是指引用變量(存儲對象地址的變量)不能變,即其中存儲的對象地址值不能變,也就是說引用變量不能指向另外一個對象,存儲另外一個對象的地址,引用變量所指向的對象中的內(nèi)容還是可以改變的。例如,對于如下語句:個
finalStringBuffera=newStringBuffer("immutable");
執(zhí)行如下語句將報告編譯期錯誤:
a=newStringBuffer("");
但是,執(zhí)行如下語句則可以通過編譯:
a.append("broken!");
有人在定義方法的參數(shù)時,可能想采用如下形式來阻止方法內(nèi)部修改傳進來的參數(shù)對象:
public void method(final StringBuffer param)
{
}
實際上,這是辦不到的,在該方法內(nèi)部仍然可以增加如下代碼來修改參數(shù)對象:
param.append("a");
(4)字符串的比較基本上都是使用equals方法
(5)27、String s = new String("xyz");創(chuàng)建了幾個String Object? 二者之間有什么區(qū)別?
兩個或一個,”xyz”對應一個對象,這個對象放在字符串常量緩沖區(qū),常量”xyz”不管出現(xiàn)多少遍,都是緩沖區(qū)中的那一個。New String每寫一遍,就創(chuàng)建一個新的對象,它一句那個常量”xyz”對象的內(nèi)容來創(chuàng)建出一個新String對象。如果以前就用過’xyz’,這句代表就不會創(chuàng)建”xyz”自己了,直接從緩沖區(qū)拿。
關(guān)于字符串的研究:
清晰的學習String需具備的知識:
1.內(nèi)存棧與堆
詳細知識請看我回答的內(nèi)容:http://bbs.itheima.com/thread-360-1-1.html
2.String的關(guān)鍵知識點
String是常量,其對象一旦創(chuàng)建完畢就無法改變。當使用+拼接字符串時,會生成新的String對象,而不是向原有的String對象追加內(nèi)容。
String pool(字符串池)內(nèi)存棧即你上面說的緩沖池
String s = “aaa”;(采用字面值方式賦值)
1) 查找String pool中是否存在“aaa”這個對象,如果不存在,則在String pool中創(chuàng)建一個“aaa”對象,然后將String pool中的這個“aaa”對象的地址返回來,賦給引用變量s,這樣s會指向String pool中的這個“aaa”字符串對象
2) 如果存在,則不創(chuàng)建任何對象,直接將String pool中的這個“aaa”對象地址返回來,賦給s引用。
String s = new String(“aaa”); 堆內(nèi)存
1) 首先在String pool中查找有沒有“aaa”這個字符串對象,如果有,則不在String pool中再去創(chuàng)建“aaa”這個對象了,直接在堆中(heap)中創(chuàng)建一個“aaa”字符串對象,然后將堆中的這個“aaa”對象的地址返回來,賦給s引用,導致s指向了堆中創(chuàng)建的這個“aaa”字符串對象。
2) 如果沒有,則首先在String pool中創(chuàng)建一個“aaa“對象,然后再在堆中(heap)創(chuàng)建一個”aaa“對象,然后將堆中的這個”aaa“對象的地址返回來,賦給s引用,導致s指向了堆中所創(chuàng)建的這個”aaa“對象。
【黑馬程序員Java培訓和Android培訓-就業(yè)面試題學習】相關(guān)文章:
學java和android哪個就業(yè)前景好?07-14
java培訓就業(yè)前景分析07-14
黑馬程序員-7K面試題07-13
求java,PHP,android,iOS,linux面試題07-13
關(guān)于java的學習和就業(yè)前景等相關(guān)問題07-14
Java程序員就業(yè)前景分析07-14
32道java程序員面試題及答案07-13
就業(yè)培訓的學習心得07-03
求最全的java面試題和經(jīng)驗07-13