java调用方法时为什么编译一个重复的变量不会报错

public void push(int x) {
    Stack<Integer> team = new Stack<Integer>();
System.out.println(team);
    input.push(x);
    while(!output.isEmpty()){
        team.push(output.pop());
    }
    while(!team.isEmpty()){
        input.push(team.pop());
    }
    t = output;
    output = input;
    input = t;
    team = null;
    System.out.println(team);
}

哪个变量重复了?
-=-=-=
你要知道,重复定义和重复使用是两回事
同样作用域里,一个变量你只能定义一次
但是定义好的变量可以多次使用
反复赋值取值当然不会有问题
定义一个变量只能用一次才不可思议吧
-=-=-=
这就跟你生了3个小孩,正常人都不可能给他们取同样的名字一样
3个小孩叫一个名字,你喊小明三个一起答应,那不乱套了
但是你要说你给自己的儿子取名叫小明,然后这辈子你就只能喊一次就不许再喊了,这不匪夷所思吗

啥叫编译一个重复的变量?