强制类型转换-Java

强制类型转换

一、介绍

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(),但可能造成精度降低或溢出,格外要注意。
在这里插入图片描述

  • 案例
    (1) 精度损失
	int n1 = (int)1.9;
    System.out.println("n1="+n1);

out:1

(2) 数据溢出

	int n2 = 2000;
    byte b1 = (byte)n2;
    System.out.println("n2="+n2);

out:-48
解释:2000的二进制补码为0111 1101 0000,byte占一个字节,取后八位补码1101 0000,此补码表示负数,转换为十进制就是-48

二、使用细节

  1. 当进行数据的大小从大 ——> 小,就需要使用到强制转换
  2. 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
	int x = (int)10*3.5 + 6*1.5;

报错:这样的意思是把10转换成int类型,35.0+9.0=44.0,double类型赋值给int类型

	 int y = (int)(10*3.5 + 6*1.5);

out:44

  1. char类型可以保存 int 的常量值,但不能保存 int 的变量值,需要强转
	 char c1 = 100;     //ok
	 int m = 100;	    //ok
	 char c2 = m;       // 错
	 char c3 = (char)m; //ok
  1. byte、short、char 类型在进行运算时,先当做int类型处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值