A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 袁有福123 中级黑马   /  2015-11-22 22:08  /  460 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么判断字符串相等不能使用 == ?

5 个回复

倒序浏览
String 属于引用数据类型,每当创建一个String,都会在堆内存中分配一块区域来用于存储,而我们通常说的String型变量,只是在栈中的一个引用,它所存储的并不是字符串本身而是堆中的内存地址,==运算符在引用数据类型相互比较时,是直接比较内存地址的,而不是里面的数值,好在String类中为我们已经覆写了equals()方法来比较两个字符串是否相等。


回复 使用道具 举报 2 0
==号比较的是地址值, 且字符串一旦被赋值其值就不能改变,
回复 使用道具 举报
==对比的是两个变量的地址,equal对比的才是值
回复 使用道具 举报
因为会比较地址
回复 使用道具 举报
==只能比较变量的值。
而2个字符串  比较的是地址值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马