“==”与equals的区别

首先,说说“==”的原理:Java中的“==”比较的是引用变量内存中保存的相应对象的内存首地址,比如:String a = new String("aaaa");String b = new String("aaaa");引用a与对象new String("aaaa");分别占用两个不同的内存,引用a中存储的是对象new String("aaaa");在堆内存中的首地址,同理引用b也是存储对象new String("aaaa");在堆内存中的首地址,由于引用a和引用b所对应的对象在堆内存中占用两个不同的内存,因此if(a==b){}返回的是false;

另外,equals比较的是两个对象的值是否相等,同样以String a = new String("aaaa");String b = new String("aaaa");为例,if(a.equals(b)){}返回的是true,

一般比较两个字符串是否一样都是用equals来进行比较

“==”与equals的区别

“==”与equals的区别