通常我们在Java中比较两个变量是否相同都会使用 == 运算符,而比较两个对象他们的值是否相同则使用equals()。然而 == 和 equals() 之间有什么区别呢?我们用String来做个试验,代码如下:
编译运行以上代码,控制台打印出 str1=str2 .但是有一点需要注意在定义str1和str2时Java编译器做了内存优化,让str1 和 str2 两个变量指向同一个 String 对象。从而导致很多人认为String类型可以用 == 做比较。
我们再来看一段代码
编译运行以上代码,控制台打印出 str1!=str2 , 所以我们在比较两个对象的值时要用equals(),代码如下:
编译运行以上代码,控制台打印出 str1=str2 。