(1)
public class Test2{   public static void main(String[] args){
    
      byte b = (byte)01101001;
      System.out.println(b);
   }
输出结果为1,这个结果是怎么来的啊?byte类型到底是怎么样的啊?不怎么理解的啊???

解决方案 »

  1.   

    顺便问一下Map接口有toString()方法吗?
    public static void main(String[] args){
    Map<String,Date> mp = new HashMap<String, Date>();
    mp.put("a", new Date());
    mp.put("b", new Date());
    mp.put("c", new Date());
    mp.put("d", new Date());
    System.out.println(mp);

    只有TOString()方法重写了,才能调用HashMap的toString()方法,但是Map接口不是没有toString()方 法吗?哪来的重写呀??
      

  2.   

    有一个类叫Object 他是认识java类的超类。  他有几个方法,比如hashcode()  equals() toString()....Map的toString()就继承自他
      

  3.   

    1
    byte b = (byte)01101001;//这个表示8进制,其2进制为(1001000001000000001)
                               //该值超出了byte范围,被自动截取低8位,为00000001
                            //所以结果是12
    Map<String,Date> mp = new HashMap<String, Date>();
                          //mp指向的是HashMap的实例,所以调用的是HashMap的toString方法
      

  4.   

    java的始祖Object呵呵所以任何类都有toString()方法.至于你第一个问题我给你写段程序你就明白了看看跟你的有什么地方不一样吧自己在测试一下public class Test { /**
     * @param args
     */
    public static void main(String[] args) {

    Byte b = (byte)01101003;
      System.out.println(b.byteValue());  }}
      

  5.   

    不好意思刚我有点误解了01101001其实是一个int类型的值,向下装换类型的时候可能失真了.
      

  6.   

    01101001是int类型的,而这个数,如果8位表示-->00000001,其余省略,当然也就输出1,其实是调用Byte的toString方法,如果没记错的话,应该是 return String.valueOf((int)value); 
      

  7.   

    1、01101001 是一个八 进制数是 000100 10000010 00000001
    但是在Java中常数默认是int类型,占四个字节其中最高位是符号位 因此该数在Java中表示为
    0  0000000 00000100 10000010 00000001 红色为补得零
    Java 中的byte 占8位 ,因此在自动转型的时候 取最后的 八位: 0 0000001 最高位为符号位这里为0 表示正数,后面七位表示值为1 2、Java中所有对象都是Object的子类,Object对象有一个toStrting() 方法,如果不为对象重写,则会调用继承自Object的 toString方法,在这里是指的对象。
      

  8.   

    但是Map不是接口吗,又不是类,也可继承Object类的toString()方法吗
      

  9.   

    byte b = (byte)01101001;//这个表示8进制,为什么这个表示八进制 啊??
      

  10.   

    java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127是负2的7次方到2的7次方
    如果满到了128就会出现-128如果是129就是-127它会一直这样循环下去
      

  11.   

    01101001 是一个八 进制数,在Java中常数默认是int类型,Java 中的byte 占8位 ,因此在自动转型的时候 取最后的 八位: 0 0000001
    最高位为符号位这里为0 表示正数,后面七位表示值为1  直接打印对象,其实是调用此对象的toString()方法,只是没有写出来罢了,所以你会看到答应出来的是1
      

  12.   

    接口是一个类,只是一个抽象的没有提供任何具体的实现,没有任何方法体,提供了形式但未提供任何具体的实现,Object是所有类的爷爷的爷爷,当然可以从它继承啊!!!
    还有那个进制的问题,以0开头的表示八进制,以0X开头表示十六进制