equals方法的使用
对于字符串来说,使用“==”运算符和“equals()”方法来比较,其比较方式不同。==运算符用于比较两个变量本身的值,即两个对象在内存中的首地址;equals()方法比较的是两个字符串中所包含的内容是否相同。对于非字符串类型的变量来说,==运算符和equals()方法都是用来比较所指对象在堆内存中的首地址,即比较两个类类型的变量是否指向同一个对象。
例
class Test { int x=1; } public class ep3_1{ public static void main(String[] args){ Test one=new Test(); Test two=new Test(); String a1,a2,a3="abc",a4="abc"; a1=new String("abc"); a2=new String("abc"); System.out.println("a1.equals(a2)"+(a1.equals(a2))); System.out.println("a1==a2"+(a1==a2)); System.out.println("a1.equals(a3)"+(a1.equals(a3))); System.out.println("a1==a3"+(a1==a3)); System.out.println("a3.equals(a4)"+(a1.equals(a4))); System.out.println("a3==a4"+(a3==a4)); System.out.println("one.equals(two)"+(one.equals(two))); System.out.println("one==two"+(one==two)); one=two; System.out.println("赋值后 one.equals(two)"+(one.equals(two))); System.out.println("赋值后 one==two"+(one==two)); } }
执行结果
a1.equals(a2)true a1.equals(a3)true a1==a3false a1==a2false a3.equals(a4)true a3==a4true one.equals(two)false one==twofalse 赋值后 one.equals(two)true 赋值后 one==twotrue