代码之家  ›  专栏  ›  技术社区  ›  JimDaniel

Java包是否相当于.NET程序集?

  •  37
  • JimDaniel  · 技术社区  · 15 年前

    我是一个.NET开发人员,开始了Android的Java开发,并想知道是否正确地思考像.NET程序集这样的Java包。

    5 回复  |  直到 11 年前
        1
  •  53
  •   Kelly S. French    15 年前

    不。

    最好的比较是使用Java存档(JAR)文件。Java使用包来控制命名空间,并且非常类似于C的命名空间。

    以下是我比较环境的方法

    Java                    .Net
    ====                    ====
    Class                   Class
    Package                 Namespace
    Jar                     Assembly
    
        2
  •  5
  •   froadie    15 年前

    不,我认为Java包会更类似于命名空间。

    一个程序集会更像一个JAR(我不太确定这一点),因为我对Java比.NET更熟悉…如果我错了,请纠正我)

        3
  •  1
  •   Nuno Ramiro    15 年前

    Java包就像.NET中的命名空间。

    与Java中的程序集相当的是JAR文件。

        4
  •  1
  •   Horst Gutmann    15 年前

    Java中的包通常意味着类和接口的命名空间,实际上是一个特定的目录结构。有时.jar文件也被称为包。这可能是最接近程序集的。jar文件也可以包含其他数据,比如图像,或者基本上是一种文件,因为它只是一个具有特定内容结构的zip文件。

    在任何情况下:通常当你读到与“Java”有关的“包”时,就意味着某种名称空间(通过文件夹结构,例如:COM.MyPosial.MyPoto)。一些构建工具将构建.jar文件的过程称为“打包”,这并没有帮助。

        5
  •  0
  •   Community CDub    8 年前

    请记住,我远非Java专家,但不管怎样,我的看法是:

    正如其他答案所指出的,一个包并不等同于一个组件。但是,我并不完全同意.jar等同于程序集的想法。 对我来说,Java类(包含在.class文件中)比A.JAR更接近程序集。我之所以这么说是因为,虽然clr的加载单元是程序集(这意味着该程序集中包含的所有类都被加载了),但jvm的加载单元是一个类(当jvm需要一个类时,类加载器不加载容器jar中的所有类,它只加载特定需要的类)。

    您可以在这里阅读更多关于Java类加载的内容: When does the JVM load classes?

    这里: http://www.lansa.com/support/notes/p0294.htm