代码演示
public static void main(String[] args) {
// String []arrs = new String[]{"aa","bb","cc"};
String []arrs = new String[]{new String("aa"),new String("bb"),new String("cc")};
for (String string : arrs) {
string=new String("ff");
}
for (String string : arrs) {
System.out.println(string);
}
}
···
返回结果:
如图所示,遍历中不会改变String类型对象的值,不管他是一个字面量还是new了一个对象,因为foreach的所作的操作是
String string =arrs[0],String string =arrs[1],String string =arrs[2],也就是类似string="aa",相当于一次创建一个新的字符串常量放到常量池的串池中,而不是把字符串的引用给他。
所以导致不会改变。
细节决定成败,加油。