服务器之家

服务器之家 > 正文

Java中的按值传递和按引用传递的代码详解

时间:2021-05-09 12:24     来源/作者:围城灬

先使用int实验:

?
1
2
3
4
5
6
7
8
9
10
11
12
public class ttest {
  private static  list<userentity> mlist = new linkedlist<userentity>(); 
  public static void main(string[] args) {
    int a = 0;
    changea(a);
    system.out.println("a = "+a);
  }
   
  public static void changea(int a){
    a = 1;
  }
}

输出:a = 0

这说明对于int值是按值传递。其他几个基本类型也是如此。

再使用自己定义的类userentity来实验:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class userentity {
  private string name;
  public string getname() {
    return name;
  }
  public void setname(string name) {
    this.name = name;
  }
}
 
public class ttest {
  public static void main(string[] args) {
    userentity userentity = new userentity();
    userentity.setname("猿猴");
    changename(userentity);
    system.out.println("name = "+userentity.getname());
  }
  public static void changename(userentity userentity){
    userentity.setname("忽必烈");
  }
}

输出:name = 忽必烈

我们再来使用一个linkedlist<object>来实验:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.linkedlist;
import java.util.list;
public class ttest {
   private static list<userentity> mlist = new linkedlist<userentity>(); 
  public static void main(string[] args) {
    userentity userentity = new userentity();
    userentity.setname("石头");
    adduser(userentity);
    system.out.println("name = "+userentity.getname());
  }
  public static void adduser(userentity userentity){
    mlist.add(userentity);
    mlist.get(0).setname("猿猴");
  }
}

输出:name= 猿猴

这说明在使用我们自己定义的类时,是按引用传递的。

接着,再来使用string实验:

?
1
2
3
4
5
6
7
8
9
10
public class ttest {
  public static void main(string[] args) {
    string str= "开始的";
    changestr(str);
    system.out.println("str = "+str);
  }
  public static void changestr(string str){
    str = "改变的";
  }
}

输出:str = 开始的

用integer做实验也会发现没有改变。

说明我们按照java内置的对象也是值传递。因此我们可以做如下总结:

只要我们自己定义的类创建的对象,都是引用传递,系统内置的基本类型和对象都是指传递。

总结

以上所述是小编给大家介绍的java中的按值传递和按引用传递,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:https://blog.csdn.net/qq_34939308/article/details/80674829

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部