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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java integer引用传递_在java中String,对象,Integer(包装类型的)关于引用传递还是值传递...

發布時間:2023/12/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java integer引用传递_在java中String,对象,Integer(包装类型的)关于引用传递还是值传递... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景:

大家都知道基本的數據類型,int,float等等這種是按值傳遞的。但是對于String,對象,Integer是怎樣傳遞呢?

原理知識:

如果參數類型是原始類型,那么傳過來的就是這個參數的一個副本,也就是這個原始參數的值,這個跟之前所談的傳值是一樣的。如果在函數中改變了副本的 值不會改變原始的值.

如果參數類型是引用類型,那么傳過來的就是這個引用參數的副本,這個副本存放的是參數的地址。如果在函數中沒有改變這個副本的地址,而是改變了地址中的 值,那么在函數內的改變會影響到傳入的參數。

如果在函數中改變了副本的地址,如new一個,那么副本就指向了一個新的地址,此時傳入的參數還是指向原來的 地址,所以不會改變參數的值。

測試用例

輸出結果為:

public class Person {

private int id;

private String name;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

public class TestBasicType {

public static void methonInt(int p) {

p =10;

}

public static void methonInteger(Integer p) {

p =10;

}

public static void methonString(String p) {

p ="word";

}

public static void methonStringObject(String p) {

p ="world";

}

public static void methodObj(Person p) {

p.setId(34534);

}

public static void main(String[] args) {

int a =3;

Integer b =4;

String s ="hello";

String sobj = new String("hello");

Person p = new Person();

p.setId(12312);

TestBasicType.methodObj(p);

TestBasicType.methonInt(a);

TestBasicType.methonInteger(a);

TestBasicType.methonString(s);

System.out.println("--int-------->" + a);

System.out.println("--Integer-------->" + b);

System.out.println("--String-------->" + s);

System.out.println("--StringObject-------->" + sobj);

System.out.println("--Object-------->" + p.getId());

}

}

--int-------->3

--Integer-------->4

--String-------->hello

--StringObject-------->hello

--Object-------->34534

測試說明:

String,基本類型(int等等),包裝類型(Integer等等)都是值傳遞

實際的對象為引用傳遞。

疑問:

在這里可能會有網友問了,包裝類型,String難道不是對象么?說實話這里我也有疑惑,但是不管怎么樣還是以測試結果為準。

總結

以上是生活随笔為你收集整理的java integer引用传递_在java中String,对象,Integer(包装类型的)关于引用传递还是值传递...的全部內容,希望文章能夠幫你解決所遇到的問題。

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