关于java中的foreach遍历方式

foreach使用方式为:

for(String s : strings){
	//...
}

其中的s是对strings中的迭代对象的引用,即对s进行任何赋值操作并不会改变strings中元素的内容,即:

String[] nameStrings = "C:\\Users\\LJY\\Desktop".split("\\\\");
		for(String s: nameStrings) {
				s = s+"aaa";
				System.out.println(s);
			}
			//输出结果
			//C:aaa
			//Usersaaa
			//LJYaaa
			//Desktopaaa
			for(String s: nameStrings) {
				System.out.println(s);
			}
			//输出结果
			//C:
			//Users
			//LJY
			//Desktop

但是如果对所引用的对象的内部成员进行修改,就会造成变化:

  Person[] persons = new Person[2];
  persons[0] = new Person();
  persons[1] = new Person();
  for(Person person: persons) {
  	person.nameString = "bbb";
  }
  for(Person person: persons) {
  	System.out.println(person.nameString);
  }
  //输出结果:
  //bbb
  //bbb
  class Person{
  String nameString = "aaa";
  }

版权声明:本文为Theodore__zz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Theodore__zz/article/details/89855503