在理解 ==与quals的具体区别是先理解基本数据类型和引用数据类型。
1、基本数据类型:byte,short,char,int,long,float,double,boolean。他们之间使用(==)比较他们的值。
2、引用数据类型:除了基本数据类型其他都是如String,数组、接口、类。当他们用(==)进行比较的时候,比较的是存放的内存地址。
String a="abc";
String b="abc"; //a和b是常量所以指向同一个内存空间
String c=new String("abc"); //重新开辟一个空间存字符串abc
System.out.println(a==b); //true
System.out.println(a.equals(b)); //true
System.out.println(a==c); //false
System.out.println(a.equals(c)); //true
具体比较:
==:比较的是两个字符串内存地址的数值是否相等,属于数值比较。
equals():比较的是两个字符串的内容,属于内容比较。一般引用类型需要自己改写equals方法。