我基本上理解了託管代碼和本地代碼以及它們的difference的想法。但是他們在技術上可以相互溝通?想象下面的例子:混合代碼(native,managed):它是如何(技術上)互操作的?
我得到了一些靜態或動態的C++庫,它是爲特定平臺編譯的。現在我編寫一個Java程序。在這段代碼中,我使用「native」關鍵字調用庫函數。我使用字節碼構建了一個jar文件,並且C++庫文件將保持獨立。結果將不再是平臺無關的。
但是,java程序如何知道被調用的本地方法是否存在?
整個程序代碼在運行時如何執行?我知道字節碼將被解釋或編譯與JIT。
這一切如何適合沙盒模式?本機代碼是否也在沙盒中執行?
它是否工作,因爲(java和C++)代碼最終都是機器代碼?
也許這是一個愚蠢的問題。但我總是想知道...
編輯:我有3個很好的答案。真的不能決定哪一個對我最有幫助。但我會將這個問題標記爲答案,以便從我身邊關閉這個話題。