[英]String declaration in java with _ named
我有代码的和平谁做字符串的连接:-
String _ = "Hello ";
String _ = "World";
String _ = " !!";
System.out.println(_+_+_+_+_+_+_);
代码的输出是:
!! !! !! !!Hello World !!
我有几个问题:
这只是一个愚蠢的花招:
三个下划线都是不同的字符/字符串,但在人眼中看起来相同。
如果您将值打印为字节数组
System.out.println(Arrays.toString("_".getBytes()));
System.out.println(Arrays.toString("_".getBytes()));
System.out.println(Arrays.toString("_".getBytes()));
您将获得输出:
[95, -30, -128, -114]
[95, -30, -128, -113]
[95, -30, -128, -114, -30, -128, -113]
因此,您发布的代码等效于以下代码:
String a = "Hello ";
String b = "World";
String c = " !!";
System.out.println(c+c+c+c+a+b+c);
严格禁止从Java 9下划线开始(请参阅Java 9文档 )
下划线字符不是合法名称。
如果使用下划线字符(“ _”)标识符,则无法再编译源代码。
我试图运行此程序并出现错误。
(在Java SE 8之后的版本中可能不支持将'_'用作标识符)
显然,如果他们说不使用下划线,那么这背后有一些原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.