代码
String a="1";
String b="1";
String f=new String("1");
StringBean stringBean=new StringBean();
stringBean.setV("1");
StringBean stringBean1=new StringBean();
stringBean1.setV(String.valueOf(1));
boolean c= a.equals(b);
boolean d=a==b;
boolean g=a==f;
boolean h=stringBean.getV() == "1";
boolean i=stringBean1.getV() =="1";
System.out.println("a.equals(b) "+c);
System.out.println("a==b "+d);
System.out.println("a==f "+g);
System.out.println("stringBean.getV() == \"1\" "+h);
System.out.println("stringBean1.getV() ==\"1\""+i);
运行结果
a.equals(b) true
a==b true
a==f false
stringBean.getV() == "1" true
stringBean1.getV() =="1"false
不注意的坑
String.valueOf(1)源码分析
最终是 new String()==“1” false 比较