永发信息网

java这段代码为什么输出结果是s=hello a=hello false false

答案:5  悬赏:50  手机版
解决时间 2021-11-18 00:44
java这段代码为什么输出结果是s=hello a=hello false false
最佳答案
s本身是"hello"
a是 "he" + "llo",所以也是hello
s==a是false,因为两个都是对象,虽然字符相同,但内存地址不同,所以输出false。字符串若比较字符的话要用equals追问为什么iEnd是char类型程序却没有报错??还有iEnd=2的话最后的a为什么是等于hell??追答char和int是可以互相转换的,都是值类型
substring(beginIndex,length)
iEnd指定截取长度,"llo"截取2的的长度就是ll
所以是hell追问为什么字符串变量==比较的是内存地址,int型变量比较的却不是内存地址??追答字符串是引用类型
char和int是值类型
使用"=="时,如果是引用类型则比较内存抵制,如果是值类型则直接比较数值追问最后一个问题哈 什么时候char类型可以自动转换为int类型?比如本例substring(int,int)为什么没有报错说参数错误char应该为int型??追答java和c里,char和int是按ascii码来转换的,相对于char,int是更底层的,可以理解成char继承于int,因此char在需要时将自动转化为int,int也可以转化为char,不过这时需要用强制转换
substring第二个参数要求是int,输入为char时,因为char继承于int,会自动将char转换为int
举个例子,把一个特有行为比做一个方法——思考(人),而你是一个男人,男人是人的一种,在执行思考时,就自动把男人转化为人来执行这个方法了
全部回答
字符串标比较不能用==,要用 s.equals(a)追问晕 我没报错 我是问结果为什么是那样的

引用和引用的指是不一样的。s和a本身都只是引用

首先,来分析 a=a+b.substring(iBeg,iEnd);
虽然,iEnd是char类型的,但是传到substring方法后它会转成整型值为3.
b.substring(iBeg,iEnd) 返回的是b自己的引用 (因为开始到结束位置形成的字符串跟自己相同,具体可见substring的source code). 值依旧为"llo"
而执行到 a=a+b.substring(iBeg,iEnd);
a+b.substring(iBeg,iEnd) 会创建一个新的String对象,而a会引用这个新的对象,且值为"hello".
所以,虽然,s和a的值都是"hello", 但是引用是不同的,所以s==a 会返回false.
对象不同,s、a、b只是一种指向对象的变量,即存的是对象所处内存的地址值
用== 比较,只是比较的地址值,因为对象不同,所以地址不同,所以a==s会输出FALSE,
如果改为s.equals(a),就是比较对象里的内容,这样才会输出true追问那int型变量用“==”就不是比较地址了?为什么??为什么iEnd是char类型程序却没有报错??还有iEnd=2的话最后的a为什么是等于hell??追答你要明白堆栈的这个东西,一般的变量是存在栈里的,像int、float、double等类型,还有就是对象这个类型了,在生成对象类型时会在堆里面创建一个空间,在这里面存储对象的内容,而栈里会保存对象的地址,就是s、a之类的,所以int类型可以直接==比较
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
想做司仪,兼职做,不知道该怎么学
溜琏买来没有熟能放熟吗
两人谈恋爱一方对另一方好就是应该的吗
从一个有实力,人人羡慕,心高气傲的我变成了
我软件专业明年毕业,找工作了,一家国企4K,
自由空间KTV地址有知道的么?有点事想过去!
奶茶店点单,你们是不是也点这些
“戏说历史不利于提高人文素养” 这个辩题开
我家在吉林农村,家里烧地炕,但是烧地炕麻烦
fra是哪个城市的代码
在语文阅读《小巷深处》里死心眼是什么意思
浅谈油田钻井行业如何提高经济效益
我太老实了是什么意思?
对于光学镜片,一些参数意义的解释
成都卤菜现捞卤菜现捞技术哪家好
推荐资讯
联想笔记本ccsdk是什么软件能卸载吗
求文山到昆明私家车电话!谢谢
我今年17岁,每次鲁一分钟不到就不行了怎么办
什么是抛光砖?抛光砖有哪些种类?
词语阔气的意思是什么?
脸上没有肉应该怎么办呢?
水煮活鱼是出自哪里的
徐州中央国际广场的百大60年历史变革
吗,特别是四颗全拔那种,后悔吗
京东上的akg 460是正品吗? 我看有个中评有说
曲面积分,倘若积分区域曲面恰在某一平面内,
国产7座MPV长安欧尚A800对比宝骏730哪个好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?