java静态方法中的变量是全局的吗?

比如类Demo.class中有一个静态方法,public static void fun( ){ String str; }
请教一下,这个str变量是不是在整个Demo类中都有效,谢谢

不是,静态方法中的变量可以是局部变量。

例如:

public static void Test(){
   int i;//这里定义了一个Test的局部变量
}

补充:

Test方法内,不能使用非静态变量,但不是说不能使用方法内定义的局部变量。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-11
首先,你提的问题就不对 一个变量是否全局跟static是无关的。
static 定义一个变量是静态还是非静态,作用是你在第一次加载一个类时,静态变量就被初始化,在第二次或更多次加载时,这个静态变量都不再被初始化。
所谓变量是否全局 这个是变量的域的问题,它由public(全局) private(私有) protected (继承)以及 默认包访问(同一个packet)来限制,与static无关本回答被网友采纳
第2个回答  2011-11-02
不是,str只在fun()方法中有效,全局变量是定义在类里边,方法外边。。。。。
第3个回答  推荐于2016-01-12
不是的,方法是静态的,只是说明此方法对于该类来说是用类名访问且只有一个Demo.fun(),可理解为全局的,但方法内部定义的变量的访问范围仍然只在方法内部有效。本回答被提问者采纳
第4个回答  2011-11-02
不是 方法是可以全局调用。参数不行,除非参数也加一个static
相似回答