java变量初始值问题不懂

成员变量a有默认初始值(编译不会报错)
形参b没有默认值,当方法被调用时参数被传递给b,此时b被初始化(编译不会报错)
局部变量c,没有初始值,声明必须初始化(编译错误)


xdm们我上面的理解应该没有问题吧,我不明白的是:那我要是不掉用方法show,形参b不就一直没有值吗,为什么编译不会出错

img

  1. a 是你定义的变量,在 java 中变量是必须赋值才能使用的,但你的代码中只是定义没有使用,所以没有报错
  2. b 的话是方法中的参数,即这里面你可以随便加 void show(int a1,int a2,int a3) 都不影响,只不过如果你要调用这个 show 方法的时候,要传 3 个值进去,分别对应 a1,a2,a3 的数据类型
  3. c 是与 a 类似的,也是一个变量,只不过生命周期不一样。即 c 的生命周期随着 show 方法销毁而销毁。
    JavaSE 的知识已经忘的差不多了,仅供参考...

实际上c没初始值也不会报错

你定义变量才需要赋值,方法没有被使用会无效 ,使用时必须传参

int 默认值是0,你这段代码不会编译错误

确认编译会报错吗?
看着不应该会编译报错的。int a; 默认变量的值是 0.