前情回顾: Long uid1=xxx; Long uid2=xxx; if(uid1==uid2){//这的结果会永远都是false } 为嘛呢? 因为==比较的是堆内存地址,每次new一个对象,都会在堆中新开辟一个空间,所以两个对象的内存地址值不同 解决 用equals就好了,因为equals比较的是对象的内容 if(uid1.equals(uid2)){//这的结果会永远都是false } 哪些情景下不能用==比较? 非基本数据类型的变量,如Long、String……