首先,\uhhhh是非法的转义字符,\u后面跟四位十六进制数,最大值应该是\uffff,你这个hhhh肯定是不合法的。
而这个\uhhhh被java编译器解析到了,所以会报错。
java编译器看到“ /* ”这个开头,就会从这个开头开始往下每个字符每个字符的寻找'*' '/'这个字符组合,这个结尾也就是两个字符的组合吧。而转义字符也代表字符,所以在从前到后的解析过程中,也会解析转义字符。
比如说,你前面写个/*,然后再后面写个\u002a\u002f,那么从/*开始到\u002a\u002f结束的中间内容就会被编译器确定为注释部分。因为\u002a相当于 '*', \u002f相当于'/'。
所以说,不是你这个转义字符放在注释里还报错,而是在java编译器寻找注释结尾的过程中(还不知道哪个部分是注释呢)发现了这个非法的\uhhhh,所以报错。
|