MST

星途 面试题库

面试题:Java基本数据类型之取值范围与转换

请列举出Java中byte、short、int、long这四种整数类型的取值范围。并且说明当把一个int类型的值赋给一个short类型变量时,会发生什么,应该如何处理?
10.9万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 取值范围
    • byte:-128 到 127($-2^{7}$ 到 $2^{7}-1$)
    • short:-32768 到 32767($-2^{15}$ 到 $2^{15}-1$)
    • int:-2147483648 到 2147483647($-2^{31}$ 到 $2^{31}-1$)
    • long:-9223372036854775808 到 9223372036854775807($-2^{63}$ 到 $2^{63}-1$)
  2. 把int类型的值赋给short类型变量
    • 发生的情况:如果int类型的值在short类型的取值范围内,正常赋值。但如果int类型的值超出了short类型的取值范围,会发生数据截断,导致数据丢失和精度损失。例如,将一个大于32767的int值赋给short变量,会得到一个错误的结果,因为short类型无法表示这么大的值。
    • 处理方式:需要进行强制类型转换。如 int num = 100; short s = (short)num; ,不过要注意强制类型转换可能带来的数据丢失风险,在进行转换前要确保数据在目标类型的取值范围内,否则可能得到错误结果。