Java的局部变量没有默认值?必须赋值吗?不赋值能用吗?类中的成员变量也是局部变量吧?

解决方案 »

  1.   

    局部变量是指方法里面声明的变量
    而不是类的成员!比如:
    class test{  private String username; //这是类的成员,可以理解成是全局的吧,其实我感觉java里没有全局变量这一种说法。
      public test() {
        int i = 0; //这个i就是局部变量
      }
    }类的成员,JVM会自动给它们赋初始值。
    boolean类型赋值为false
    引用类型赋值为null
    其它的赋值为0而局部变量,JVM不会给它们赋初始值,这时你就要自己手动初始化了。
    不初始化而是直接使用是会出错的。
      

  2.   

    不赋直可以用,但是最好给下直,安全,避免不必要的错误.
    如果是String类型就给个null,如果是整形就给个0什么的,
      

  3.   

    Java的局部变量没有默认值?必须赋值吗?不赋值能用吗?
    Java的局部变量 没有默认值如 在方法中声明一个 int  i ; 然后 System.out.print(i); 是会报错的。
    可是如果在类中  就会输出 0  ;
    这个例子就说明局部变量不赋值不是能用的。类中的成员变量也是局部变量吧?
    不是 
      

  4.   

    类成员变量因为你在new一个对象时,分配了内存空间后会给所有的成员变量一次初始化,没有赋值的会给成员变量对应类型的“0”值,然后才构造对象初始化。每一个对象都有一个成员变量的副本,一直存在于对象的堆空间直到这个对象空间被回收。局部变量在用的时候是直接入栈的,如果没有赋值,这个变量就没有初始值,也就无法操作,所以局部变量要初始化。并且局部变量在方法结束后会出栈,就像它没有来过一样。