急!!!!!java System.out.println()输出规则!!!!!

publicclassTest{publicstaticvoidmain(String[]args){intx=5;inty=2;inta=5,b=4,c=3;Syste... public class Test {
public static void main(String[] args) {
int x = 5;
int y = 2;
int a=5,b=4,c=3;
System.out.println(x+y+"K");
System.out.println("abc"+a+b+c+3);
}

}
结果是:
7K
abc5433
这是为什么???????
展开
 我来答
lhch1227
2012-09-25 · 超过18用户采纳过TA的回答
知道答主
回答量:221
采纳率:0%
帮助的人:32.2万
展开全部
第一个 x+y 是数值型的计算,+“K”后变成字符型的结果
第二个“abc”+...是按照字符型直接拼装的字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蔺伟翔
2012-09-25
知道答主
回答量:12
采纳率:0%
帮助的人:7.2万
展开全部
第一个system.out先计算x+y=7,然后再接K结果为7K,第二个system.out先输出abc然后接a值5、b值4、c值3,最后3,结果为abc5433
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
devilzy_boy
2012-09-25 · TA获得超过146个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:124万
展开全部
很简单。java语法规则:从左往右计算。首先:x+y+"K";是x+y=7再加k的时候,由于k是字符串。所以类型强制转换了。而第二个。是从字符串开始相加的。就直接是类型转换了。如果你在第二个后面将a+b+c放在括号里面会先算这个几个:结果会是abc123;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zo_184
2012-09-25 · TA获得超过492个赞
知道小有建树答主
回答量:256
采纳率:0%
帮助的人:79.3万
展开全部
int数据与字符串相加 java会默认的将int转换为string,所以最后的加号就变成了连接符
x+y+"K"
5+2+"K" 7+"K" 所以等于7K
底下的自己研究研究
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xifo
2012-09-25 · TA获得超过898个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:320万
展开全部
x+y+"K" 按照从左到右的运算次序,先计算x+y为7,再和"K"连接产生新的字符串对象7k。

"abc"+a+b+c+3 按照从左到右的运算次序,第一个运算对象为字符串"abc",右边的全部以字符串方式连接,最后生成字符串对象abc5433。

在本处的Java代码中,加号有两种含义(所谓的“运算符重载”):对于数值型计算表示加法运算符,对于字符串表示连接运算符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式