金银花叶子图片:java的一个问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 17:37:13
我在一起连着定义两个相同的名字b ,编译器报错
String b=new String("bb");
String b=new String("bb");
我在一个循环中也是连着定义两个b啊,而这个代码就不出错
我不明白是怎么回事,在循环中这个代码具体是怎么运行的啊 为什么不出错?
for(int i=0;i<2;i++)
{
String b=new String("bb");
}

这是一个作用域的问题

比如

String b = new String();
String b = new String();
会出现错误,因为重复定义了String b

但是如果加上括号
{
String b = new String(); //第一个b
}
{
String b = new String(); //第二个b
}

就不会有错误,这是因为 第一个b的作用范围只是在第一个括号。

当然会错了,之前的定义是相当于定一两个相同的名称,java是不容许得