美文网首页
局部变量和成员变量

局部变量和成员变量

作者: 云鲸鱼rain | 来源:发表于2019-03-04 15:56 被阅读0次

    面试题。


    局部变量使用前需要显式地赋值,否则编译通过不了,为什么这么设计


    https://blog.csdn.net/x2L5gX/article/details/81090855一看就明白了。
    然后我再自己写一下:
    成员变量不用显式赋值,在类加载的过程中给它赋予了默认值。
    局部变量需要显式赋值。
    为啥不给它赋予默认值?
    不是javac推断不出来,而是因为推断出来了,故意不这么做。
    为啥故意不这么做?
    因为局部变量的作用就是在局部方法中某个地方取出来用。在一个方法体内赋值和取值的顺序是固定,先赋值,才能取值。强制你赋值时因为怕你忘了!怕有了默认值之后忘记赋值导致不可预期的bug!
    那为啥成员变量有了默认值不怕有bug?
    因为成员变量不确定什么就会被取值出来用,还有可能在各个方法中是不同的值。所以强制让你赋值和给它默认值没什么区别,既然这样,为什么不默认呢?

    相关文章

      网友评论

          本文标题:局部变量和成员变量

          本文链接:https://www.haomeiwen.com/subject/ygsiuqtx.html