JDK学习笔记第四章的选择题 第2题
解题部分没有什么问题,自动装箱和自动拆箱分别出现。
但是当把文档反编译的时候,问题出现了。反编译内容如下:
import java.io.PrintStream;
public class Exercise2
{
public Exercise2()
{
}
public static void main(String args[])
{
char c = '\310';
char c1 = '\310';
Integer integer = Integer.valueOf(c);
Integer integer1 = Integer.valueOf(c1);
System.out.println(c == integer.intValue());
System.out.println(c1 == integer1.intValue());
}
}
问题出现在给变量赋初值的地方。
int x = 200;
int y = 200;
竟然变成了:
char c = '\310';
char c1 = '\310';
得知该方法是以八进制的方式来表示数字。
尝试了,可以从 0 - 377进行表示,即 0 - 255的256个数字。
可是奇怪的是:
1、属于基本类型char的c和c1竟然可以和进行加减计算,而且可以和int做比较是否相等。请问老师,这是为何?
2、为什么print c和c1都会显示成?,除了将其转型外,还有其它方式可以print出来么?
3、char类型的变量究竟可以放多少东西?除了unicode和八进制以外,还能放别的么?
麻烦老师帮小弟解惑,谢谢 |