基本类型:byte、short、int、long、float、double、boolean、char
== 比较的是值是否相同
引用类型:String、Integer、Double、Float ------
== 比较的是引用(内存中的下标)是否相同
equals 比较的是值是否相同
举例:
int a = 1; int b = 1;
if(a == b){ 条件成立,比较的值,都是1相等}
String c = "zhangsan"; String d = "zhangsan"; String e = new String("zhangsan");
if(c.equlas(d)){ 条件成立,它们的值都是zhangsan是相等的 }
if(c == d){ 条件成立,它们都是同一个引用 }
if(c.equals(e)){ 条件成立,是值比较,是同等的 }
if(c == e){ 条件不成立,比较的是引用,e自己new创建了一个,与c,d不是同一个引用}
补充:
1.基本数据类型是无法使用equals方式的
2.开发中实体的定义一般为引用数据类型比如 Integer,是可以用equals的
3.equals实际上和==是一样的,比较的都是引用,之所以比较的是内容,是因为重写了equals方式,把他变成了值的比较
4.包装类型都是引用类型
5.new 这一步就是创建了一个新的对象,所以引用是不会相同的