java基础练习,为什么2个字符相加最后得出的是数字??

publicclassTest1{publicstaticvoidmain(String[]args){charman='男';charwoman='女';Strings... public class Test1{
public static void main(String[] args){
char man ='男';
char woman ='女';
String str ="与";
System.out.println(man+woman);
System.out.println(man+str+woman);
}
}
为什么man+woman打印最后的结果是52906,而man+str+woman就是正常的“男与女”??
展开
 我来答
nullbd
推荐于2017-11-26
知道答主
回答量:10
采纳率:0%
帮助的人:13.4万
展开全部
因为char类型只能记录一个字符,是字符编码值,所以char加char结果还是一个char,而String是字符串,可以表示一个以上的字符,在char + String + char中,因为字符串是不能进行一般的数学意义的加法的实际上与String有关的“+”符号相当于将“+”左右的内容连接并返回一个新的字符串的方法。
追问
man+woman+str最后得出的是“52906与”,而不是“男女与”,是因为先从左向右把左边的运算完再加的右边的原因吗
追答
是的 因为运算的是从左向右进行的 有的时候 运算中包含不同类型变量的时候 运算顺序的不同会带来非常不同的结果 比如 
int a = 1;
int b = 10;
double c = 2;
a/b * c 的结果是0 因为 1除10虽然是0.1但是类型是int类型不能存小数结果是0然后乘2结果还是0 但是如果是 a*c/b a乘c是2,单因为c是double类型值域比int大所以会先将a的1转换为double类型再与c进行运算 结果是 double类型的2.0然后再与b相除 同理 b中的10也将被转换为double类型 运算 结果是0.2 类型为 double
这就是 类型的隐式转化
黑夜也明亮
2014-09-26 · TA获得超过168个赞
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:91万
展开全部
man + str woman 不会按计算方式转换只会当做拼接字符串,任何数值与字符串相加都是拼接,
char 类型并不是字符串 只是字符 字符是可以转换成相对应的数值进行计算的如果用+号的话。
man+woman打印最后的结果是会是数字
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式