咳咳,AssertTrue(IntegerA==IntegerB)和AssertEquals(A,B)不同呢 junit4 assertequals

所以之前遇到过String A和String B的比较要用到equals
现在发现Integer A和Integer B的比较也要用equals
原因:除了java中的基本数据类型short,int,long,byte,boolean,char,float,double其他的都是对象(这句话有错么- -?)(虽然看到的是Integer extends Number)(Numberimplements java.io.Serializable)
所以Integer在==比较的时候实际也是进行引用比较而不是数值比较。
因此下面的一段代码- -
Integer A =10;Integer B = 10;Integer C = new Integer(10);Integer D = new Integer(10);Integer E = A;Integer F = C;System.out.println(A==B);System.out.println(C==D);System.out.println(E==A);System.out.println(F==C);System.out.println(A.equals(B));System.out.println(C.equals(D));System.out.println(E.equals(A));System.out.println(F.equals(C));
结果是truefalsetruetruetruetruetruetrue
所以...在进行Integer A = 10;的时候实际上是做了Integer temp = new Integer(10);Integer A = temp;
在进行Integer B = 10;的时候因为已经存在Integer temp;因此直接进行Integer = temp;
而equals实际上是做了: public booleanequals(Object obj) {if (obj instanceof Integer){//要判断值类型啊少年,面试的时候就考这种东西的事情我会随便乱说么- - return value ==((Integer)obj).intValue();}return false;}

所以是进行值的比较(就是这样的- - 很诚恳)。
对的,之前忘记说了,(int)C==(int)D这样也可以的 - -
你妹的这种问题当初在学编程的时候就应该知道了好吗!
发一张图- -


情绪波动太大了。。。

  

爱华网本文地址 » http://www.413yy.cn/a/25101010/31409.html

更多阅读

转载 基地组织,塔利班和本拉登这三者什么关系 塔利班 本拉登

原文地址:基地组织,塔利班和本拉登这三者什么关系作者:本拉登本拉登创建了基地组织,可以理解为一个领袖创建了一个党,党领导军队,军队就是塔利班,军队的领导人就是奥马尔,所以在基地组织中本拉登是一号,奥马尔是二号。1988年,本·拉丹在阿富

如何自动关机,命令的启动和取消 取消自动关机命令

如何自动关机,命令的启动和取消——简介夜里看电影,双眼迷离睁不开,不想去关机,有个自动关机多好啊!下载资料电影音乐,有需要出门或者夜深需要休息,估计一些下载时间,设置个定时自动关机吧!下班了,资料没传完,不要紧,设置个定时自动关机,放心下

声明:《咳咳,AssertTrue(IntegerA==IntegerB)和AssertEquals(A,B)不同呢 junit4 assertequals》为网友独倾分享!如侵犯到您的合法权益请联系我们删除