1
A
回答
1
其運行時
Foo f
將參照Object
創建的Bar
運行在運行時。
有編譯時檢查它。 Bar
必須是Foo
這個編譯成功
4
如果你編譯如下:
int x = 34 + 45;
然後您將分配在編譯時進行評估,因爲它涉及唯一不變的基本類型的表達式。在其他大多數情況下,包括您的示例,表達式都將在運行時進行評估。
2
我不知道你的疑問到底是什麼,但我認爲在編譯過程中,程序的文本表示被翻譯成機器可理解的形式(在Java中是Java字節碼)。像分配這樣的操作也會發生同樣的情況。在運行時,執行這些操作。因此,要精確地回答你的問題,賦值操作既是編譯操作又是運行時現象(在兩種情況下都採取了某些操作 - 在編譯時它們由Java編譯器完成,而在運行時則由JVM完成)。
例如,
class Foo { }
class Bar { }
Foo f = new Bar();
這段代碼被編譯器被拒絕。它會對你大喊,你正試圖分配不兼容的類型。
1
它的兩個。
編譯時間 - 分配在編譯時間類型兼容性進行分析,用於注射的代碼來執行轉換/裝箱/拆箱等。即使一些流分析能影響分配,例如變量及其分配可以完全被優化。
運行時間 - 值的實際賦值,即更改變量內存位置中的位數當然會在運行時發生。
相關問題
- 1. 得到在編譯時(或運行時)
- 2. C++運行時對象的類型轉換或編譯時
- 3. 爲運行時識別編譯時間字符串分配
- 4. 內存分配(C++)編譯時間/運行時間?
- 5. 如何在編譯或運行時
- 6. 在運行時重新編譯對象
- 7. 從Cmake運行編譯文件時出現分段錯誤
- 8. 在編譯時運行PublicResXFileCodeGenerator
- 9. 的Xtext運行時編譯
- 10. 運行時JavaScript對象分配限制
- 11. 彙編運行時內存分配
- 12. sizeof運算符編譯時或運行時間
- 13. 編譯時間vs運行時間
- 14. 在運行時編譯運行代碼
- 15. Eclipse運行時編譯?
- 16. 運行時編譯SCSS?
- 17. 運行時編譯CLR
- 18. 運行時編譯C#
- 19. Const編譯器/運行時
- 20. 運行時編譯順序
- 21. Tomcat。 Java運行時編譯
- 22. C#編譯運行時
- 23. Xcode:編譯時不運行
- 24. 編譯和運行時
- 25. 在編譯時或運行時會計算初始化值嗎?
- 26. 在其他運行時編譯程序集Rreference運行時編譯程序集
- 27. Xcode 4.3.1運行Profiler時出現錯誤編譯錯誤
- 28. 運行theano時的編譯問題
- 29. 運行時換出裝配在編譯時
- 30. 編譯時user.agent值與運行時user.agent值不匹配
好的。謝謝Jigar! – Anonymous 2011-02-03 14:33:51