自学Java第二篇:数据类型转换以及关于数据类型的一些补充知识

本文详细讲解了Java中数字类型转换的规则,包括字节(byte)、短(short)、字符(char)到整数(int)再到长整型(long),以及如何避免数值溢出。重点介绍了强制转换和自动转换的区别,以及Java 7中下划线表示法的应用。
摘要由CSDN通过智能技术生成

数据类型转换

  1. 数字类型的优先级关系
    byte,short,char->int->long->float->double

  2. 我们在给定义后的变量赋值时 一定要避免超出他们的临界范围,避免内存溢出。

  3. 高→低:强制转换;
    低→高:自动转换;
    例如:

int a=122;
byte b=a;//这样会报错,因为a与b的数字类型是不同的

int a=122;
byte b=(byte)a;//这样子是正确的

byte b=122;
int a=b;//这样子是可以自动转换的,因为int的优先级大于byte,不需要强制类型转换
  1. jdk7新特性,数字直接可以用下划线分割,但是下划线并不会输出该下划线。
  2. 一个例子:
int a=1000000000;//1000000_0_00=1000000000
int b=20;
long c=a*b;
System.out.println(c);
//这样输出的结果并不是两百亿,
//因为a*b默认是int类型的两百亿会有数值溢出。
long c=a*(long)b;
//这样就可以了,因为b被强制转换成long类型的,
//这样即使a是int类型的,最后计算的结果也会自动转换成long类型的,不会出现数值溢出情况。

但是不能这样子改

long c=long)(a*b);

因为第二个括号运算后就已经是数值溢出的int类型的数值了,只不过再把它转换成long类型的数值,所以结果仍然不是两百亿。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值