第一个全当字符串处理了
第二个a的ascii码是97,当数字想加了,输出的是整形
和这个相似,看下编译后的代码
很简单啊,你加了双引号,后面的加法就被视为字符串相加了,后面的字符a和数字1都会自动转换为字符串进行相加,所以是字符串a1
去掉双引号,那就是'a'+1,会被认为是两个整数相加,就是98
第一个就是相当于字符串的拼接 双引号是空字符串 + 'a' 就相当于字符串的拼接 a也会被当作字符串拼接进去
第二个是纯正的单引号 a 就相当于 a+1 在Java里面单引号的a是以ASCII码的形式存在的,也就是说a的ascii码是97,97+1之后就是98了
""+'a'+1
等价于((""+'a')+1)
,其中""是字符串,因此后面+按字符串拼接处理,得到的结果就是字符串'a'+1
中'a'是字符,字符是整型,其值是97,后面的+因此按整型加法计算,故得98
数据类型排序:字符串>整型>字符,在运算时,向最大数据类型靠齐
第一个全当字符串处理了
第二个a的ascii码是97,当数字想加了,输出的是int
输出开始有字符串,后面的都会当成字符串来处理进行拼接。没有字符串也就是双引号,就按逻辑该加就加该减就减。
数据类型排序:字符串>整型字符
1.在java中,其他基本类型例如整形int,浮点数float,char字符等等加上双引号就会变成字符串类型直接显示啥就打印啥
所以char类型字符'a'和整数1加上双引号后就变成字符串直接打印出a1
2.char类型字符,如果直接打印,则会打印他的ascll码,'字符a'的ascll码是97,加上1之后,就会打印出97