java中为什么有的变量声明而不赋值?而有的就值,那什么情况下要赋值,什么情况下不赋值
你这个问题给你举个例子,你应该就能理解了
例如: int a; 这是只声明不赋值,则只会在内存的栈区创建引用,堆中并无此引用的指向。
就是说只会在内存中创建一个 a;而这个a并没有指向任何指向,是没有空间的。
而 int a =0; 这样会在内存的栈区创建引用,并且a这个对象指向0,这样就会占有内存空间的;
所有我就简单的跟你讲一下什么时候需要赋值,什么时候不需要赋值吧。
当你定义的这个变量被多个地方应用的时候,而这些引用中有的值可能无法给这个变量赋值,
还是上面这个例子
我们 int a;
在我们的代码一个部分中我们给他赋值 a =10;
而另外一个地方又给这个a负责,但这个a的值是从数据库拿出来的,这中间有很多情况,而拿到的是空值,这个时候是不是就有问题呢,会报空指针。
所以必须要初始化一个,一般都是int a=0;
同理,如果你你要给a赋值都是固定的,或者你可以确定这里值都能拿到,那么你声明的时候肯定用int a;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。