1
A
回答
6
編譯器提取內部類和創建es分別爲每個文件分配*class
文件。內部類名稱創建爲OuterClassName$InnerClassName
。匿名內部類沒有名稱,因此它們的名稱創建爲OuterClassName$1
,OuterClassName$2
等。
內部類使用語法OuterClassName.this
特別引用外部類的實例。
由於內部類被編譯爲單獨的類文件,因此JVM根本不處理內部類。它涉及具有上述「特殊」名稱的常規課程。
+0
+1清楚解釋 –
+1
+1值得注意的是,雖然Java支持訪問相同外部類的私有成員的嵌套類,但JVM不支持。編譯器所做的就是添加accessor方法,使用「access $ 100」這樣的名稱來授予類訪問私有字段,方法和共享相同外部類的其他類的構造方法的權限。如果您在調用堆棧中看到這些奇怪的方法之一,這就是它的意思。 –
相關問題
- 1. C#編譯器如何處理使用泛型繼承的嵌套類?
- 2. 如何在Java中處理多類樹型系統?
- 3. OCaml的類型系統無意嵌套
- 4. 確定C#中的操作系統和處理器類型
- 5. Lib GDX html運行錯誤,系統Java編譯器(Eclipse)(Windows 7)
- 6. 編譯器如何處理運行時錯誤消息中的行號
- 7. 運行編譯的Java類
- 8. 從批處理文件運行編譯的Java類
- 9. java類加載器和運行時編譯
- 10. 編譯和運行java文件的批處理文件?
- 11. 編譯時scala如何處理新行?
- 12. 如何檢查處理器architcture運行時類型
- 13. 如何在Jquery中處理每個輸入類型的嵌套
- 14. 編譯時與運行時,Java和C#
- 15. 類型和新類型之間的編譯時間和運行時間差
- 16. 如何編譯和運行Java程序?
- 17. 如何運行和編譯java程序?
- 18. 運行時類型VS編譯時類型的方法調用
- 19. 編譯器如何處理數據類型
- 20. 如何在另一個目錄中編譯和運行Java類?
- 21. 如何在嵌套管理器中執行嵌入式編輯?
- 22. 嵌套泛型類型參數 - 如何處理它?
- 23. 如何理解Java的嵌套類?
- 24. 資產文件在rails中編譯時,預處理器引擎如何運行?
- 25. Perl系統中的嵌套行情()
- 26. 運行嵌套批處理文件
- 27. Tomcat。 Java運行時編譯
- 28. java編譯和運行時庫
- 29. java-如何處理運行時錯誤?
- 30. java,處理嵌套循環?
你的問題不清楚。你在編寫一個編譯器嗎?如果沒有,爲什麼你想知道? – Azodious
爲我的理解........ – Prateek
請。花時間在其他方面,比如如何使用它們。而不是編譯器如何找到並區分它們。 – Azodious