我是一个开发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