java吧 关注:1,296,469贴子:12,833,362
  • 23回复贴,共1

一到笔试题

只看楼主收藏回复

char c=['a','b'];
syso(c);
结果为什么不隐式调用tostring
还有syso(c.tostring);
结果怎么是地址
手机写的,谢谢大神了


IP属地:北京来自Android客户端1楼2013-08-28 12:24回复
    自顶


    IP属地:北京来自Android客户端2楼2013-08-28 12:27
    回复
      2026-01-31 22:34:20
      广告
      不感兴趣
      开通SVIP免广告
      char c可以这样?


      IP属地:江西来自手机贴吧3楼2013-08-28 12:33
      收起回复
        你都没重写toString方法,必然返回char[]的toString里面的返回值。。。


        4楼2013-08-28 12:37
        收起回复
          syso(c);输出的是地址吧,结果是哈希值表示类似[@4358923这种


          5楼2013-08-28 13:00
          收起回复
            syso(c)输出会不会类似于自动装箱那样子呢?


            IP属地:广东6楼2013-08-28 13:07
            收起回复
              char[] a= {'a','b' };
              System.out.println(a);调用的是println(char[] x)
              System.out.println(a.toString());a.toString()调用的是Object的toString()


              IP属地:广东7楼2013-08-28 14:17
              回复
                string在底层实际上就是一个char[] 当你直接syso一个char[]时,跟syso一个string的效果是一样的,出来的是abc;而c.toString方法,调用的是数组当中的toString方法,由于数组当中并没有重写toString方法,实际上调用的还是object当中的toString方法,打印出来的是地址信息。


                8楼2013-08-28 15:30
                回复
                  2026-01-31 22:28:20
                  广告
                  不感兴趣
                  开通SVIP免广告
                  楼上正解


                  来自Android客户端9楼2013-08-28 15:50
                  回复
                    char是基本类型,String是引用类型 输出的是地址


                    IP属地:上海10楼2013-08-29 14:56
                    回复