java 数据类型

来源:互联网 发布:英语社交网络 编辑:程序博客网 时间:2024/06/03 16:39

java 基本的数据类型包括:1.数值型:整数类型byte,short,int,long  浮点类型:float,double   2.字符型:char  3.布尔型:boolean

 按存储空间的小到大:byte(1字节)<short(2字节)<int(4字节)<long(8字节)     float(4字节) <double(8字节)

 隐式类型转换:也称自动类型转换是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以java语言在设计时,没有为该操作设计语法,而

是由JVM自动完成。转换规则:从存储范围小的类型到存储范围大的类型。

强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该

类型的转换。转换规则:从存储范围大的类型到存储范围小的类型。

例:  float f=3.4  这是错误的写法,3.4默认为double型的数据,将它赋给float是强类型转换,需要写代码:float f=3.4f

问题:short s=1 为什么是正确的?1默认为int类型,将它赋值给short是强类型转换。但此处却不用强制转换。

在JVM的指令集中可以看到,将char,short,byte保存到本地的指令和将int保存到本地的指令都是istore,也就是说char,short,byte没有专门的保存变量的指令,在JVM中保存类型和int是一样的,区别在于数据的范围。如果把一个不确定范围的int赋值给short就需要强制类型转换。

例: int i=1;short s=i;这么写就是错误的,i为不确定范围的变量。

1 0
原创粉丝点击