开发者社区> 问答> 正文

java中为什么有的变量声明而不赋值?

java中为什么有的变量声明而不赋值?而有的就值,那什么情况下要赋值,什么情况下不赋值

展开
收起
蛮大人123 2016-03-23 18:37:19 3493 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    你这个问题给你举个例子,你应该就能理解了
    例如: int a; 这是只声明不赋值,则只会在内存的栈区创建引用,堆中并无此引用的指向。
    就是说只会在内存中创建一个 a;而这个a并没有指向任何指向,是没有空间的。
    而 int a =0; 这样会在内存的栈区创建引用,并且a这个对象指向0,这样就会占有内存空间的;
    所有我就简单的跟你讲一下什么时候需要赋值,什么时候不需要赋值吧。
    当你定义的这个变量被多个地方应用的时候,而这些引用中有的值可能无法给这个变量赋值,
    还是上面这个例子
    我们 int a;
    在我们的代码一个部分中我们给他赋值 a =10;
    而另外一个地方又给这个a负责,但这个a的值是从数据库拿出来的,这中间有很多情况,而拿到的是空值,这个时候是不是就有问题呢,会报空指针。
    所以必须要初始化一个,一般都是int a=0;
    同理,如果你你要给a赋值都是固定的,或者你可以确定这里值都能拿到,那么你声明的时候肯定用int a;

    2019-07-17 19:11:42
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载