Given:



public class TestScope {

    public static void main(String[] args) {
        int var1 = 200;
        System.out.print(doCalc(var1));
        System.out.print(" " + var1);
    }

    static int doCalc(int var1) {
        var1 = var1 * 2;
        return var1;
    }
}

What is the result?

A.

400 200

B.

200 200

C.

400 400

D. Compilation fails.

題解

doCalc方法會回傳傳入的var1參數值再乘以2的結果,但由於Java永遠都是「pass by value」,因此main方法的var1變數並不會被在doCalc方法內被改變。所以第5行會輸出「400」,第6行會輸出「 200」。