Java程序包是否等同于.Net程序集?
我是一个为Android开发Java开发的.Net开发人员,想知道是否正确地考虑.NET程序包这样的Java程序包。
没有。
Java档案(Jar)文件是最好的比较。 Java使用包来控制名称空间,与C#的名称空间非常相似。
这是我如何比较环境
Java .Net ==== ==== Class Class Package Namespace Jar Assembly
不,我认为一个Java包会更像一个名字空间
而一个程序集将更像一个jar(我不太确定这一点,因为我比Java更熟悉.Net …纠正我,如果我错了)
Java包就像.NET中的命名空间。
在Java中等同于一个程序集是jar文件。
Java中的包通常意味着类和接口的命名空间,实际上意味着一个特定的目录结构。 有时.jar文件也被称为一个包。 这可能是最接近你的程序集。 .jar文件也可以包含其他数据,如图像,或基本上是一种文件,因为它只是一个具有特定内容结构的zip。
在任何情况下:通常,当你阅读与“Java”相关的“包”时,某些types的命名空间(通过文件夹结构,例如:com.mycompany.myproject)是指。 一些构build工具将构build.jar文件的过程称为“包装”,这并没有帮助;-)
请记住,我远离Java专家,但无论如何,这是我的承担:
正如其他答案指出的那样,一个软件包不等同于一个程序集。 但是,我并不完全同意.jar等同于大会的想法。 对我而言,Java类(包含在.class文件中)比.jar更接近程序集。 我说这个原因,而CLR的加载单元是Assembly(这意味着包含在该Assembly中的所有类都被加载),JVM的加载单元是一个类(当JVM需要一个类时,ClassLoader不加载容器jar中的所有类,它只是加载特定的所需类)。
您可以在这里阅读更多关于Java类加载的信息: 什么时候JVM加载类?
并在这里: http : //www.lansa.com/support/notes/p0294.htm