Java 有人能描述一下这段代码中发生的过程吗(逐行)?

Java 有人能描述一下这段代码中发生的过程吗(逐行)?,java,character,literals,Java,Character,Literals,输出:真*7 我不懂这个密码。请根据以下内容提供帮助: 格式为\uxxx的Unicode转义,其中xxxx是十六进制值,表示编码为xxxx的UTF-16代码单元 字符“a”的unicode值为97 61(十六进制),而“a”的unicode值为65 41(十六进制)。因此,源中的字符\u0061被读取为,而字符\u0041被读取为 您的代码如下所示: class Example{ public static void main(String args[]){ char a='a'; System

输出:真*7

我不懂这个密码。请根据以下内容提供帮助:

格式为\uxxx的Unicode转义,其中xxxx是十六进制值,表示编码为xxxx的UTF-16代码单元

字符“a”的unicode值为97 61(十六进制),而“a”的unicode值为65 41(十六进制)。因此,源中的字符\u0061被读取为,而字符\u0041被读取为

您的代码如下所示:

class Example{
public static void main(String args[]){
char a='a';
System.out.println(a=='\u0061');
System.out.println(\u0061=='\u0061');
System.out.println(\u0061==97);
\u0061='\u0041';
System.out.println('A'=='\u0041');
System.out.println(65=='\u0041');
System.out.println(65==a);
System.out.println('\u0041'==a);        
}
}
字符a='a';-变量a存储小写字母和字符 System.out.printlna=='\u0061';-在UTF小写中,字符表示为 System.out.println\u0061=='\u0061';-\u0061值是不带引号的,因此它使其成为一个=='\u0061',实际上与第2点相同。 System.out.println\u0061==97;-和上面一样,因为97dec=61hex,除了这里我们不使用UTF符号来表示字符,而是使用字符的数值 \u0061='\u0041';-赋值为大写字母a的变量 System.out.println'A'='\u0041';-与第2点相同 System.out.println65='\u0041';-65dec=41hex,与第4点相同,但这里我们比较的是两个常数,而不是a变量。 System.out.println65==a;-见上文 System.out.println'\u0041'==a;-见上文
如果用a替换代码中出现的\u0061,用a替换\u0041,可能对您更有意义。@KarolDowbecki尝试一下。您可能会感到惊讶。在编译过程中解码为变量名会产生误导:它被解码为相应的unicode符号a,而在特定上下文中,它恰好被解释为变量名。
class Example{
    public static void main(String args[]){
        char a='a';
        System.out.println(a=='a');
        System.out.println(a=='a');
        System.out.println(a==97);
        a='A';
        System.out.println('A'=='A');
        System.out.println(65=='A');
        System.out.println(65==a);
        System.out.println('A'==a);        
    }
}