服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - Java教程 - Java中的按值传递和按引用传递的代码详解

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

2021-05-09 12:24围城灬 Java教程

本文通过实例代码给大家介绍了Java中的按值传递和按引用传递的相关知识,感兴趣的朋友跟随脚本之家小编一起学习吧

先使用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

延伸 · 阅读

精彩推荐