1.基本数据类型
int num1=10;
int num2=10;
System.out.println(num1==num2);
2.引用数据类型
2.1String字符串
String str=“abc” 表示是一个字符串常量,存放在常量池中,属于方法区
1.当执行String str1=“abc”;时,会在常量池中查找"abc"字符串,
如果没有找到,将字符串放入字符串常量池中,而在内存中开辟一块名为str1的空间存放"abc"的引用地址
2.当执行String str2="abc"时,会在常量池中查找,找到以后会把常量池中"abc"字符串的引用地址
赋值给str2
3.所以str1和str2存放都是字符串常量池中的同一个引用
4.equals在String类中重写过,用来比较两个字符串的实际内容是否相同
String str1="abc";
String str2="abc";
System.out.println(str1==str2);//true
System.out.println(str1.equals(str2));//true
2.2 new String(“abc”)
String s1=new String("abc");
String s2=new String("abc");
System.out.println(s1==s2);// false
System.out.println(s1.equals(s2));//true
2.3 其他引用类型
Person p1=new Person("张三", 20);
Person p2=new Person("张三", 21);
System.out.println(p1==p2);// false
Person p3=null;
System.out.println(p1.equals(p2));//false
int number=5;
Integer it1=number;
Integer it2=5;
System.out.println(it1.equals(it2));