您的位置:首页 > 编程语言 > Java开发

java List类型传递是值还是引用?如何传递值?

2017-07-25 08:48 585 查看
直接传递,毋庸置疑,引用。 如何传递值呢,这里有三段代码作为例子来描述: 

1.
List<string> list=new List<string>();
ModifyList(list);
Console.WriteLine(list.Count)

private void ModifyList(List<string> list)
{
//这里的list其实已经是一个引用副本了,但是所指向的内存地址仍然是原本方法外面的对象的,所以后面用该引用的Add方法所操作的,仍然是原本方法外面的对象的内存数据
list.Add("1");
list.Add("2");
list.Add("3");
}
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11

2.
List<string> list=new List<string>();
ModifyList(list);
Console.WriteLine(list.Count)

private void ModifyList(List<string> list)
{
list = new List<string>(); // 这里其实已经将引用指向了新的内存地址,所以后续的Add操作是在操作新对象的内存数据,而原来方法外的对象其实是没有受到影响的
list.Add("1");
list.Add("2");
list.Add("3");
}
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11

1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐