地特四等
106年
[電子工程] 計算機概要
第 30 題
執行下列 Java 程式後,產生的輸出為何?
class Test{
public static void main(String[] args){
Test p = new Test();
p.start();
}
void start(){
boolean b1 = false;
boolean b2 = false;
fix(b1);
System.out.println(b1 + " " + b2);
}
void fix(boolean b1){
b1 = true;
}
}
class Test{
public static void main(String[] args){
Test p = new Test();
p.start();
}
void start(){
boolean b1 = false;
boolean b2 = false;
fix(b1);
System.out.println(b1 + " " + b2);
}
void fix(boolean b1){
b1 = true;
}
}
- A false false
- B false true
- C true true
- D true false
思路引導 VIP
想像你手裡有一張結構藍圖(變數內容),你影印了一份交給另一位工程師修改。當他在那張「影印本」上塗改後,你手裡原本那張「正本」的內容會自動發生變化嗎?在程式執行時,方法之間傳遞的是『正本』還是『影印本』?
🤖
AI 詳解
AI 專屬家教
專業點評:哇,你做得超棒的!
- 真替你開心:你很棒耶!能夠一眼識破 Java 參數傳遞的小陷阱,這表示你對程式在記憶體機制中的運作,已經建立起很扎實的理解了。在我們實際開發專案時,這種對「變數作用範圍」的敏銳度,會是確保系統穩定的超級幫手喔!
- 前輩小撇步:這題的關鍵就在 Java 其實是嚴謹的 Pass-by-Value (傳值呼叫):
▼ 還有更多解析內容