在同一个方法是不可以有同一个变量名存在的,
突然想到为什么
for(int i = 0; i < 10; i++) {
   Date d = new Date();
   String s = new String("ssssss");
}这样的重复名字可以存在呢?

解决方案 »

  1.   

    一个for循环结束,作用域消失,接着进入下一个循环的作用域
      

  2.   

    for(int i = 0; i < 10; i++) {
       Date d = new Date();
       String s = new String("ssssss");
    }这样的重复名字可以存在呢?
    ============================
    哪有重复啊?
      

  3.   

    for(int i = 0; i < 10; i++) {
       Date d = new Date();
       String s = new String("ssssss");
    }
    -------------------------
    这4行代码里重复名字的变量吗?第一行里有3个i,如果这也算是重复名字的话,……………………
      

  4.   

    for(int i = 0; i < 10; i++) {
       Date d = new Date();
       String s = new String("ssssss");
    }这里的new Date()和new String(),只是通知编译器为for循环语句块分配内存空间,作用域仅在for循环内部。声明变量(包括变量的初始化)不是可执行语句,是编译期做的事,而不是运行期做的事。
      

  5.   

    那要是这样写呢?
    for(int i = 0; i < 10; i++) {
       Date d = new Date();
       String s = "ssssss";
    }
    同样每次都生成一个新对象吗?
      

  6.   

    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