有人可以解释Second for loop内部发生什么吗?

时间:2019-05-29 15:58:59

标签: java casting

我知道,char可以由我显式转换,也可以由编译器隐式转换。

在我的第一个“ for”循环代码中,编译器通过隐式类型转换将char自动转换为int类型。由于char的大小为2个字节,因此它适合4个字节的大小。

我很困惑,如何将整数分配给char变量而不进行显式转换,因为int为4个字节,并且没有使用cast运算符将其显式转换为char。

// Compiler converts char to int type automatically by implicit type casting.
        for (int i = 'A'; i <= 'Z'; i++) {
            System.out.print(i + " ");
        }   System.out.println();


        for (char c = 65; c <= 90; c++) {
            System.out.print(c + " ");
        }   System.out.println();

1 个答案:

答案 0 :(得分:-1)

“它没有分配int,而是使用UNICODE代码输入字符。”
(例如,UNICODE中的A = 65或什至是ASCII @RealSkeptic) 这只是初始化的另一种方式。

    char A = 65;
    char a = 'a';
    System.out.println(A); \\A
    System.out.println((int)A); \\65
    System.out.println(a); \\a
    System.out.println((int)a); \\97
  

防御。 Oracle for char:

     

char数据类型是单个16位Unicode字符。最小值为'\ u0000'(或0),最大值为'\ uffff'(或65,535(含))

也请注意评论。