为什么人们在Java中创建像edu.mit.stk这样的目录结构?

时间:2013-01-18 18:08:34

标签: java

我的问题是为什么人们创建目录结构,其中至少有一个名为edu的文件夹,然后是另一个名为mit的文件夹(例如),后面是子文件夹中的所有代码?

这是某种标识符吗?

计算机实际上是出于任何原因使用该结构 - 还是仅用于帮助读者?

如果是这样,它对读者有何帮助?

6 个答案:

答案 0 :(得分:8)

这样做是为了防止名称冲突。默认规则是使用域名的反向作为包结构

因此,Google会将所有代码保留在com.google.*个软件包中,而Microsoft会将其代码保留在com.microsoft.*个软件包中。然后,如果两家公司都实现了SearchEngine类,则不会发生命名冲突。

教育机构做同样的事情,所以你知道edu.mit.*子包中的任何代码都可能由MIT

的小组开发

答案 1 :(得分:4)

Java约定是安排源目录以匹配包层次结构。参见例如Managing Source and Class Files

因此,如果您有一个班级edu.mit.stk.Foo,那么它将被定位为edu/mit/stk/Foo.java

答案 2 :(得分:2)

这是一个命名空间。它可以防止类/包名称冲突。通常情况下,公司的域名是反向的(例如com.ibm.PackageName),但它的价值是任意的,可以是任何东西。

答案 3 :(得分:0)

按照惯例,Java包名称遵循域命名约定,顺序相反。因此,edu.mitmit.edu开发的包的适当前缀。

答案 4 :(得分:0)

与包约定相匹配(看起来像反向的互联网域名)。

您可以在http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html

查看更多详情

答案 5 :(得分:0)

使用反向互联网域名命名包以避免名称冲突。所以来自ecliplse的calss可能在package com.eclipse.XYZClass

来自Naming a package

  

公司使用他们的反向互联网域名开始他们的   包名称 - 例如,com.example.mypackage用于名为的包   mypackage由example.com的程序员创建。

要正确识别,包裹应该在同名的flder中。因此,如果您在com.madbreaks.MyClass中有一个类,则将文件夹结构设置为

com
|
+--madbreaks
   |   
   +---MyClass

另见:Java tutorial on packages