问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java Long类型 为什么不能直接比较 直接比较相同的值是false?求高手解答

发布网友 发布时间:2022-05-13 20:47

我来回答

4个回答

热心网友 时间:2023-10-27 08:45

你说的 Long 类型指的是 java.util.Lang 对象吧,而不是基本类型 long (注意大小写)
Java中如果使用 == 双等于比较对象,等于比较的是两个对象的内存地址,也就是比较两个对象是否是同一个对象
如果比较两个Long对象值是否相等,则不可以使用双等号进行比较,可以采用如下方式:
1. 使用 equals 方法
Long a = new Long(3);
Long b = new Long(3);
System.out.println(a.equals(b));
2. 使用 Long 类型中的 longValue() 方法进行比较,如

Long a = new Long(3);
Long b = new Long(3);
System.out.println(a.longValue()==b.longValue());

热心网友 时间:2023-10-27 08:45

public static void main(String[] args) {
    Long id1 = 123L;
    Long id2 = 123L;
    System.out.println(id1 == id2);//true

    Long id3 = 128L;
    Long id4 = 128L;
    System.out.println(id3 == id4);//竟然是false
}

原因就是:原来是因为Long中有一个静态的内部类LongCache,专门用于缓存-128至127之间的值,一共256个元素; 

== 本来就是比较内存地址,缓存了的256个元素,内存地址相同返回是ture;之外的没有缓存是false; 

对象比较要习惯性的用equal免得有坑

热心网友 时间:2023-10-27 08:46

“==”比较两个变量本身的值,即两个对象在内存中的首地址。
“equals()”比较字符串中所包含的内容是否相同。

热心网友 时间:2023-10-27 08:46

谁说的,两个Long类型不能比较?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见和同性发生关糸了 梦见和同性朋友发生亲密关系 学生党如何科学护肤? 学生党该怎么基础护肤? 有什么美容护肤的技巧适合学生党? 怎么@全部成员啊? 新洲摩尔城一楼小吃租金多少 武汉王家湾有哪些广场 你好 请问 晚上6点开始 学瑜伽 可以吗? 因为我想在下班时间去 锻炼锻 ... 电脑联网有哪些条件台式电脑无线上网需要具备哪些条件 Java中两个Long对象如何比较是否相等 绝食减肥瘦下来的再跑步锻炼会不会在瘦点 我45岁了,断食减肥有效吗?对身体有害吗? 借去花还清了。app还是显示逾期 在掌阅里面看的,魂穿,玄幻小说女主叫夏侯歌小说名叫什么? 煲汤做法 夏侯奕是什么小说的人物 有本古言小说男主叫夏侯渊,是什么小说名字? 找一部小说,是重生系列的,男主好像姓夏侯 借钱花app现在是不是不能用了 有一本古代小说,女主叫涟漪男主叫夏侯恪的小说叫什么 有姜娴 夏侯弘博的小说叫什么名字 求小说女主重生,男主是侯府世子,但其实是皇上的儿子,好像叫夏侯什么,不羁,把老侯爷扔进过青楼,送过 夏侯轻衣是什么小说? 夏侯赏乐在那个小说里 一本古代言情小说,女主穿越成王妃,男主姓夏侯,一开始是个九王爷,后来是皇帝 穿越小说里夏侯夏擎的是什么小说 一本古代言情小说有个情节一个男的叫夏侯什么的人让女主取悦他 求去书名 一本小说 女主穿越回古代 因三大家族的原因*嫁给 蝙蝠宫的主人 男主叫夏侯什么 书名好像叫倾国 一本很久前的穿越小说,男主姓夏侯,女主是穿越的,开头好像是破庙, love me 的歌词 海尔空调这种一个小时耗电会有多少 最近看java基础,发现数值不一样的long和double类型的数据比较的结果居然会相同,请高手答疑! 牡丹江到金华k554列车这一路上经过长江跟黄河吗? 在类设计中如何实现对象的比较是否相等的逻辑?==与它的区别是什么? 大一java简答题_百度问一问 c++中两个long型不能使用==吗 java中如何判断两个变量相等 objective c语言中的long与long long类型最大最小值分别都是相同的吗? love me歌词 Long和Integer分别在什么时候用 《love me》这首歌的中文歌词是什么? K554到南京是终点吗 java中判断两个数组是否相等的方法是什么? 求贾斯汀·比伯《love me》中文歌词 love me的歌曲歌词 equals() 和 == 分别比较的是什么? 贾斯汀比伯,love me 的歌词 justin bieber《love me》歌词双语 k554次列车15车厢人数,最好有座位分布图 贾斯汀·比伯love me 的歌词