美文网首页Java 杂谈互联网科技程序员
局部变量和成员变量的初始值问题

局部变量和成员变量的初始值问题

作者: JAVA高级架构开发 | 来源:发表于2018-08-09 17:49 被阅读5次

引言

大家都知道,在java中,成员变量是可以不用给初始值的,默认就有一个初始值。而局部变量,必须显示给予一个初始值,否则编译无法通过。大家在学习的时候,一般是直接把这个结论直接记下,很少去考虑原因。

所以,这是为什么呢?

正文

比如

这段代码是会出现如下编译异常的

但是,像下面这么写就不会

javac这么设计的原因,不是因为推断不出局部变量的初始值,而是出于严谨性的考虑。

成员变量

无法确定你的调用顺序,例如,你可以这么调

也可以这么调

编译器无法确定name的初始值,于是给了一个初始值。真正的值,交给jvm在运行时期处理。

局部变量

可以明确你的调用顺序,我相信应该没人会像下面这么写

在局部变量中,必然是先声明一个变量,再进行赋值。于是,java的编译器觉得,既然你肯定是先声明一个变量,再调这个变量了。那就在声明的时候,就把初始值给我吧。不是我不能推断你的初始值,而是让你在声明的时候就把初始值给我,我是为你好,帮你减少代码出错的可能性。

相关文章

  • 面向对象复习笔记

    初始值: 成员变量:自动拥有初始值0 局部变量:不会有初始值,所以要给初始值 特别注意:同一方法不能有同名局部变量...

  • JAVA总结(一)

    成员变量,类变量,局部变量,参数 成员变量和局部变量成员变量在类中定义,存在于堆内存中的,有默认的初始值。 局部变...

  • 局部变量和成员变量的初始值问题

    引言 大家都知道,在java中,成员变量是可以不用给初始值的,默认就有一个初始值。而局部变量,必须显示给予一个初始...

  • java中的成员变量和局部变量

    局部变量定义在方法内部: 成员变量定义在类中 不赋值成员变量,初始值为0; 不赋值局部变量,提示错误,系统不会自动...

  • Java基础之面向对象(二)

    一、深入变量 前面已经说到变量分为成员变量、局部变量。这里将深入探究变量 1、变量的初始化: 局部变量都没有初始值...

  • Java中的成员变量和局部变量

    成员变量,局部变量? 局部变量和成员变量的区别

  • 成员变量与局部变量的差别

    成员变量与局部变量的差别如下: 局部变量: 1) 定义在方法中; 2) 没有默认值,必须自行设定初始值; 3) 方...

  • 视频学习杂记

    类 1.类中的变量,成员变量(全局变量)初始值为0,局部变量不会赋初始值。 2.final关键字的用法使用fina...

  • 面对对象学习第二篇

    局部变量和成员变量的区别 (1)成员变量直接定义在类中。局部变量定义在方法中,参数上,语句中。 (2)成员变量在这...

  • No_16_0226 Java基础学习第七天

    [TOC] 成员变量与局部变量 成员变量与局部变量区别:A:在类中的位置不同成员变量:在类中,方法外局部变量:在方...

网友评论

    本文标题:局部变量和成员变量的初始值问题

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