比如这个aa和bb:
public static void main(String[] args) 
{
a();
b();
} static void a()
{
int aa = 0;
aa += 1;
}
static void b()
{
int bb = 0;
bb += 1;
}

解决方案 »

  1.   

    会,static方法里的变量和普通的变量没什么区别
      

  2.   

    我觉得应该会,在STATIC方法中声明的变量应该也属于局部变量,当方法调用完成后,局部变量应该被回收
      

  3.   


    只是加了这个Static之后我就不确定了加了之后呢?
      

  4.   

    “static 定义的静态全局方法只在定义它的文件内有效, 静态方法的内存空间直到程序退出才释放所占用的内存空间。”
       猜想一下,如果你的方法是静态的。那里面的变量应该有继承静态。在java中静态变量不能被定义在静态方法中。。会报语法错误。。你可以试着在试调里面测试一下你定义的变量是否有值
      

  5.   


    这就是我的疑问。那如果静态方法里new了一个Stringbuilder,每次进来都会new,那就不会回收了?
      

  6.   


    你到底要说什么?每次是new呀,但是new出来的对象又不是一个,在内存中地址也没什么联系,之前生成的那些当需要的时候不就被回收了吗?跟每次new有什么关系吗?又不是静态变量公用地址的。