编码:
String s = "\d";
引发编译器错误,非法转义字符。好的了解了!!
但是代码:
class Test
{
public static void main(String[] args)
{
String s = args[0];
System.out.println(s);
}
}
java Test \d
使用命令或调用时不会java Test "\d"
。为什么??
事实上它甚至可以打印:\d
不使用双反斜杠(“\\d”)。
通过命令行提供的参数不是仅被视为字符串吗?
我知道它不能引发编译器错误,因为命令行提供的参数是在编译阶段之后,但它不应该引发运行时异常或其他什么吗?
还是一旦我们通过了编译阶段,String 包含什么就无关紧要了(因为代码被转换成字节码并且整个代码结构都被改变了)?如果是,那么有人可以详细说明。
提前谢谢!!