for(int i = 0; i < 10; i++) { Date d = new Date(); String s = new String("ssssss"); }这样的重复名字可以存在呢? ============================ 哪有重复啊?
for(int i = 0; i < 10; i++) { Date d = new Date(); String s = new String("ssssss"); } ------------------------- 这4行代码里重复名字的变量吗?第一行里有3个i,如果这也算是重复名字的话,……………………
for(int i = 0; i < 10; i++) { Date d = new Date(); String s = new String("ssssss"); }这里的new Date()和new String(),只是通知编译器为for循环语句块分配内存空间,作用域仅在for循环内部。声明变量(包括变量的初始化)不是可执行语句,是编译期做的事,而不是运行期做的事。
那要是这样写呢? for(int i = 0; i < 10; i++) { Date d = new Date(); String s = "ssssss"; } 同样每次都生成一个新对象吗?
public static void main(String[] args) throws Exception { // TODO Auto-generated method stub for (int i=1; i<10; i++){ String s = new String("ssssss"); if (i==5) s="5"; System.out.println(i + " " + s); }运行结果: 1 ssssss 2 ssssss 3 ssssss 4 ssssss 5 5 6 ssssss 7 ssssss 8 ssssss 9 ssssss
Date d = new Date();
String s = new String("ssssss");
}这样的重复名字可以存在呢?
============================
哪有重复啊?
Date d = new Date();
String s = new String("ssssss");
}
-------------------------
这4行代码里重复名字的变量吗?第一行里有3个i,如果这也算是重复名字的话,……………………
Date d = new Date();
String s = new String("ssssss");
}这里的new Date()和new String(),只是通知编译器为for循环语句块分配内存空间,作用域仅在for循环内部。声明变量(包括变量的初始化)不是可执行语句,是编译期做的事,而不是运行期做的事。
for(int i = 0; i < 10; i++) {
Date d = new Date();
String s = "ssssss";
}
同样每次都生成一个新对象吗?
// TODO Auto-generated method stub
for (int i=1; i<10; i++){
String s = new String("ssssss");
if (i==5) s="5";
System.out.println(i + " " + s);
}运行结果:
1 ssssss
2 ssssss
3 ssssss
4 ssssss
5 5
6 ssssss
7 ssssss
8 ssssss
9 ssssss