bibabolynn / bibabolynn/LeetCode-JAVA
java传参
- Dominant language
- Java
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
基本数据类型传递和对象传递,到底是传值还是传引用?
基本数据类型传递的是一个值的副本,对象传的是引用的副本,即当前对象的另外一个引用
举个栗子
public String change(String s, int i, StringBuffer sb, Person p){
s="123";
i=3;
sb.append("woshi");
p.setAge(100);
sb = new StringBuffer("sbsb");
p = new Person("bb",44);
return s;
}
@Test
public void testChange(){
StringBuffer sb = new StringBuffer("buff");
String s = "aaa";
int i = 1;
Person p = new Person("aa",12);
i=2;
change(s,i,sb,p);
// s="222";
System.out.println(s);//aaa
System.out.println(i);//2
System.out.println(sb.toString());//buffwoshi
System.out.println(p);//Person{id=0, name='aa', age=100, Country=null, hashcode=638783031}
}
这里一共测试了String,int,一个对象StringBuffer,一个对象people。让我们来仔细看看这些传递都发生了什么。
int是基本类型,所以int只是将值复制一份给别的方法用
但是对于对象,只是将原来对象的引用复制了一份传递给change(),在change方法里,这份复制的引用指向了另一个对象,但是原来的引用还是指向之前的对象。
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.