数据类型的转换

一、自动类型转换

自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。黑色的实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的损失。

自动类型转换的特殊情况:整数类型默认是int类型,可以将整型常量直接赋值给 byte、short、char 等类型变量,而不需要进行强制类型转换,只要不超出其表数范围即可。

/**
*测试自动类型转化
*/
public class TestTypeAutoConvert{
	public static void main(String[] args){
		//容量小的类型可以自动转化成容量大的类型
		int a=2345;
		long b=a;
		//int c=b;//long类型不能自动转化成int类型
		double d=b;
		float f=b;
		
		//特例:整型常量是int类型,但是可以自动转成:byte/short/char,只要不超过对应类型的表数范围
		byte h1=123;
		//byte h2=1234;//1234超过了byte的表数范围
		
		char h3=97+25;//将两个int类型的数字相加,值赋给char类型的变量
		System.out.println(h3);
	}
}

二、强制类型转换

强制类型转换,又称为造型(cast),用于强制转换数值的类型,可能损失精度

当将一种类型强制转换成另一种类型,而又超出了目标类型的表数范围,就会被截断成为一个完全不同的值。

/**
*测试强制类型转化
*/
public class TestTypeConvert{
	public static void main(String[] args){
	double a=31.44;
	int b=(int)a;//结果为31,浮点型数转化为整型数的时候不会四舍五入,而是会舍去小数部分
	System.out.println(b);
	
	//如果强制类型转化超出对应数据类型的表数范围,则会转换成一个完全不同的值
	byte c=(byte)300;
	System.out.println(c);
	
	}
}

注意:不能在布尔类型和任何数值类型之间做强制类型转换!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程抢抢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值