我是一名.NET开发人员,开始学习Android的Java开发,想知道是否可以将Java包看作.NET程序集。
我是一名.NET开发人员,开始学习Android的Java开发,想知道是否可以将Java包看作.NET程序集。
不。
最好的比较对象是Java Archive (Jar)文件。Java使用包(package)来控制命名空间,这与C#的命名空间非常相似。
以下是我如何比较这两个环境:
Java .Net
==== ====
Class Class
Package Namespace
Jar Assembly
不,我认为Java包更类似于命名空间。
而程序集更像是一个jar文件(我对Java比.NET更熟悉...如果我说错了,请纠正我)。
Java包就像.NET中的命名空间。
在Java中,相当于程序集的是jar文件。
正如其他答案所指出的那样,一个包并不等同于一个程序集。然而,我并不完全同意.jar文件就等同于程序集的观点。
对我来说,Java类(包含在.class文件中)比.jar文件更接近程序集。我这么说是因为,虽然CLR的加载单元是程序集(这意味着该程序集中包含的所有类都会被加载),但JVM的加载单元是一个类(当JVM需要一个类时,ClassLoader并不会加载容器jar中的所有类,它只会加载那个特定需要的类)。
您可以在此处阅读有关Java类加载的更多信息: JVM何时加载类?