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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

場(chǎng)景:

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

原理知識(shí):

如果參數(shù)類型是原始類型,那么傳過來的就是這個(gè)參數(shù)的一個(gè)副本,也就是這個(gè)原始參數(shù)的值,這個(gè)跟之前所談的傳值是一樣的。如果在函數(shù)中改變了副本的 值不會(huì)改變?cè)嫉闹?

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

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

測(cè)試用例

輸出結(jié)果為:

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

測(cè)試說明:

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

實(shí)際的對(duì)象為引用傳遞。

疑問:

在這里可能會(huì)有網(wǎng)友問了,包裝類型,String難道不是對(duì)象么?說實(shí)話這里我也有疑惑,但是不管怎么樣還是以測(cè)試結(jié)果為準(zhǔn)。

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。