剛才寫了一個簡單的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();}
}
運行結果:
但是奇怪的是當類名和包名完全相同的時候不會報錯