我对强类型的理解是该语言不会进行隐式类型转换。但是,此代码将 char 转换为它的 ascii 值,然后使用该值。
static char x = 'j';
static int y = 7;
public static void main(String[] args){
System.out.println(y+x);
}
我对强类型的理解是该语言不会进行隐式类型转换。但是,此代码将 char 转换为它的 ascii 值,然后使用该值。
static char x = 'j';
static int y = 7;
public static void main(String[] args){
System.out.println(y+x);
}
这与强类型或弱类型无关。您的代码是两个强类型变量之间的隐式转换示例 - achar
和int
.
你System.out.println(y+x)
实际上被编译成System.out.println(y+(int)x);
这样System.out.println(int arg0)
被调用。
转换(int)x
是将字符转换为其 ascii 值的原因,因为 Java 将字符存储为 UTF-16 值。
Java 是一种强类型编程语言,因为每个变量都必须用数据类型声明。一个变量在不知道它可以容纳的值范围的情况下无法开始生命,并且一旦声明,变量的数据类型就不能改变。
例子:
允许以下声明,因为具有“hasDataType”的变量被声明为布尔数据类型:
boolean hasDataType;
在它的余生中,hasDataType 只能有一个值 true 或 false。
以及为什么在您的示例中将 char 转换为数字。
System.out.println(y+x);
你可以看看这个例子