刚刚了解.class文件的这种行为。
说我有这段代码:
public class Demo
{
public static void main(String...args)
{
char ch = 'A';
}
}
如果我编译文件并使用cavaj反编译器打开.class文件,它会显示如下内容:
public class Demo
{
public Demo()
{
}
public static transient void main(String args[])
{
byte byte0 = 65;
}
}
这里,char被写为byte。但是如果我打印这个字符并写下这样的代码:
public class Demo
{
public static void main(String...args)
{
char ch = 'A';
System.out.println(ch);
}
}
反编译后,我得到了这段代码:
import java.io.PrintStream;
public class Demo
{
public Demo()
{
}
public static transient void main(String args[])
{
char c = 'A';
System.out.println(c);
}
}
我想知道两件事。首先,为什么PrintStream类已被编译器显式导入。第二,为什么' char'被写成' char'而不是'字节'与前一种情况一样,或者如何打印字符会改变行为?
提前致谢:)