Java基础—类型转换

1.类型转换

  • 由于Java是强类型语言,所以在进行有些运算时,需要用到类型转换。
  • 运算时,不同类型的数据从低到高先转化为同一类型,在进行运算。
  • byte→short→int→long→float→double
  • 强制类型转换:(类型)变量名

    高类型→低类型

    int i=128;
    byte b=(byte)i;
  • 自动类型转换

    低类型→高类型

    int i=128;
    double d=i;

2.注意

  1. 不能对布尔值进行转换
boolean flag=(boolean)23;//错误写法
  1. 不能把对象类型转换成无关的对象
  2. 在高→低,强制类型转换
  3. 转换时会出现内存溢出或精度问题

内存溢出

int i=128;
byte b=(byte)i;//byte范围在-128~127内,i=128,导致内存溢出

输出
128
-128

精度问题

System.out.println((int)23.3);
System.out.println((int)23.33f);

输出:
23
23


3.字符类型(char)

  • char类型本质上也是数字类型
char c='a';
int d=c+1;
System.out.println(d);//输出98
System.out.println((char)d);//输出b

a(97)的下一个字母就是b(98)


4.扩展

  • 操作比较大的时候,注意溢出问题
  • JDK7新特性,数字之间可以用下划线分割
int money=10_0000_0000;
int year=20;
int total1=money*years;//-1474836480,这里计算就已经溢出了
long total2=money*years;//money*years的结果是int,已经计算溢出了,再赋值给long已经没用用了
long total3=money*((long)years);//先把一个数转换为long,根据类型转换的原则,money*((long)years)计算时,money会先转换为long,然后在计算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值