数据类型转化(详解与代码)

本文介绍了程序中的类型转换,包括自动类型转换(如小容量类型向大容量类型转换,可能有精度损失)和强制类型转换(可能导致信息丢失或溢出),并探讨了转换溢出问题。在比较操作中,即使精度丢失,使用`==`比较仍可能得到`true`,因为比较前会发生隐式类型提升。
摘要由CSDN通过智能技术生成

 

目录

1、自动类型转换

2、强制类型转换

3、转换溢出


程序的运行,有时涉及到类型的转化,类型的转化涉及到自动类型转化和强制类型转化。

1、自动类型转换

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

这里的容量并不是指占用字节数的大小,而是指数值的表示范围的,那同样是占用4个字节的int类型和float类型,为何float类型的容量要比int类型的大,这就看float类型在低层的表示https://blog.csdn.net/lgl782519197/article/details/89878900

特例:

1、可以将整型常量直接赋值给byte、short、char等类型,而不需要进行强制类型转换,只要不超出其表数范围即可。

 

public class TestAutomaticTypeConversion {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		byte byte1 = 50;
		short short1 = byte1;
		System.out.println("byte转short----------------------------");
		System.out.println("byte1="+byte1);		//50
		System.out.println("【short1 = byte1】short1="+short1);//50
		System.out.println("【short1 == byte1】="+(short1 == byte1));//true
		char char1 = 'a';
		int int1 = byte1;
		System.out.println("byte转int----------------------------");
		System.out.println("byte1="+byte1);		//50
		System.out.println("【int1 = byte1】int1="+int1);//50
		System.out.println("【int1 == byte1】="+(int1 == byte1));//true
		int1 = short1;
		System.out.println("short转int----------------------------");
		System.out.println("short1="+short1);		//50
		System.out.println("【int1 = short1】int1="+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

深知她是一场梦

你打不打赏,我都会一直写博客

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

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

打赏作者

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

抵扣说明:

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

余额充值