Java字符串、包裝類的比較問題

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

相關文章
相關標籤/搜索