对于基本数据类型来说,==
比较的是值
对于引用数据类型来说,==
比较的是对象的内存地址
equals()方法比较的是地址值
equals()不能比较基本数据类型
但是要注意String,Integer等中的equals()方法,hashcode()方法,的被重写过,所以比较的是值
Integer等涉及自动拆箱和自动装箱的也要注意,像是在[-128,127],==比较的是值,再此之外比较的是地址
int a=1;
int b=1;
String c="123";
quote f=new quote("qwe");
quote g=new quote("qwe");
String d=new String("123");
String e=new String("123");
Integer h=1;
Integer i=1;
Integer j=128;
Integer k=128;
System.out.println("基本数据类型用==比较");
System.out.println(a==b);
System.out.println(c==d);
System.out.println("引用类型使用==和equal()比较");
System.out.println(f==g);
System.out.println(f.equals(g));
System.out.println("String类型用==和equal()比较");
System.out.println(d==e);
System.out.println(d.equals(e));
System.out.println(c.equals(d));
System.out.println("Integer在[-128,127]");
System.out.println(h==i);
System.out.println(h.equals(i));
System.out.println("Integer不在[-128,127]");
System.out.println(j==k);
System.out.println(j.equals(k));
基本数据类型用==比较
true
false
引用类型使用==和equal()比较
false
false
String类型用==和equal()比较
false
true
true
Integer在[-128,127]
true
true
Integer不在[-128,127]
false
true