作者:知乎用户
链接:https://www.zhihu.com/question/20212262/answer/15289124
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://www.zhihu.com/question/20212262/answer/15289124
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
java包名是大小写敏感的, windows中的文件名是大小写不敏感的,java中的包名对于与 windows中的文件名。这就是为什么在java1.2之后规定java包名在命名时采用小写。
以下内容参考(http://www.bywing.com/?p=12)
在Java 1.0和Java 1.1中,域扩展名com,edu,org,net等都约定为大写形式。所以库的样子就变成:COM.demo。然而,在Java 1.2的开发过程中,设计者发现这样做会造成一些问题。所以目前的整个软件包都以小写字母为标准,为什么要做这样的改变呢?
可能是为了适应不同的操作系统而做的改变吧。因为Unix系的操作系统是大小写敏感的,所以如果在操作系统中”COM”和”com”两个文件夹被认为是两个不同的文件夹;而在Windows操作系统中,大小写是不敏感的,因此”COM”和”com”两个文件夹为被认为是同一个文件夹。正因为这样,如果有人正好在Unix系的操作系统下写了两个包名为”COM.bruceeckel.utility.foibles”和”com.bruceeckel.utility.foibles”的工具包,迁移到Windows上面来的时候,就会出问题了。这样就好解释Java1.2要把包名统一成小写了。
以下内容参考(http://www.bywing.com/?p=12)
在Java 1.0和Java 1.1中,域扩展名com,edu,org,net等都约定为大写形式。所以库的样子就变成:COM.demo。然而,在Java 1.2的开发过程中,设计者发现这样做会造成一些问题。所以目前的整个软件包都以小写字母为标准,为什么要做这样的改变呢?
可能是为了适应不同的操作系统而做的改变吧。因为Unix系的操作系统是大小写敏感的,所以如果在操作系统中”COM”和”com”两个文件夹被认为是两个不同的文件夹;而在Windows操作系统中,大小写是不敏感的,因此”COM”和”com”两个文件夹为被认为是同一个文件夹。正因为这样,如果有人正好在Unix系的操作系统下写了两个包名为”COM.bruceeckel.utility.foibles”和”com.bruceeckel.utility.foibles”的工具包,迁移到Windows上面来的时候,就会出问题了。这样就好解释Java1.2要把包名统一成小写了。