黑馬程序員Java培訓和Android培訓-就業(yè)面試題學(xué)習

時(shí)間:2022-07-02 11:46:11 職場(chǎng) 我要投稿
  • 相關(guān)推薦

黑馬程序員Java培訓和Android培訓-就業(yè)面試題學(xué)習

黑馬程序員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

99久久精品免费看国产一区二区三区|baoyu135国产精品t|40分钟97精品国产最大网站|久久综合丝袜日本网|欧美videosdesexo肥婆