string.toUppercase() created a new object in heap or string pool

半世苍凉 提交于 2019-12-06 14:12:24

Java automatically interns String literals. check this answer, but when you use toUpperCase() it creates a new instance of the string, using new String(), that's why both the objects are different.

The "==" operator compares the value of two object references to check whether they refer to the same String instance, so in this case toUpperCase() creates a new instance of String that's why it return false.

On the other hand equals() method compares the "value" inside String instances irrespective of the two object references refer to the same String instance or not, and so it returns true.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!