当项目中使用Long类型作为id时,判断两个id是否相等不要用"==",使用equals进行判断1. 首先说==和equals()方法的区别:==号在比较基本数据类型,比如int作比较的时候比较的是值。而当去比较两个对象的时候,便成了比较两个对象的地址,在开始的时候也说Long类型是long的包装类因此当用==比较的时候便会发生错误。equals()方法存在于Object类当中,Object是所有类的直接和间接父类,Object类当中的equals源码当中写了,当没有重写equals()方法时,equals()和==的效果是一样的,但是像Long这种包装类都是重写了equals()方法的。2. 怎么去比较两个Long类型的数据:第一种方法使用Long类型的longValue()方法,这个方法作用是:取到Long类型当中的值,然后我们就可以正常的用==去比较,例如:Long a = new Long(345); Long b = new Long(345); System.out.println(a.longValue()==b.longValue())第二种方法使用Long类型的equals()方法,这个方法我们可以去查看一下源码,源码如下:public boolean equals(Object obj) { if (obj instanceof Long) { return value == ((Long)obj).longValue(); } return false; }查看源码我们可以发现,Long类型的equals()方法当中,也调用longValue()方法然后再去比较大小。因此在使用过程当中我们可以采用这两种方式去进行比较Long对象(类型)的大小。