java是一门严格区分大小写的语言。
但是在Windows系统下,却有如下情况:
使用cmd命名编译执行此程序
由此可以发现,Windows系统中java编译器(javac)并没有严格区分大小写!
what?什么情况?说话的严格区分大小写呢,为啥java编译器(javac)没有严格区分大小写,而java解释器(java)就严格区分大小写。
以下属于个人推测:
-
在Windows系统中,java编译器不区分大小写,因为Windows系统不区分大小写,当使用javac解释某个源程序文件时,是通过系统去寻找目标文件;而java解释器(java)则严格区分大小写,此时应该是JVM自己去找到需要的类文件,所以一定是严格区分大小写的。
-
另外,javac需要的是文件名(文件名 = 文件主名 + 扩展名),所以要带上后缀 .class;而java需要的是类名(类名默认后缀 .class),所以就不需要指明后缀了。
欢迎大佬指导交流
ends