Char number = 5 , byte num =5 为什么是对的 和 编译阶段的报错问题

本文详细解析了Java中不同类型之间的自动转换原理,特别是int到char、byte类型的转换过程,并通过实例说明了取值范围对类型转换的影响。

Int >char

 

Charnumber  = 5 ;

 

Char是符号类型 , 5是整形,  int> char为什么 5没有被强制转换,是因为 char的取值范围是0~255  , 5在这个取值范围中,所以系统不会报错,会在最底层默默的偷偷地进行一次转换.

 

Int  > byte

Byte num = 5 ; 为什么不报错,因为 5属于 byte取值范围(超出取值范围就会报错) ,编译器会默认成立,也是在底层默默的偷偷地进行一次转换.

 

int的最大值为 : Max ;

 

方法一:

Int number = Max + 1 ; 会报错因为 Max + 1是一个整数 ,当编译时编译器会验证这个数字是不是在取值范围内,不在取值范围内就会报错.

 

方法二:

 

Intnumber = Max ;

Number = number + 1 ;这样就不会报错 ,因为 int number = Max赋值时,没有超过取值范围,编译器验证时没有发现错误,所以不会报错,当执行 number = number+ 1 ,不处于编译阶段了,处于运行阶段,运行阶段不会检验错误,因为 number = number+ 1 是一个表达式,没有任何语法错误,有错误的话,编译阶段就会出现报错了 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值