黑马程序员技术交流社区

标题: 关于数据类型 [打印本页]

作者: 邵阳    时间: 2012-6-9 18:25
标题: 关于数据类型
有谁能总结一下,就是基本数据类型里,哪种数据类型跟哪种数据类型在一块,然后被提升,或者不能连一块。   如果其他数据类型也可以总结。   这个真心迷糊啊!
作者: 刘伯阳    时间: 2012-6-9 18:45
本帖最后由 刘伯阳 于 2012-6-9 19:05 编辑

基本数据类型  共四类八种:
数据类型            大小                                               范围                                                                              默认值

byte(字节)           8                                            -128 - 127                                                                                0
shot(短整型)        16                                      -32768 - 32768                                                                            0
int(整型)              32                                -2147483648-2147483648                                                               0
long(长整型)        64                -9233372036854477808-9233372036854477808                                           0        
float(浮点型)       32                      -3.40292347E+38-3.40292347E+38                                                           0.0f
double(双精度)    64         -1.79769313486231570E+308-1.79769313486231570E+308                               0.0d
char(字符型)        16                                   ‘ \u0000 - u\ffff ’                                                                        ‘\u0000 ’
boolean(布尔型)    1                                          true/false                                                                                   false

首先说一下基本数据类型的转换规则:
不需要强制类型转换的规则:
(1)布尔型和其它基本数据类型之间不能相互转换;
(2)byte型可以转换为short、int、、long、float和double;
(3)short可转换为int、long、float和double;
(4)char可转换为int、long、float和double;
(5)int可转换为long、float和double;
(6)long可转换为float和double;
(7)float可转换为double;

自下到上转型是完全不需要强制类型转换。
然后请注意8种数据类型的大小(boolean型特殊除外,我们不谈论它,它与任何其他的类型都不能进行运算),int型的大小是32字节,比int小的只有byte、short、char。
所以int型与这三种类型进行运算时,一定得到的是int型,所以可以放心运算,不必进行类型转换。
其他的数据类型同样遵循以上规则
作者: 张洁    时间: 2012-6-9 18:55
额,楼主的意思是说基础型的转换级别吧~
在Java中整型、实型、字符型被视为简单数据类型,
这些类型由低级到高级分别为(byte,short,char)--int--long--float--double

也就是byte,short,char是同级别在一块的~

楼主说提升是低级别转高级别的意思吧~
低级到高级的是自动类型转换~也就是可以直接转,不影响~
高级到低级的是强制类型转换,这个一般会出现精度丢失等等情况的
同级别的话也可以互相转换的~






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2