1.==比较的是变量自己,对应引用变量来讲,比较的是引用地址值,而非引用指向的对象;java
2.字符串和基本类型包装类都是引用类型mysql
3.两个字符串比较只能使用equals()方法sql
String s="s"; String ss="s"; String sss=new String("s"); System.out.println(s==ss);//true,s和ss是常量池中的同一个地址 System.out.println(s==sss);//sss不在常量池中
4.两个基本类型包装类比较、基本类型与包装类比较数据库
Integer a = new Integer(1); Integer aa = new Integer(1); System.out.println(a==aa);//false ,包装类不该该使用==比较 int c=1; System.out.println(a==c);//true,a在堆中,c在常量池中,a被自动拆箱为基本类型 Short b = new Short((short) 1); System.out.println(a.equals(b));//false,不一样类型的包装类使用equals比较不会报错 //System.out.println(a==b); 不一样类型的包装类不能使用==比较,会报错 byte d=1; System.out.println(c==d);//不一样类型的基本类型能够比较,会自动转换类型
总结:字符串全都使用equals比较,基本类型和包装类之间使用==和equals均可以,两个包装类型使用equals比较。安全
mysql+mybatis查询数据库,若是某个字段在数据库中为null,则返回的数据中没有该字段mybatis
从mybatis返回的结果(实体类,或集合)中去取该字段,获得的是null;指针
若是想使用equals方法判断该字段是否为空字符串或其余,使用"".equals(目标字符串)会更安全,避免空指针异常。code