解决方案 »

  1.   

    java基本数据类型分三种:字符char,布尔boolean,数值(整形,浮点型),其中数值类型的都是有符号的,但char是没有符号的,范围0-2^16-1,可能就是这个原因导致byte不能直接转换为char。另外,byte可以自动转换为short型,似乎也说明了这一点。。
      

  2.   

    在李刚所著《Java疯狂讲义》48页中写到:
    基本类型包括boolean类型和数值类型。数值类型有整数类型和浮点型。整数类型包括byte,short,int,long,char。浮点类型包括float和double。
    提示中标注:有的时候也把char类型称为字符型,实际上字符型也是一种整数类型。
    我可能过多的想到字符型也是一种整数类型这句话了。朋友提到的符号之分,我觉得是对的。
      

  3.   


    符号是关键。对于byte来说,第一位是符号位。如果是byte b = -1;那么转换用char是无法表示的,因为char是无符号的。
      

  4.   

    不是符号的问题。转换必须是同性质的类型之间。整形,浮点型,都是数值。字符是有字符集的,这种转换在事务上没有意义。java语言设计的目标是做项目,而不是玩技术。
      

  5.   

    在李刚所著《Java疯狂讲义》48页中写到:
    基本类型包括boolean类型和数值类型。数值类型有整数类型和浮点型。整数类型包括byte,short,int,long,char。浮点类型包括float和double。
    提示中标注:有的时候也把char类型称为字符型,实际上字符型也是一种整数类型。
    请注意提示中的说明,char类型实际上是整形的一种类型,char能自动转换成int也说明了这个问题。所以byte不能转换为char类型应该是符号问题。
    至于项目重要,还是技术重要,不在讨论范围之内。
      

  6.   

    在李刚所著《Java疯狂讲义》48页中写到:
    基本类型包括boolean类型和数值类型。数值类型有整数类型和浮点型。整数类型包括byte,short,int,long,char。浮点类型包括float和double。
    提示中标注:有的时候也把char类型称为字符型,实际上字符型也是一种整数类型。
    请注意提示中的说明,char类型实际上是整形的一种类型,char能自动转换成int也说明了这个问题。所以byte不能转换为char类型应该是符号问题。
    至于项目重要,还是技术重要,不在讨论范围之内。
    从技术上讲是这样的。李刚去讲C++比较合适,这样只从技术层面讲java,会抹掉java的灵魂。《Java编程思想》指出要从字符、布尔、数值、原始二进制数据的角度理解java对基本类型的设计意图。
    byte是原始二进制数据,一个字节,8个位。byte不一定是整数,完全可能是一个浮点数的一部分。《Java编程思想》指出byte转成别的要根据事务,否则......
      

  7.   

    从技术上讲是这样的。李刚去讲C++比较合适,这样只从技术层面讲java,会抹掉java的灵魂。《Java编程思想》指出要从字符、布尔、数值、原始二进制数据的角度理解java对基本类型的设计意图。
    byte是原始二进制数据,一个字节,8个位。byte不一定是整数,完全可能是一个浮点数的一部分。《Java编程思想》指出byte转成别的要根据事务,否则......
    作为菜鸟,我会读到《Java编程思想》和《JVM虚拟机》的,谢谢
    想问一下,Java的多维数组,最多能表示多少维呢?
      

  8.   

    作为菜鸟,我会读到《Java编程思想》和《JVM虚拟机》的,谢谢
    想问一下,Java的多维数组,最多能表示多少维呢?
    远超出内存大小。
    byte[] bs = new byte[1000*1000*1000*100];
    会抛出内存不足的异常。
      

  9.   

    远超出内存大小。
    byte[] bs = new byte[1000*1000*1000*100];
    会抛出内存不足的异常。
    不好意思,最近刚工作,有点忙,这么长时间才回你的帖子。
    我想问的是:能表示多少维的数组,而不是数组的最大空间。在C,C++中会根据硬件的不同而有不同表现。但是考虑到Java是跨平台的,这些应该是一定的。
    比如常用的int类型可以表示多少维,255维?那么最小的byte呢?用那种方式可以计算得出呢?
      

  10.   

    byte 是有符号的   
    char 是0-65535 的无符号整数
      

  11.   

    Java中byte、short、char三种类型的优先级是相同的,相同优先级之间是不能进行自动转换的,只能将低类型自动转换为高类型
      

  12.   

    在JSL5.1.4中: Widening and Narrowing Primitive Conversions中涉及到了byte to char解释:First, the byte is converted to an int via widening primitive conversion, and then the resulting int is converted to a char by narrowing primitive conversion.
      

  13.   

    btye只能是 127到-128,
    char可就大了....不能自动转,
    不过你手动可以转啊.char[] ch = "abcde".toCharArray();
    if (ch[0] >= 'a' && ch[0] <= 'z') {
    ch[0] = (char) (ch[0] - 32);
    }
    相加减都可以的,但是不能超过byte.