java局部变量和全局变量赋值

为什么 i 没有赋值,确可以用呢?求大神解决

i 是一个静态成员变量,标准来说,java没有全局变量这个说法,成员变量的一个特点就是类加载的时候,如果没有初始化值就会给它赋值,基本数据类型的初始化值都是固定的,
一个变量作为类成员使用的时候,如果没有被初始化,java会为其分配默认值:
Boolean false
Char '\u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d 等。。。。。。。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-12
无论创建多少对象,static数据都只只用一份存储区域。static关键字不能应用于局部变量,因此他只能这用于域。如果一个域是基本类型,并且没有给它初始化,那么他会默认为基本类型的标准初始值,像int类型默认是0;如果是一个引用,那么他会默认为初始值null。
请采纳
第2个回答  推荐于2016-03-23
i作为类的成员,初始化类时会对未赋值的变量赋默认值的
int 为 0本回答被提问者采纳
第3个回答  2014-01-12
肯定初始化了,对于不同类型的初始化的初值是不同的,假如int型,则是0.
否则会报空指针错误。
第4个回答  2014-01-12
静态的整形如果没有初始化,则默认是0,如果不是静态就会报错了追问


这样写他也不会报错呀

追答

你这还是个全局变量,一样会自动初始化的,方法内的局部变量就会出错了

相似回答