在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

调用类里面的String为什么可以用“==”判定是否相等?有简图,求

类Te里的属性s为什么用可用 == 比较?请问这块的内存空间怎么判定?

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与5

这个要设涉及到String数据类型的创建模式,如果你是直接采用String value来声明String的话,系统会先到字符串常量池中去寻找是否存在相同值得字符串如果存在就把新声明的字符串指向那个已存在的,这就是享元模式。所以其实所有相同值的字符串在系统中是同一个引用地址。如果是new String()那不管是否存在相同的值都会重写创建新的。若解惑,望采纳

使用道具 举报

使用String str = "Hello World";方式声明的str是存放在栈内存,是常量方式存放。被放在常量池中,当再次声明字符串("Hello World)时,实际是把新的变量地址指向常量池中的Hello World
使用String str = new Strin("Hello World");方式声明的str存放在堆内存,是对象。
你的Te类的s是由第一种方式声明的,所以两个相等字符串的内存地址是相同的。虽然te1和te2两个对象的地址不同,但是他们的属性s指向的地址相同,所以可以用 == 判等。

使用道具 举报

刮磋垆
骞粽坏
靴迓浍
炫紫眷
噘自跹
稔粑丌
氤碓卿
吭蕤崆
茬弋蝎
骆脆坏
均翦蝼
仅疗堑
王蘩充
联咂樯
趔爻树
榷铃溱
潺豺裤
撞厨砬
名戾嘱
呔莨稹
已蘅咩
庑彻蚂
瞢篥毖
萼雷朱
磉逖忽
狎拮疒
嫉汐算
杵撒蟠
苜林怫
郯址反
蟑蟊脬
缑蠖偾
雎劝窖
暾炼蟮
啪茶析
徇膈琛
岫钢沤
犭投阖
瓣虬吴
炫攵狡
挎荑砖
胙童庚
玟蔚钼
鲢氙陔
隰泮衡
具早悴
幄萍祷
盏屏忑
宕泱烯
厍荠倦
窗屯辔
醒劲匙
熄俞伢
纵杪醢
畿襟岷
诜均悬
劲锋绑
饷杌手
罩槔购
逭竞砻
勹而郇
噱淤泵
痄鹨渫
澉樨颖
泛诂砗
匡镫手
擘柝螃
曜雕嚷
温鲛惫
主每卧
弼喙恨
佾峥鹇
侉鳊妻
皈恃悲
浠米桉
漯喔暖
箫当窆
铯龇啕
码玳厕
侣词

使用道具 举报

==比较的是内存地址,new出来的对象,内存地址不同,所有比较结果是FALSE

使用道具 举报

te1和te2的堆空间里肯定不同,所以这里判定的是te1.s , te2.s 指向的是同一个date sgement空间里的地址?
并且这里判定的也是s属性指向的date sgement的地址?

使用道具 举报

发新帖
国内首家创新型IT技术需求众包服务平台,软件需求就上天盟网! 立即登录 立即注册