类型的转换(Java)

类型的转换
Java是一个强类型编程语言,当不同的类型的变量之间相互赋值的时候,就会出现严格的校验。
1.int和long/double的相互赋值:

int a=20;
long b=12;
a=b;//编译出错,有精度损失
b=a;//编译通过

int a=10;
double b=1.2;
b=a;//编译通过
a=b;//编译出错,有精度损失

总结不同类型之间的赋值,表示范围小的类型可以转换成范围大的类型,反之不能转换(int 可以赋值给long,long不能赋值给int)
2.int与boolean相互转换

int a=12;
boolean b=false;
b=a;//编译出错,不兼容
a=b;//编译出错,不兼容

总结 int与boolean不能相互转换
3.int字面值常量给byte赋值

byte a=100;//编译通过
byte a=129;//编译出错,

结论 int字面值常量给byte赋值时,检查常量是否在byte的数据范围内(-128~127),超出范围会编译出错(129),在范围内则会编译通过(100)。
4.强制类型转换

int a=3;
double b=2.3;
a=(int)b;//编译通过

int a=2;
bollean b=false;
a=(int)b;

结论 使用强制类型转换过程中,可以把比如double long等与 int相关的类型可以转换成int,但是会有精度丢失,比如b=2.3强制类型专换为2,但是互不相干的类型之间无法转换(boolean).
数值提升
1.int 和Long的混合运算

int a=2;
long b=3;
int c=a+b;//编译出错,出现精度丢失
long c=a+b;//编译通过

结论与前面int与long相互转换类似,如果要求转换为int型,可以使用强制类型转换。
2.byte和byte的运算

byte a=3;
byte b=4;
byte c=a+b;
System.out.println(c);//编译出错

byte a=3;
byte b=4;
byte c=(byte)(a+b);
System.out.println(c);

结论:byte与byte是相同类型的,但是仍然会显示编译出错,因为byte与byte运算时,首先会先转换为int类型,得到的结果仍是int,若要转换为byte,可能会出现损失,因此转换需要强制类型转换。
int与String之间的相互转换

//int转换为String
int num=10;
String str1=num+"";//方法1
String str2=String.valueof(num);
//String转换为int
String str="100";
int num=Integer.paraseInt(str);
  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值