Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java '有什么用\u';如果我使用引号或不使用引号,为什么我的程序会打印不同的值?_Java - Fatal编程技术网

Java '有什么用\u';如果我使用引号或不使用引号,为什么我的程序会打印不同的值?

Java '有什么用\u';如果我使用引号或不使用引号,为什么我的程序会打印不同的值?,java,Java,在以下代码段中: publicstaticvoidmain(字符串[]args){ int a=\u0030; System.out.println(a);//a int b='\u0030'; System.out.println(b);//b } 语句A正在打印0,而语句B正在打印48 为什么使用单引号会有区别 此外,如果将a的声明更改为: int a = \u0029; 为什么我会出错 Syntax error on token ")", invalid VariableInitial

在以下代码段中:

publicstaticvoidmain(字符串[]args){
int a=\u0030;
System.out.println(a);//a
int b='\u0030';
System.out.println(b);//b
}
语句A正在打印
0
,而语句B正在打印
48

为什么使用单引号会有区别

此外,如果将
a
的声明更改为:

int a = \u0029;
为什么我会出错

Syntax error on token ")", invalid VariableInitializer
在:

字符串
\u0030
是源代码中的数字文本
0
。这就好像你实际上输入了0

如果我在30以下和40以上使用任何数字,为什么会给出编译[错误]

使用\u0029时出现的异常是“
令牌上的语法错误”)”,变量初始值设定项无效

字符0x30到0x39是数字0-9,当然是可以分配给
int
的文本。其他不是有效的整数文本

您的编译错误示例:

int a = \u0029;
同:

int a = ); // clearly not valid!
回到您最初的示例,您的意思可能是:

int a = '\u0030'; // notice the single quotes

现在,您正在将字符文字指定给整数。现在您可以分配其他字符,而不仅仅是unicode
0x30
-
0x39
。请注意,整数将具有该字符的序数值。因此,在这种情况下,变量
a
将是0x30或十进制48。

打印相应的ASCII值时,您的期望值是多少?似乎正确<代码>030
。这里有什么让人困惑的?代码很好\u0030是ASCII代码0如果你调用的代码表现得像设计的那样烦人,你将很难成为一名软件开发人员…@Reimeus:Means**'\u'**的意思是什么?如果我使用任何数字小于30而大于40,为什么它会进行编译。请你解释一下。弗兰克:意思是\u是用于表示java源文件中的unicode符号。仅此而已@弗兰克·威尔森:没错。它们可以出现在源代码中的任何位置,而不仅仅是字符串或字符文本。您可以将整个程序代码编写为unicode转义序列,但它的可读性不是很好!
int a = '\u0030'; // notice the single quotes