1. Java中数据类型分类
1.1 基本数据类型
又称为原始数据类型,byte,short,char,int,long,float,double,boolean,他们之间的比较应该使用(==),比较的是他们的值。
1.2 复合数据类型
当复合数据类型用(==)进行比较,比较的是他们在内存中的存放地址。
当复合数据类型之间进行equals比较时,这个方法的初始行为是比较对象在堆内存中的地址,但在一些诸如String,Integer,Date类中把Object中的这个方法覆盖了,作用被覆盖为比较内容是否相同。
2. String类的讨论
String s1 = "Hello";
String s2 = "Hello";
if (s1 == s2){
System.out.println("s1 == s2");
}else{
System.out.println("s1 != s2");
}
输出:s1 == s2
说明:双等号在进行复合数据类型比较时,比较的是内存中的存放地址。因此s1与s2引用同一个String对象。
String s1 = "Hello";
String s2 = new String("Hello");
if (s1 == s2){
System.out.println("s1 == s2