字符在Java中是否具有内在的int值?

Rac*_*hel 6 java int char

为什么这段代码打印97?我以前没有在我的代码中的其他地方分配97到'a'.

public static void permutations(int n) {
    System.out.print('a' + 0);
}
Run Code Online (Sandbox Code Playgroud)

Seb*_*ebi 5

a是类型char和字符可以隐式转换为int.a由97表示,因为这是代码点small latin letter a.

System.out.println('a'); // this will print out "a"

// If we cast it explicitly:
System.out.println((int)'a'); // this will print out "97"

// Here the cast is implicit:
System.out.println('a' + 0); // this will print out "97"
Run Code Online (Sandbox Code Playgroud)

第一个呼叫呼叫println(char),其他呼叫是println(int).

相关: 存储在Java char中的编码是什么?