在java中:
public class T {
private int c;
public void a(){
{
int a=1;
}
int a=0;
}//不报错
public void b(){
int b=0;
{
int b=1;
}
}//编译报错
public void c(){
{
System.out.println(c); //0
int c=1;
System.out.println(c);//1
}
System.out.println(c); //0
}
}
但是,java的对象却不存在这种作用域的问题。
{
String s = new String("str");
}
引用s在作用域终点就消失了,但是s所指向的对象仍然占据着空间。