"1"=="1"?true还是false我一直的理解就是 一个引号包含的串 便是一个对象 不管他引号中的值是否相等 所以题目的代码中 我认为是两个对象 所以不相等 但是在书上看 说相等 随后在电脑上试了
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/21 10:14:57
"1"=="1"?true还是false我一直的理解就是 一个引号包含的串 便是一个对象 不管他引号中的值是否相等 所以题目的代码中 我认为是两个对象 所以不相等 但是在书上看 说相等 随后在电脑上试了
"1"=="1"?true还是false
我一直的理解就是 一个引号包含的串 便是一个对象 不管他引号中的值是否相等 所以题目的代码中 我认为是两个对象 所以不相等 但是在书上看 说相等 随后在电脑上试了一下 也是相等 很是无奈 请达人们给解释下
zhouzuorong 我想你的想法 可能是不正确的 hashCode相同的不一定是同一个对象 虽然hashCode的目的是想这样的 但是假命中总是避免不了
yida1313 不管等号两边写的是“1”还是变量名 他比较都是对象 不过话说回来 字符串的比较就是对象的比较 字符串本身就是对象
以及其他各位 我之前一直以为 只有除String类型意外 其他的基本类型 才会存在 常量池 原来String也有啊 ··只是有时候 从里面取 有时候创建新的对象 有很直观的 有很精简的 都对我有很多帮助 最佳答案让我无法取舍 投票也不好使 我一直认为民主的就是垃圾的 因为投票的每个人差别很大 但确在投票中确拥有相等的权利 所以我讨厌所谓的民i主
不如这样吧 我再加点分 这个问题的输赢很直观的
请列举出 当常量池中存在“1”的时候
1 什么情况下 1使用常量池中的"1"
2 什么情况下 自己创建“1”对象
第一种情况列出一个得2分 第二种情况列出一个得1分 这样谁分多就选谁做最佳答案吧 我想我的问题补充次数已经到最高了
"1"=="1"?true还是false我一直的理解就是 一个引号包含的串 便是一个对象 不管他引号中的值是否相等 所以题目的代码中 我认为是两个对象 所以不相等 但是在书上看 说相等 随后在电脑上试了
这个好多人回答呀.
我只想补充几句.
由于JVM的共用常量池而导致的 == 返回true的情况,这个不是永远正确的情况.
由于 == 仅是返回了两个字符串对象引用是否指向同一个地方,而各种JVM出于性能优化、节省内存等需求,都可能尽量重用字符串常量,或者根本不重用字符串常量.
因此,即使"1" == "1"也可能在某些特殊的JVM下返回false.
在这里讨论使用常量池的"1"的情况没有意义,除非指定了某个特定厂家的特定版本的JVM,才能给出准确答案.不过如此限定就失去了Java的特性.
因此,实际编程时,请仅使用equals来判断字符串,任何时候都不要用==.