Java数据类型转换

Java数据类型转换

概述

java数据类型分为4类8种,不同类型之间相互转换存在一定的规则。


内容

  1. 自动类型转换:将小类型的数据转换成大类型数据,系统会自动转换;
short a=10;
int sum = a;
//short类型的a值自动转换成int类型;
  1. 强制类型转换:将大类型的数据转换成小类型的数据,会编译报错
int a=10;
short sum = a;
//上述代码执行时会出现编译报错:错误: 不兼容的类型: 从int转换到short可能会有损失
//解决办法,上述代码修改为
int a=10;
short sum=(short)a;
  1. byte/short/char特例:这3种类型在用int类型的常量赋值时,不需要进行强制转换,系统自动转换。但是所赋值的int类型常量值不能超过各自范围。
  2. byte/short 和 char 参与转换,都需要强制类型转换。
  3. 表达式类型提升:当表达式的运算符两边类型不一致的时候,结果的类型会自动向高类型转换
int a;
short b=10;
a = b+20;  //结果自动转换成int;
  1. 当byte short char 之间参与运算的时候,底层都会转换成int类型来计算
byte b=10;
short s=5;
char c = (char)(b+s);//b+s自动转换成int类型计算,int类型赋值给char类型,故需强制转换。
  1. boolean类型不能够参与运算和转换,编译时会报错。
  2. 字符串在参与运算中的转换问题,字符串相加是拼接操作。
String str = "22";
int a = 4;
System.out.println(str + a + 2);//结果为 2242
  1. 变量计算和常量计算问题
    变量相加,系统无法判断具体的结果
    常量相加,在编译时期,系统就会运算结果
//代码一:
byte b = 10+10;   //无异常,正常赋值;
//代码二:
int a = 10;
int b = 10;
byte b = a + b;//编译报错,int类型无法转换成int,需要强制转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值