Java教程

类型转换

本文主要是介绍类型转换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

整型、实型(常量)、字符型数据可以混合运算。

 

Java是强类型语言,运算中,不同类型的数据先转化为同一类型,然后进行运算。

 

一、自动类型转换

转换从低级到高级(数据字节大小由小到大)

 

低  ------------------------------------>  高

byte,short,char—> int —> long—> float —> double

数据类型转换必须满足如下规则:

 

不能对Boolean类型进行类型转换。

 

不能把对象类型转换成不相关类的对象。

 

在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

 

转换过程中可能导致溢出或损失精度,例如:

 

int i =128;   

byte b = (byte)i;

因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。

 

   5.浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

 

(int)23.7 == 23;        

(int)-45.89f == -45

自动类型转换必须满足转换前的数据类型的位数要低于转换后的数据类型

 

例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。

 

实例

 

public class day0928 {
    public static void main(String[]args){
        char c1='j';//定义一个char类型
        int j1=c1;//char自动类型转换为int
        System.out.println("Char自动转换为int后的值等于"+j1);
        char i2='J';
        int j2=i2-4;//char 类型和 int 类型计算
        System.out.println("Char类型和int计算后的值等于"+j2);
    }

运行结果为:

 

Char自动转换为int后的值等于106

Char类型和int计算后的值等于70

解析:c1 的值为字符 j ,查 ASCII 码表可知对应的 int 类型值为 106, A 对应值为 74,所以 j2=74-4=70。

 

二、强制类型转换

条件是转换的数据类型必须是兼容的。

 

格式:(type)value

 

type是要强制类型转换后的数据类型

 

实例:

 

public class day0928 {
    public static void main(String[]args){
        int c1 = 113;
        char b = (char) c1;//强制类型转换为char
        System.out.println("int强制类型转换为char后的值等于"+b);
    }
}

运行结果:

 

int强制类型转换为char后的值等于q

 

三、隐含强制类型转换

整数的默认类型是 int。

 

小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。

这篇关于类型转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!