javaa+是什么意思(a)

首页常识更新时间:2023-08-07 14:46:02

这个问题考了我们两个知识点,首先是运算符,在Java中,当两个整数类型的变量做 ,-,*,/,%的时候,如果变量的数据类型为byte或者short,编译器会把变量的数据类型先转换成int数据类型,然后再做数学运算。其次是运算符和等号连用,当数学符号和等号连用的时候,与直接使用数学符号不同,Java会进行自动类型转换,把结果隐式转换为目标变量的类型。这个时候需要注意,如果是高精度转换成低精度的数据类型的时候,虽然不会导致编译错误,但结果有可能不是我们期望的值。

举个例子,两个short变量做 ,-,*,/,%运算时,会先将它们提升为int类型并进行运算,如果直接将结果返回给short类型的变量,会导致编译错误。另一方面,当使用数学符号和等号连用的时候,编译器会做隐式类型转换,这个时候,即便是把结果返回给short类型的变量,也不会有编译问题。但是, 如果结果超出了目标数据类型的范围,有可能会溢出,导致结果可能不是我们期望的值。拿图上的例子来说,当x和y都等于30000时,x = y 的结果超出了short能容纳的最大值32767,所以x =y运行后,x会是一个负值。

,
展开阅读全文
推荐内容
热门内容
热门文章

© 2007-2022 http://www.anhuiqq.cn,All Rights Reserved.