A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴在强 中级黑马   /  2013-2-5 10:29  /  1096 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 2013-2-15 20:22 编辑

package cn.test.hello;
public class IntegerTest {
/**
  * @param args
  */
public static void main(String[] args) {
  GetInteger ger = GetInteger.getInstance();
  ger.integerTest();
}}
class GetInteger {
private GetInteger() {
}
private static GetInteger in = new GetInteger();
public static GetInteger getInstance() {
  return in;
}
public void integerTest() {
  Integer a = 130;
  Integer b = null, sum;
  for (int i = 100; i <= 140; i++) {
   b = i++;
   System.out.println("-------" + b);
  }
  if (a == b) {
   sum = a + b;
  }else{
   System.out.println("它们没有相等------------");
  }
}
}

按道理说它们不应该输出"它们没有相等",我检查了几篇,还是找不到问题,谁能告诉一下我!

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1

查看全部评分

3 个回复

倒序浏览
朋友,你要清楚,肯定是会输出“它们没有相等”的。a,b两个Integer变量,你对他们判定(a==b),它们肯定是不相同的。看来你还不太明白“==”的含义。只要两个变量指向同一个对象时,才返回true。而且你的代码有点乱。a=130,b=140,即使是int基本类型,也还是会输出“它们没有相等”。
回复 使用道具 举报
public class IntegerTest {
        /**
         * @param args
         */
        public static void main(String[] args) {
                Integer a = 130;
                Integer b = null, sum;
                for (int i = 100; i <= 131; i++) {//我把140改成了131,这样使b最后为130
                        b = i++;
                        System.out.println("-------" + b);
                }
                //正确地对Integer判等应该采用如下形式
                if (a.intValue() == b.intValue()) {
                        sum = a + b;
               
                } else {
                        System.out.println(b);
                        System.out.println("它们没有相等------------");
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马