java吧 关注:1,302,860贴子:12,856,348
  • 16回复贴,共1

几道笔试题

只看楼主收藏回复

!!!!!!!!!!!!!!!!!!!!!!!!!!!不在机器上跑,看看能做对不!!!!!!!!!!!!!!!!!!!!!!!!
我已惨跪
程序有错吗?错在哪?把错的行改正,输出结果?
char c='a';
Character cc='a';
byte b='a';//1
Byte bb=97;//2
Byte bb1='a';//3
Byte bb2=new Byte('a');//4
System.out.println(bb==b);//5
System.out.println(bb1==bb2);//6
System.out.println(bb1==bb);//7
System.out.println(cc==(Character)bb2);//8


IP属地:浙江1楼2014-12-02 15:59回复
    二楼留着


    IP属地:浙江2楼2014-12-02 16:00
    收起回复
      2026-05-15 10:06:13
      广告
      不感兴趣
      开通SVIP免广告
      Character cc='a'; 跟第四行 不对吧 new那儿去了


      IP属地:北京3楼2014-12-02 16:01
      收起回复
        第二道题:结果有错吗,错在哪?没错输出结果?
        byte b=(byte) 128;
        byte b1=(byte) -129;
        System.out.println(b);
        System.out.println(b1);


        IP属地:浙江4楼2014-12-02 16:05
        回复
          我觉得没错
          false
          false
          false


          IP属地:广东5楼2014-12-02 16:14
          收起回复
            第二题两个赋值都错了,超出范围
            128的二进制数是1000 0000,被识别成了负数,先取反码0111 1111,再加1得1000 0000,-128。
            第一个输出-128
            -129是 1XXXX1000 0001,用XXX是因为不知道超出后第几位才是符号位。截取后面八位1000 0001,取反得0111 1110,加1得0111 1111,结果是127
            第二个输出127


            IP属地:广东8楼2014-12-02 16:32
            收起回复
              代码貌似没错。


              IP属地:广东9楼2014-12-02 16:58
              回复