当前位置: 首页 > 知识库问答 >
问题:

为什么在Java中BigInteger.one不等于new BigInteger(“1”)?[副本]

姜俊逸
2023-03-14
System.out.println(new BigInteger("1")==BigInteger.ONE);

共有1个答案

阎建华
2023-03-14

==检查对象是否指向相同的引用,因此如果a=b,则条件a==b。建议只对基元类型执行此操作。

要检查对象的内容是否相同,请使用函数equals(Object otherObject)。例如:

new BigInteger("1").equals(BigInteger.ONE); 

这将返回true,因为这两个对象的内容是相同的。但是使用==将返回false,因为每个对象都有不同的引用。

MyObject object1 = new MyObject(30);
MyObject object2 = object1; //this will make them have the same reference

// This prints true, as they have the same content.
System.out.println(object1.equals(object2));

// This will print true, as they point the same thing, because they have the same reference
System.out.println(object1 == object2);

// We can see they have the same reference because if we edit one's field, 
// the other's one will change too.
object1.number = 10;
System.out.println(object1.number); // prints 10
System.out.println(object2.number); // prints 10 too
 类似资料:
  • 我用libgdx用Java做了一个应用程序。我需要使用屏幕的高度和1080的比例。因此,我创建了一个名为rh的浮点数,它等于gdx.graphics.getheight()/1080 请救命!提前谢了。 p.s:gdx.graphics.getheight()以nr的像素为单位获取屏幕的高度。

  • 问题内容: 为什么在Python中等于?它不应该像那样抛出异常吗? 问题答案: Wikipedia对历史进行了有趣的报道,并对以下内容的价值有不同的看法: 至少从19世纪初期开始,辩论一直在进行。当时,大多数数学家都同意,直到1821年,柯西(Cauchy)以及诸如未定义形式的表格之类的表达式才被列出。在1830年代,利比里(Libri)发表了令人信服的论点,莫比乌斯(Möbius)站在他身边。

  • 最近我发现,如果你把一个双精度或浮点数除以0,你会得到无穷大作为值。我把无穷大转换成每种数据类型(通过编写、等),我发现如果你把它转换成字节或短,它会给出-1的值,但是如果你把它转换成任何其他数据类型,它会给你它的最大值。我想知道为什么会发生这种情况。有人猜到了吗? 这是我用来测试它的代码。 这是控制台给我的:

  • 在2006年的模糊C代码竞赛中。请解释sykes2。c 有一个语句“

  • 问题内容: 我注意到了Collections.sort的规格: 为什么这里需要“ ”?如果是extend ,那么我们是否不能保证a 仍然能够比较两个对象而没有“ ”部分? 换句话说,给出以下代码: 为什么即使不为Collections.sort()的声明指定“ ”,编译器也不足够聪明地知道这是可以的? 问题答案: Josh Bloch今年在Google I / O上做了一个名为“ 有效Java重新