永发信息网

JAVA高手们,跪求一个简单原理····小弟十分感谢!!!

答案:5  悬赏:20  手机版
解决时间 2021-03-24 22:44
JAVA高手们,跪求一个简单原理····小弟十分感谢!!!
最佳答案
+ 符号 在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
全部回答
看出他要话要和自己说
System.out.print(String string) --> 参数类型必须是String,不然就会报错;
x+" " --> 这是把x转化成字符串,y同理,中间的加号表示把x、y连接起来;
System.out.print(xy) --> 会报错,因为java会把xy当成一个变量来处理,然而xy你并没有定义;
简单点说:
1.你的x和y都是int类型的,x+y肯定就是8喽,这点毫无疑问吧。
2.我记得有人说过,在java中把数字类型变成字符串类型最快的方法就是+“”。
2.如果x+“”结果就是字符串类型的x了,再加上y+"",不就是相当于 字符串x + 字符串y 结果肯定是"35"喽,而且不是数字35,而是字符串类型的"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又不行,这里又有个运算符的优先级问题!
不知道能明白不???
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
腾龙sp 70-200mm 哪个好
圣经利末记19章32节
浙j8jp10车主是谁?
应变仪为什么要用惠氏电桥的方式测定电阻变化
you had worked hard, you would have easily
1989年阳历3月5日出生的人命理分析
金杯4G22发动机正时怎么对分解图
浙江哪里的面馆最好吃
小孩子发热感冒可以吃桂圆吗
广州有几个火车站,各站功能是如何分的
如何腌制咸梅
青椒内含有淀粉吗
崇仁县数字照片传输中心地址好找么,我有些事
铝合金窗38系列与50系列的区别具体是什么?
我家是坐北朝南,西边是路,路很不宽,我把大
推荐资讯
网球进入长盘,挑战次数增加吗
搬家从岛内万达搬到杏林大概多少钱
我经销啦漯效王
讨厌别人要挟我的诗句
我们慢慢跳起舞步是哪首歌
髋关节积液贴什么膏药
怎么防止豆角秧苗徒长
你们办的什么银行卡啊,(要河南许昌市的)办
如何用普通手机看3d视频
古龙怎么刻画人物
陪了我30年的奶奶说走就走了,让我充满了内疚
苹果手机怎么把备忘录里的内容储存到icloud里
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?