问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于java中String的地址和值的问题25

发布网友 发布时间:2023-10-11 16:58

我来回答

4个回答

热心网友 时间:2024-11-19 20:16

System.out.pringln(Object); 首先它打印的是Object的toString()方法的返回值。

问题1如你所说的那样。
问题2,打印出来 什么 那要看你tt的toString() 方法是怎么实现的,如果没有toString()方法,那tt会默认继承Object的toString()方法,而Object的toString()方法的实现就是返回对象的地址值。
问题3,String类同样也继承了Object,但是String类重写了Object的toString()方法,重写的目的就是返回字符串值本身,而非地址值。
问题4,同问题3.

a.hashCode()返回的是哈希值(一个int类型的数),System.out.println(int类型)的时候打印的也是int值本身

问题5,比较的是地址值。

总结: 打印出来什么是看对象类有没有实现toString()方法,如果没有那就打印对象的地址值,如果对象类重写了toString()方法,那就要看方法是怎么实现的了。

亲:希望对你有所帮助,如果觉得还不错,请采纳!

热心网友 时间:2024-11-19 20:17

首先,java里是没有明确的地址的,变量里存的是引用,这两个概念上基本可以等同,但java里没有地址的说法。

是的,就是这样。a里只是一个引用。

对象没有实现toString方法的时候,就会打印hashcode的值,默认的hashcode的值就是底层的地址,也只有在这种情况下才能看到地址。

因为string类有tostring方法

同上

重定义了hashcode函数就不会打印地址了。

比的是引用,是的,比的是地址

追问a和b的hashcde我打印出来看了一下是一样的,根据您对问题2的回答就是说他们地址一样吗?如果一样为什么 System.out.println(a==b);的比较结果是false呢?

热心网友 时间:2024-11-19 20:17

问题1 就是在常量池里的
问题2,是地址值
问题3,String类继承了Object,但是String类重写了Object的toString()方法,返回的是string类型的内容;
问题4,同上
a.hashCode()返回的是哈希值(一个int类型的数),System.out.println(int类型)的时候打印的也是int值本身
问题5,比较的是地址值。

热心网友 时间:2024-11-19 20:18

首先应该理解Object的hashCode()方法,API上是这样说的:实际上,由 Object 类定义的 hashCode
方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。)
然后,在你打印的时候会去调用该对象的toString()方法。由于tt类默认继承Object类,所以调用基于Object的toString()方法,也就是“类名@hashCode”这种形式的内容。由于你的a,b是String类型的引用,就会调用String类的toString()方法,也就是"abc"自身了。同样由于String类的hashCode()方法是这样计算的:s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]。如果你想计算a基于Object的hashCode,那么就要用System.identityHashCode(a),这样你就可以看出a,b引用的是不同的对象了。
最后,建议多去看一下源码,你就明白了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 java程序String类型作为参数的问题41 问个简单java问题 java中,String s = "a" + "b" + "...73 介绍一本书中的人物10 求助几句话翻译 在线等 这句日语什么意思 在线等 求翻译 人的标准体重是怎样计算出来的675 15的立方是多少,平方是多少5 c语言1和-1来回变换怎么定义 C#中的结构和枚举是什么类型?和类有什么区别?各有什么优点和...5 冼红长得可像妈妈了(是比喻句吗) 高考后选大学后悔了 怎么办 样子是哪本书的主要人物 判断下面的句子是不是比喻句,是的请在括号里画“√”。 (1)小红长得... 这张图片里的题哪个不是比喻句?谢谢你们的回答 怎么注册新的 小红像妈妈一样漂亮是比喻句吗 小红长的好像她妈妈。是什么句? 北京12个区域将开展三轮核酸筛查,北京的疫情情况怎么样了? 想要如何才能在社会中立足的话,必须要尔虞我诈,勾心斗角吗。1 如何查找药监局招聘信息?想要进入药监局需要参加什么考试?要准备... 华佗巧治病的问题.急~!!!!!!!!176 游戏王sd09一盒多少钱2 华佗的故事有哪些 华佗巧治的故事10 9怎么用奇游电脑端给主机加速2 宇智波带土的轮回眼是怎么来的189 带土为什么会有轮回眼啊?37 厦门柬单点是诈骗集团吗 长安悦翔汽车空调没有风 9怎么用奇游电脑端给主机加速2 温峥嵘和韩雪是同一个人吗?2 工作对乙肝小三阳有影响吗?16 温峥嵘VS韩雪22 温峥嵘和韩雪谁更漂亮20 韩雪 温峥嵘 郭珍霓 三个女星长的好像都一样5 关于 java中string类不能用== 比较问题!大神进!5 肉怎么用生粉腌制97 从华佗治病中明白了什么道理?49 游戏王,一般玩日正实卡的人,都会投入多少钱?(包括卡组什么的...5 华佗巧治病23