动手动脑问题3
在Java中,每个数据类型的位数和表示的数值范围如下所示:
-
byte(字节):8位,有符号整数类型,表示范围为-128到127。
-
short(短整型):16位,有符号整数类型,表示范围为-32,768到32,767。
-
int(整型):32位,有符号整数类型,表示范围为-2,147,483,648到2,147,483,647。
-
long(长整型):64位,有符号整数类型,表示范围为-9,223,372,036,854,775,808到9,223,372,036,854,775,807。
-
float(单精度浮点型):32位,表示范围为-3.40282347E+38到3.40282347E+38。
-
double(双精度浮点型):64位,表示范围为-1.7976931348623157E+308到1.7976931348623157E+308。
-
char(字符型):16位,表示一个Unicode字符。
-
boolean(布尔型):没有明确规定位数,表示真(true)或假(false)。
在Java类型转换中,由小位转到大位不会有精度损失 ,相反就会有。
同名变量的屏蔽原则是指在Java中,如果在不同的作用域中定义了同名的变量,那么内层作用域的变量会屏蔽外层作用域的变量。
下面是一个示例程序,演示了同名变量的屏蔽效果:
public class VariableShadowing {
public static void main(String[] args) {
int x = 10;
System.out.println("外层作用域 x = " + x);
{
int x = 20; // 内层作用域的 x,屏蔽了外层作用域的 x
System.out.println("内层作用域 x = " + x);
}
System.out.println("外层作用域 x = " + x);
}
}
输出结果:
外层作用域 x = 10
内层作用域 x = 20
外层作用域 x = 10
可以看到,内层作用域中的变量 x
屏蔽了外层作用域中的同名变量 x
,内层作用域中对 x
的修改不影响外层作用域的变量值。
你可以尝试在不同的作用域中定义同名变量,并输出结果,观察屏蔽效果。这样可以帮助加深对同名变量屏蔽原则的理解。
下面是运行的EnumTest.java: