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