首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

在synchronized块中声明变量!解决方案

2012-04-11 
在synchronized块中声明变量!!Java codepublic void test(){int isynchronized (this){i 0int j0int

在synchronized块中声明变量!!

Java code
public void test(){    int i;    synchronized (this)    {        i = 0;        int j=0;        int k;    }    j++;//编译错误j cannot resolved to a variable!!!    int k=0;//编译成功:居然可以重复定义!!!    }

想了半天,一直想不通,为何在synchronized块中定义的变量在方法域内就好像没有定义过一样无法访问。
求指点~

[解决办法]
for(int i=0;i<10;i++){
...
}
for(int i=0;i<10;i++){
...
}
这两个for循环是可以在同一个方法里面共存的,i是局部变量,定义了两次。
一样的道理,局部变量的作用域是{}
[解决办法]
作用域的问题与synchronized无关
[解决办法]
其实就是变量作用域的问题,
[解决办法]
探讨

for(int i=0;i<10;i++){
...
}
for(int i=0;i<10;i++){
...
}
这两个for循环是可以在同一个方法里面共存的,i是局部变量,定义了两次。
一样的道理,局部变量的作用域是{}

热点排行