首页 > 编程 > Java > 正文

java 数据类型

2019-11-08 19:38:55
字体:
来源:转载
供稿:网友

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为不确定范围的变量。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表