java基础:类型转换

类型转换

1、概述

java中的=号赋值操作,需要=号俩边的类型一致,也就是=号右边的数据的类型要和=号左边的变量的类型保持一致,如果不一致,那么就需要做类型的转换。

分为隐式转换显示转换
隐式转换也称为自动转换。
显示转换也称为强制转换/手动转换。

2、分类

2.1 基本类型

(1)隐式转换(Implicit),也是自动转换。
在JVM运行期间,只要满足条件,就可以自动完成类型转换的过程。一般是数据范围比较小的,自动就可以转换为数据范围比较大的类型(基本类型)。

byte a = 1; //byte占一个字节
int b = a; //int占四个字节
//所以数据范围int大于byte,所以a自动转换为byte类型

(2)显示转换(explicit),即手动转换,强制转换
编译器发现类型无法自动转换的情况,就会编译报错,这时候我们确认无误后,就可以进行类型强制转换。
但是这里是存在一定风险的,在基本类型数据中,这个风险主要是可能数据有损失。在引用类型中,将来在运行这个类型转换代码的时候,有可能会抛出类型转换异常(classCastExpection)。
例如下面代码:

int a = 100;

//编译报错,因为a是int类型,b是byte
//把32位int数据,赋值给8位的变量b
//把一个范围大的数据,赋给一个范围小的变量
//这时候是不允许的,也无法类型自动转换。
byte b = a;

//编译通过,自己手动进行了类型转换
//对于基本类型,强制转换就是把多余的位给抹去
//所以这时候可能对数据的值,造成影响
byte b = (byte)a;

2.2 引用类型

(1)隐示转换

Student s = new Student();

Object o = s;
//特点:子类类型的变量,可以自动转为(隐式)父类类型

//上面俩句代码可以合成这一句代码,其实就是把中间变量s给去掉了。
Object o = new Student();

(2)显示转换

Object o = new Student();
Student s = (Student)o;
//特点:父类类型的变量,需要强制转为(显式)子类类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值