【发布时间】:2014-10-26 18:06:05
【问题描述】:
我正在学习 Java 中的链表,我有三个文件 Main.java、List.java 和 Node.java。当我这样做时,我遇到了一个问题,为什么我应该初始化在方法中声明的局部变量而不是在类中声明的类变量。
在第一张图片中,我将 head 声明为类变量,它不会引发任何错误。
但在第二张图片中,我将 head 初始化为局部变量。现在,初始化局部变量会引发错误。
声明为类变量时有何不同?
Java 初学者。
更新:我知道如何解决这个问题,但我不清楚为什么 Java 默认只初始化类变量而不初始化局部变量。
【问题讨论】:
-
字段变量默认初始化。这是因为这些变量需要在实例创建后就可以访问,因为只要对象处于活动状态,它们就可以访问。但是,只有在执行特定的局部范围时才需要局部变量。如果 Java 要初始化本地变量,它们要么在每次执行范围时被初始化,要么需要保存在堆栈中的某个位置。出于性能原因,我确定是这种方式
-
@AndyThomas 我不知道为什么这被标记为重复。他没有询问错误(我相信他知道如何修复)。他在问为什么会这样,这是我在 StackOverflow 上找不到的问题
-
@VinceEmigh - 很公平,这是一场艰难的比赛。重新开放。
-
请重新格式化您的问题和标题以更好地适应情况。 “为什么 java 默认只初始化类变量而不初始化局部变量”会是一个更好的标题(取自您的更新)
-
@VinceEmigh 是的,我做到了。谢谢:)