java当中为什么有的变量声明而不赋值,比如 int a;那它和int a = null;有啥区别

如题所述

局部变量要赋初始值,全局变量不需要赋初始值;还有int a=null;这句,应该是Integer a=null;,
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-07
1、int类型是无法定义成null的。
2、Integer也就是int的包装类,可以定义成null的。
3、Integer i = null;是没有在内存中开辟空间,没有存放任何东西。
4、String str = ""; 这个的意思是在内存中开辟了空间,存放的内容为""。
5. int a; a会被默认为0
第2个回答  2016-01-07
作为成员变量来说 int a;默认值为0 ,然而 int a=null;在java这是不正确的;int 为基本类型;
只有 封装类型 Integer 的默认值 为null 所以 你可以写成int a ;(0) Integer a;(null)
第3个回答  推荐于2018-03-22

    如果在类中声明变量可以不赋值,构造对象时会获得默认值

    如果在方法中声明变量,必须赋初始值

本回答被网友采纳