3、2 注释字符的陷阱 public class BinaryTest { //存放位置:D:\user\Java学习 public static void main(String[] args) { int i = 0b1010_1010; byte b = (byte)0b1010_1010; System.out.println(i == b); }} 上面代码将会报错:Invalid unicode。也就是说Java程序并没有完全忽略注释部分的内容。编译器在上面程序中检测到一个非法字符,Java程序允许直接使用\uXXXX的形式代表字符,要求\u后面的4个字符必须是0~F字符,而上面注释中包含了\user,这不符合Java对Unicode转义字符的要求。
3、3 转义字符的陷阱
Java程序提供了三种方式来表示字符。
直接使用单括号括起来的字符值,如‘a‘。使用转义字符,如‘\n‘。使用Unicode转义字符,如‘\u0066‘。 Java对于Unicode转义字符时不会进行任何处理,它会将Unicode转义字符直接替换为对应的字符,这将会给Java程序带来一些潜在的陷阱。 public class StringLength { public static void main(String[] args) { System.out.println("abc\u000a".length()); }} 上面程序试图计算“abc\u000a”字符串的长度,表面上看这个程序应该输出4,但是编译程序是会报错:String literal is not properly closed by a double-quote。引起这个错误的原因是Java对Unicode转义字符不会进行任何特殊处理,只是简单的将Unicode转义字符替换成相应的字符。对于\u000a而言,它相当于一个换行符。 另外,在注释行中如果使用\u开头也要注意Unicode转义字符的相关问题。 ———————————————— 版权声明:本文为CSDN博主「Never_Blue」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/Never_Blue/article/details/70572328