`

whats the difference between .equals and ==?

    博客分类:
  • java
阅读更多
Java的数据类型:
  • 分类简单数据类型
  • 复合数据类型


简单数据类型:简单数据类型是不能再简化的、内置的数据类型,由编程语言定义,表示真实的数字、字符和整数。
复合数据类型:由简单数据类型的组合形成的更大、更复杂的数据类型。例如类、接口和数字。

==操作比较的是两个变量的值是否相等,对于引用变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作便是的两个变量是否是同一个对象的引用,即堆中的内容是否相同。


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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics