这些代码具有相同的变量名,但唯一的区别是一种是全角,而另一种是半角。我很震惊,Java支持全角字符作为变量名。我想知道Java如何区分这两个字符。
public class Main {
public static void main(String[] args) {
int[] x = { 1, 2, 3 };
int[] x = { 1, 2, 3 };
int[] y = { 4, 5, 6 };
int[] y = { 4, 5, 6 };
int[] z = new int[x.length];
int[] z = new int[x.length];
for (int i = 0; i < z.length; i++) {
z[i] = x[i] + y[i];
z[i] = x[i] + y[i];
}
System.out.println(z);
System.out.println(z);
}
}
答案 0 :(得分:4)
Java在源代码中支持Unicode,因此x
(u'\uff58'
)与x
(u'x'
)有很大的不同
本质上不同的字符,与具有int[] a
和int[] b
但是出于可读性考虑,这是一个巨大的问题。即使有两个不同的变量,另一个用户也很容易混淆这些名称。最好在源代码中尽可能以简单的形式坚持基本的拉丁字母。
答案 1 :(得分:2)
来自 Java教程线索学习Java语言,课程语言基础,主题Variables
变量名称区分大小写。变量的名称可以是任何合法的标识符-无限长度的Unicode字母和数字序列,以字母,美元符号“ $”或下划线字符“ _”开头。
因此,在Java代码中,您甚至可以在Klingon中写变量名
答案 2 :(得分:1)
我想您的源代码是以UTF-8(或其他“扩展”字符集)编码的,所以xx和x的代码不同(机器不在乎字符的图形表示,而是在内部代码)。