刚才写了一个简单的Java程序,经过测试得到一个令人震惊的结论:Java类名和包名是不区分大小写的
可以看一下这个例子:
package Test;class aBcdEfG
{}class AbCdefg
{}public class TTT
{public static void main(String[] args){AbCdefg tmp1=new AbCdefg();aBcdEfG tmp2=new aBcdEfG();}
}
这个程序看起来是没有什么问题的,但是运行以后就会报错:java.lang.NoClassDefFoundError: Test/aBcdEfG (wrong name: Test/AbCdefg)
我所在的环境是Eclipse2019,同时我是用IDEA进行测试也是相同的结果。
不仅类名会大小写冲突,类名和包名也会有大小写冲突。
package Test;class aBcdEfG
{}public class tEsT
{public static void main(String[] args){aBcdEfG tmp2=new aBcdEfG();}
}
运行结果:
但是奇怪的是当类名和包名完全相同的时候不会报错