结论1 比较基本数据类型是否相同 用 ”==”
int i=8;
int j=8;
System.out.println(i==j);//比较i和j 的值的内容是否相同
System.out.println(i.equals(j));//equals不能比较两个基本数据类型的值是否相同
结论2 ==比较的是内存地址是否相同,Equals 比较的是字符串的内容是否相同
String s1="hello";
String s2="hello";
System.out.println(s1.equals(s2));//trus--->比较s1和s2的内存值是否相同
System.out.println(s1==s2); //trus--->比较s1和s2的内存指向是否相同
结论3 new String(“xx”)开辟一共新的空间,所以栈会指向堆空间,所以指向不一样
String a1=new String("hello");
String a2=new String("hello");
System.out.println(a1.equals(a2));//true--->比较a1和a2的内存地址是否相同
System.out.println(a1==a2); //false--->比较a1和a2的内容是否相同
结论4 s1指向方法区,s2指向常量池,所以指向不一样
String b1="hello";
String b2=new String("hello");
System.out.println(b1==b2); //false
System.out.println(b1.equals(b2));//true
结论5 s1和s2的指向和内容都不一样,所以都是false
String c1="hello";
String c2=new String("hello");
System.out.println(s1==s2); //true;
System.out.println(c1.equals(c2));//true;
结论6 new 一定开辟新的空间
String d1=new String("hello");
String d2=new String("hello");
System.out.println(d1==d2); //false
System.out.println(d1.equals(d2));//true;