我是Java初学者,请问这一段代码为什么输出false?怎么改?

2024-11-18 15:50:40
推荐回答(2个)
回答1:

字符串引用类型(对象),它的储存方式是堆栈的形式,使用==比较对于引用了类型就是比较的对象保存地址,他们的地址肯定是不一样的所以返回false,String有个比较是否一致的方法equals(),如果比较字符串应该使用nam2.equals(a),但是这个比较必须保证nam2是已经初始化的,不然会报错

回答2:

在“java”中"=="比较的是地址,判断相等应该用equals()方法
其次,String a = "hhh"; a是存在常量池当中,而nam2是存在堆中的,所以他们的地址值是不相等的