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