在Java编程思想(Thinking In Java)的2.6.1名字的可见性中,作者提到:
“在Java 1.0和Java 1.1中,域扩展名com,edu,org,net等都约定为大写形式。所以库的样子就变成:COM.bruceeckel.utility.foibles。然而,在Java 1.2的开发过程中,设计者发现这样做会造成一些问题。所以目前的整个软件包都以小写字母为标准” 。为什么要做这样的改变呢?
可能是为了适应不同的操作系统而做的改变吧。因为Unix系的操作系统是大小写敏感的,所以如果在操作系统中"COM"和"com"两个文件夹被认为是两个不同的文件夹;而在Windows操作系统中,大小写是不敏感的,因此"COM"和"com"两个文件夹为被认为是同一个文件夹。正因为这样,如果有人正好在Unix系的操作系统下写了两个包名为"COM.bruceeckel.utility.foibles"和"com.bruceeckel.utility.foibles"的工具包,迁移到Windows上面来的时候,就会出问题了。这样就好解释Java1.2要把包名统一成小写了。