Java-String==和equal 比较

代码

        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

不注意的坑

Java-String==和equal 比较

String.valueOf(1)源码分析

Java-String==和equal 比较
Java-String==和equal 比较

最终是 new String()==“1” false 比较