java开发中经常需要定义一个变量,定义变量时我们需要指定变量的类型,
后面使用中也有可能需要将这个变量类型转换成另一个类型来使用,
这个时候就需要使用类型转换操作。
由于java是强类型语言,也就是说定义这个变量是某个类型,那么它就是这个类型,
不能随便更改它的类型.如果你想改变它的类型的话,我们就需要进行类型的转换.
Java开发中类型转换分为自动类型转换和强制类型转换
提示:不包括boolean类型(因为boolean类型不能转成数字,只有true和false值)
首先来看一下自动类型转换,也叫隐式类型转换
是指不需要书写代码来转换类型,由jvm (java 虚拟机)来自动帮助转换.
转换规则:
从存储范围小的类型到存储范围大的类型 (可以理解成把字节小的给字节大的)
具体规则: (字节大小)
byte->short(char)->int->long->float->double
自动类型转换示例:
示例结果:
强制类型转换
也叫显式类型转换
是指必须书写代码才能完成的转换.否则程序会报错
缺点:容易出现精度丢失
转换规则:
从存储范围大的类型到存储范围小的类型 (可以理解成把字节大的给字节小的)
具体规则:
double->float->long->int->short(char)->byte
语法格式:
(转换到的类型)需要转换的值
强制类型转换示例:
示例结果:
转换操作中需要特别强调一下short类型和char类型之间的转换,由于这两个类型在计算机中所占的都是2个字节,所以他们之间的转换操作如何完成呢?如下示例所示:
可以看到他们之间要完成转换操作都需要强制转换,这是因为而short是16位的带符号整数,存储范围是-32768-32767,char是16位的无符号整数,存储范围是0-65535,所以,两者虽然字长相同,但意义却不一样(表示范围并不完全重合或包含),因此不管是char转换成short,还是short转换成char,都可能“丢失精度”,因此必须强制转换。
领取专属 10元无门槛券
私享最新 技术干货