java中的加号到底怎样理解呢?

这个字符输出的时候(代码第7行),为啥用+n2输出的是97,而直接打印n2确实输出的是a呢?

img

在Java中,字符类型char和整型int是可以相互转换的。字符的ASCII码值是一个整数,而Java的char类型也可以表示ASCII码值。

在你的代码中,声明了一个char类型的变量n2,并将其赋值为97。这个数字97是ASCII码值表中小写字母a的码值。当你在第7行中直接输出n2时,Java会将这个数字解释为ASCII码值,并输出对应的字符a。

但是当你在第7行中使用+n2时,Java会将n2当做一个整型数字进行输出。在这种情况下,Java不会将n2解释为ASCII码值,而是直接输出数字97。
望采纳

点进去看下源码很容易知道。直接打印n2执行的是下面这个方法

public void println(char x) 

最终执行的是 write(String.valueOf(c)); char 97正好是a。

而 +n2执行的是

 public void println(int x)

所以打印出来的结果是数字97