日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java两个对象赋值_一起学Java(二十六)----- 对象之间赋值

發布時間:2025/3/15 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java两个对象赋值_一起学Java(二十六)----- 对象之间赋值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不積跬步,無以至千里;不積小流,無以成江海。

Java語言基礎

Java對象之間賦值

賦值是用等號運算符“ = ”進行的,在對對象進行“賦值”時,實際就是將句柄從一個地方復制到另一個地方。這意味著假若為對象使用“A = B”,那么A和B最終都會指向最初只有B才指向的那個對象。也就是說這個時候他們兩個引用了同一塊內存地址.

class Number{

int i;

}

public class Test {

public static void main(String[] args) {

Number n1 = new Number();

Number n2 = new Number();

n1.i = 1;

n2.i = 2;

System.out.println("n1.i:" + n1.i);

System.out.println("n2.i:" + n2.i);

n2 = n1;

System.out.println(n1.equals(n2));

System.out.println(n1 == n2);

System.out.println("n1.i:" + n1.i);

System.out.println("n2.i:" + n2.i);

n1.i = 3;

System.out.println("n1.i:" + n1.i);

System.out.println("n2.i:" + n2.i);

}

}

程序輸出:

n1.i:1

n2.i:2

true

true

n1.i:1

n2.i:1

n1.i:3

n2.i:3

看來改變n1(n1.i = 3)的同時也改變了n2!這是由于無論n1還是n2都包含了相同的句柄,它指向相同的對象(最初的句柄位于n2內部,指向容納了值1的一個對象。在賦值過程中,那個句柄實際已經丟失;它的對象會由“垃圾收集器”自動清除)。

注意:

class Number{

int i;

}

public class Test {

public static void main(String[] args) {

Number n1 = new Number();

Number other = (Number)n1;

System.out.println(other == n1);

System.out.println(other);

System.out.println(n1);

}

}

程序輸出:

true

Hello.Number@15db9742

Hello.Number@15db9742

總結

以上是生活随笔為你收集整理的java两个对象赋值_一起学Java(二十六)----- 对象之间赋值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。