JAVA高手们,跪求一个简单原理····小弟十分感谢!!!
答案:5 悬赏:20 手机版
解决时间 2021-03-24 22:44
- 提问者网友:無理詩人
- 2021-03-24 02:43
JAVA高手们,跪求一个简单原理····小弟十分感谢!!!
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-03-24 04:07
+ 符号 在java中有两种作用,如果 + 左右有任意一个值是字符串类型,那么就会按照字符串连接的形式来进行计算,例如:"a" + "b" = "ab", "a" + 5 = "a5","3" + 5 = "35"
你这里的x + "" 也是这样计算的,得到的结果就是 3+"" = "3",注意,这里的"3"是一个字符串,再 + y就相当于 "3" + 5 = "35"。
如果想直接输出35只能单独定义一个变量 x=35来输出,因为没有你写的那种xy的语法,而x + y,其中x和y都不是字符串类型,就会按照普通加法来进行处理,因此会得到结果 8
你这里的x + "" 也是这样计算的,得到的结果就是 3+"" = "3",注意,这里的"3"是一个字符串,再 + y就相当于 "3" + 5 = "35"。
如果想直接输出35只能单独定义一个变量 x=35来输出,因为没有你写的那种xy的语法,而x + y,其中x和y都不是字符串类型,就会按照普通加法来进行处理,因此会得到结果 8
全部回答
- 1楼网友:雪起风沙痕
- 2021-03-24 07:58
看出他要话要和自己说
- 2楼网友:神鬼未生
- 2021-03-24 07:31
System.out.print(String string) --> 参数类型必须是String,不然就会报错;
x+" " --> 这是把x转化成字符串,y同理,中间的加号表示把x、y连接起来;
System.out.print(xy) --> 会报错,因为java会把xy当成一个变量来处理,然而xy你并没有定义;
x+" " --> 这是把x转化成字符串,y同理,中间的加号表示把x、y连接起来;
System.out.print(xy) --> 会报错,因为java会把xy当成一个变量来处理,然而xy你并没有定义;
- 3楼网友:归鹤鸣
- 2021-03-24 07:06
简单点说:
1.你的x和y都是int类型的,x+y肯定就是8喽,这点毫无疑问吧。
2.我记得有人说过,在java中把数字类型变成字符串类型最快的方法就是+“”。
2.如果x+“”结果就是字符串类型的x了,再加上y+"",不就是相当于 字符串x + 字符串y 结果肯定是"35"喽,而且不是数字35,而是字符串类型的"35"
总之,你只要记住,任何类型,只要+“”就变成字符串类型了就对了。
1.你的x和y都是int类型的,x+y肯定就是8喽,这点毫无疑问吧。
2.我记得有人说过,在java中把数字类型变成字符串类型最快的方法就是+“”。
2.如果x+“”结果就是字符串类型的x了,再加上y+"",不就是相当于 字符串x + 字符串y 结果肯定是"35"喽,而且不是数字35,而是字符串类型的"35"
总之,你只要记住,任何类型,只要+“”就变成字符串类型了就对了。
- 4楼网友:毛毛
- 2021-03-24 05:35
你这里的 int+String ,+不是我们所说运算符,在这里只是一个连接符,我们知道在c语言里面我们可以对运算符进行重载,意思类似,虽然java中不允许进行运算符重载,这个只是我们所站的角度不同而已,java本身已经对String类型重载了+操作符,可以直接使用+对两个字符串进行连接。其实jvm内部是用了StringBuilder 的 append()方法,然后调用toString()方法,
比如你这个String a=“abc”;int b=3;
那么两个相加就是: (new StringBuilder(a)).append(b).toString();我觉得吧,java就没有+重载,而是jvm做了处理。
如果不好理解,你就认为是类型转换,类型都向上转换的吧,int+String的时候会先把int转换成string然后相加。
还有你这个System.out.print(xy); 首先xy就是语法错误,怎么可能不报错!!如果要出现35,可以这样3+“”+5;""+3+5;但是3+5+”“=8又不行,这里又有个运算符的优先级问题!
不知道能明白不???
比如你这个String a=“abc”;int b=3;
那么两个相加就是: (new StringBuilder(a)).append(b).toString();我觉得吧,java就没有+重载,而是jvm做了处理。
如果不好理解,你就认为是类型转换,类型都向上转换的吧,int+String的时候会先把int转换成string然后相加。
还有你这个System.out.print(xy); 首先xy就是语法错误,怎么可能不报错!!如果要出现35,可以这样3+“”+5;""+3+5;但是3+5+”“=8又不行,这里又有个运算符的优先级问题!
不知道能明白不???
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯