1. java中的布尔值占几个字节,是不是与jvm有关 ?2. 为何返回值类型不能作为方法重载的区别依据  ?

解决方案 »

  1.   

    布尔占2个字节java编译器无法根据方法名判断该调用哪一个方法,必须通过入参判断
      

  2.   

    java中的boolean类型数据有两种取值true和false,在机器中只占1位。(课本中的原话)
      

  3.   

    更正一下,关于布尔值There   are   no   casts   between   integer   types   and   the   boolean   type.   Some   languages,   most   notably   C   and   C++,   allow   numeric   values   to   be   interpreted   as   logical   values.   This   is   not   permitted   in   the   Java   programming   language;   When   a   boolean   type   is   required,   only   boolean   values   can   be   used.  官方的原话也并没有指出boolean值到底占多大空间,总之Java语言中的布尔是一种特殊的数据类型,它与其他数据类型之间不能相互赋值很多参考书上明确指出boolean占一位:0,1(如yiyi2007所说),不过官方似乎并没有明确的界定
      

  4.   

    0,1不能赋给boolean呢~~
    这2个问题Thinking in Java里有提到~
      

  5.   

    第二个问题,看下面的解释
    主要不是与定义时有关,是与方法调用的机制有关http://blog.csdn.net/bryantd/archive/2006/03/12/622278.aspx
      

  6.   

    其实我觉得 boolean 可能会被设置为共享
    反正就2种
    -128到127的Integer都被设置为共享比较一下 Boolean 就知道了
      

  7.   

    boolean 占一个字节  java语言的所有变量类型无论在什么操作系统中都占有相同的字节数,这也正是java跨平台的原因之一第二个问题,java虚拟机在执行方法是是根据方法的名找方法,然后在根据方法的参数类型和个数来确定具体的方法,java虚拟机只是进行这些操作,所以返回类型不能作为重载的依据