whats the difference between .equals and ==?

1593 ワード

Javaのデータ型:
  • 分類単純データ型
  • 複合データ型
  • 単純なデータ型:単純なデータ型はこれ以上簡略化できない、内蔵されたデータ型であり、プログラミング言語によって定義され、実際の数字、文字、整数を表す.
    複合データ型:単純なデータ型の組合せによって形成されるより大きく、より複雑なデータ型.クラス、インタフェース、数値などです.
    ==2つの変数の値が等しいかどうか、参照変数に対して2つの変数がスタックに格納されているアドレスが同じかどうか、すなわちスタックの内容が同じかどうかを比較します.equals操作は、2つの変数が同じオブジェクトの参照であるかどうか、すなわちスタック内の内容が同じかどうかです.
    1、
    /**
     * Created with IntelliJ IDEA.
     * User: seaeast
     * Date: 25/09/2013
     * Time: 14:53
     */
    public class demo {
    
        public static void main(String [] args){
    
            String a = "1.0";
            String b = "1.0";
            String c = new String("1.0");
    
            System.out.println(a.equals(b));
            System.out.println(a==b);
    
            System.out.println(a.equals(c));
            System.out.println(a==c);
        }
    
    }

    output
    
    true
    true
    true
    false
    

    2、JavaにおけるLong型
    ==を使用して簡単な比較はできません.
    eg.
    public class demo {
        public static void main(String[] args){
            Long userId = 12222222222l;
            Long commentId = 12222222222l;
            System.out.println(userId==commentId);
            System.out.println(userId.equals(commentId));
        }
    }
    

    output:
    
    false
    true

    参考資料:
    http://blog.csdn.net/snowqoo/article/details/2455605
    http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html