我是一個開發Android的Java開發的.Net開發人員,想知道是否正確想到像.Net程序集這樣的Java程序包。Java包是否等同於.Net程序集?
回答
號
最好的比較是用Java歸檔(JAR)文件。 Java使用包來控制名稱空間,並且與C#的名稱空間非常相似。
這裏是我會比較環境
Java .Net
==== ====
Class Class
Package Namespace
Jar Assembly
不,我覺得一個Java包會更類似於一個命名空間
和裝配會更像一個罐子(我不太確定這一點,因爲我更熟悉Java比淨...糾正我,如果我錯了)
有小人物,都阻止我加入類java.lang的命名空間創建一個新包。打破檢查異常的方法之一就是要做到這一點(在編譯時重寫Exception&RuntimeException)。 – Joshua 2010-09-02 16:54:51
+1您的回答反映維基http://en.wikipedia.org/wiki/Java_package – 2010-09-02 16:56:06
@Joshua,只有將類放入自己的jar中,才能將類添加到java.lang包中。它也只適用於增加的類。如果您試圖替換Exception類,我不確定它是否可行,因爲即使沒有定義CLASSPATH,JRE也會自行加載它。 – 2010-09-02 16:58:56
Java包,就像是在.NET命名空間。
與Java中的程序集相當的是jar文件。
Java中的包通常意味着類和接口的名稱空間,這實際上意味着特定的目錄結構。有時.jar文件也被稱爲包。這可能是最接近組裝的。 .jar文件還可以包含其他數據,如圖像,或基本上是一種文件,因爲它只是一個具有特定內容結構的zip文件。
在任何情況下:通常,當您閱讀與「Java」有關的「包」時,某些類型的命名空間(通過文件夾結構,例如:com.mycompany.myproject)是指。它不會幫助某些構建工具將構建.jar文件的過程稱爲「打包」;-)
請記住,我遠離Java專家,但無論如何,對此:
正如其他答案所指出的,一個包不等同於一個Assembly。然而,我並不完全同意.jar等同於大會的想法。 對我來說,Java類(包含在.class文件中)比.jar更接近程序集。我說這個原因,而CLR的加載單元是Assembly(這意味着包含在該Assembly中的所有類都被加載),JVM的加載單元是一個類(當JVM需要一個類時,ClassLoader不會加載容器jar中的所有類,它只加載該特定的所需類)。
你可以閱讀更多關於Java類加載在這裏: When does the JVM load classes?
- 1. .NET程序集名稱是否應包含版本號?
- 2. UrlHelper.Action是否等同於UrlHelper.RouteUrl?
- 3. Time.zone.now.to_date是否等同於Date.today?
- 4. PostbackUrl是否等同於Form.Submit?
- 5. 是一個類似於.Net程序集的Java JAR文件嗎?
- 6. 對於.NET CLR線程轉儲,是否存在等價於Java的「kill -3」?
- 7. 是否有.Net System.Data的Java等價物?
- 8. .NET等價於Java線程組?
- 9. 是否有.Net等價於java.util.concurrent.Executor?
- 10. 是否有一個JProfiler等效於.NET?
- 11. 本地Java方法是否等同於靜態Java方法?
- 12. 什麼是Java包,.NET程序集和.NET命名空間,是一個與.NET命名空間相同的Java包?
- 13. 當通過COM/Interop或.NET應用程序調用.NET程序集時,是否有不同的加載上下文用於引用的程序集?
- 14. .Net Framework 4.0安裝程序是否包含.Net Framework 3.5?
- 15. .net framework 3.0引導程序是否包含.net framework 2.0?
- 16. 測試集合是否包含任何順序的2個對象,等於
- 17. http://www.cplusplus.com/等同於C#.net
- 18. Java等於還是包含方法?
- 19. 程序檢查整數是否大於,小於或等於
- 20. .NET 4.0程序集可以用於.Net 3.5應用程序嗎?
- 21. AppDomain是否等價於.NET代碼的進程?
- 22. SparkViewEngine:是否有可用的功能等同於PHP包含?
- 23. 檢查一個文件是否是.NET程序集
- 24. Java集合和等於與==
- 25. .NET Dictionary/IDictionary的Equals()合同vs等於()Java地圖的合同
- 26. 什麼是Visual Basic等同於Java的「!」?
- 27. 這個Python代碼是否等同於Java代碼?
- 28. Java是否具有等同於const的參考?
- 29. Azure AppFabric是否等同於AWS?
- 30. 是否有等同於cflogin的腳本?
我會補充說.Net中的程序集比Java中的Jar具有更微妙的訪問修飾符(至少,這就是我的理解)。這個答案解釋了一個這樣的細節:http://stackoverflow.com/a/9808237/1168342 – Fuhrmanator 2013-03-12 03:13:04