12
A
回答
24
标准局部变量都保存在栈上,而不是实际创建直到它们被初始化。如果没有使用局部变量,它不会进入堆栈。然而,成员变量分配在堆中,因此有一个默认的占位符(空引用或默认原语)。
+0
最好的解释 – 2015-10-12 12:09:38
1
的非技术原因的背后也可能是下列之一:
如果声明是为了与你用它做一个局部变量。用法与分配值相关。因此,访问已声明但未初始化的变量没有多大意义 - 程序员可能已经忘记初始化该变量。
但是,字段可能只能用于直到或在对象的生命周期的指定点之后。强制程序员初始化它们都不会好。
相关问题
- 1. Ruby实例变量和局部变量
- 2. Rails - 局部变量与实例变量
- 3. 实例vs局部变量
- 4. 实例变量,默认为原子
- 5. 将局部变量改为实例变量后的重构
- 6. Yaml:变量的默认值
- 7. 适配器应该是局部变量还是实例变量?
- 8. 未初始化的实例变量取局部变量值(同名)的Java
- 9. Java默认变量值
- 10. 如何设置实例变量的默认值?
- 11. 将默认值赋给UIImageView子类的实例变量
- 12. 为什么局部变量不能用默认值初始化?
- 13. 改变局部变量的值执行原始全局变量的值变化
- 14. Whati是全局变量和实例变量
- 15. python类实例变量和类变量
- 16. C#何时使用默认值设置实例变量?
- 17. 局部变量
- 18. 局部变量
- 19. 局部变量
- 20. 默认情况下Python变量是全局变量吗?
- 21. Ruby中的类实例变量和实例变量
- 22. PHP:htacess默认变量
- 23. 结合模板默认值的常量和变量值
- 24. 在声明局部变量var后,实例变量变为不可见
- 25. 我的脚本中的全局变量和局部变量
- 26. module.exports和局部变量
- 27. 局部变量和星号
- 28. 分音和局部变量
- 29. setjmp/longjmp和局部变量
- 30. SQL CASE和局部变量
“初始变量值”的方便参考卡:http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.12.5 – trashgod 2010-01-15 22:26:20
可能的重复[为什么是局部变量没有在Java中初始化?](http://stackoverflow.com/questions/415687/why-are-local-variables-not-initialized-in-java) – Raedwald 2014-03-11 13:08:00
这里是一个[更新的链接](http://docs.oracle.com .com/javase/specs/jls/se8/html/jls-4.html#jls-4.12.5)作为trashgod的参考。 – jpaugh 2015-12-24 17:40:50