<pre name="code" class="java"><pre name="code" class="java">class Number { int i;}
public class Assignment {
public static void main(String[] args) {
Number n1 = new Number();
Number n2 = new Number();
n1.i = 9;
n2.i = 47;
System.out.println("1: n1.i: " + n1.i + ", n2.i: " + n2.i);
n1 = n2;
System.out.println("2: n1.i: " + n1.i + ", n2.i: " + n2.i);
n1.i = 27;
System.out.println("3: n1.i: " + n1.i + ", n2.i: " + n2.i); }} ///:~
1、上述程序結果爲:9,47 47,47 27,27 因爲當n1 = n2時已經改變了n1的指向(指向n2),所以後續的賦值都是隻針對同一個對象。
//: c03:PassObject.java
// Passing objects to methods may not be what
// you're used to.
class Letter {
char c;
}
public class PassObject {
static void f(Letter y) {
y.c = 'z';
}
public static void main(String[] args) {
Letter x = new Letter();
x.c = 'a';
System.out.println("1: x.c: " + x.c);
f(x);
System.out.println("2: x.c: " + x.c);
}
2、上述結果爲a c 這是java的方法調用中的別名問題,參數傳遞的是一個句柄,所以能夠修改到x.c的值。
3、使用equals()方法比較兩個對象的值是否相等時,若創建的類沒有實現equals()方法,將無法實現比較。
l >>>= 10;
System.out.println(l);
short s = -1;
s >>>= 10;
System.out.println(s);
byte b = -1;
b >>>= 10;
System.out.println(b);
}
} ///:~
4、移位符的使用:>>>=無符號的進行右移,無需考慮負數首位爲1