所以我的文件中有一行代码,显示为
char[] arr = new char[256];
但是,当我将其更改为
时int[] arr = new int[256];
类文件缩小.01 Kb。这是为什么?
答案 0 :(得分:4)
这可能是因为编译器生成的符号短了几个字符。就像在.java
文件中一样,第一行会创建一个更大的文件,因为它有更多的字符。
如果您在vim中打开.class
,您会看到int
数组的以下内容。
Êþº¾^@^@^@2^@^O
^@^C^@^L^G^@^M^G^@^N^A^@^F<init>^A^@^C()V^A^@^DCode^A^@^OLineNumberTable^A^@^Dmain^A^@^V([Ljava/lang/String;)V^A^@
SourceFile^A^@!JFileChooserDisableDirectory.java^L^@^D^@^E^A^@^\JFileChooserDisableDirectory^A^@^Pjava/lang/Object^@!^@^B^@^C^@^@^@^@^@^B^@^A^@^D^@^E^@^A^@^F^@^@^@^]^@^A^@^A^@^@^@^E*·^@^A±^@^@^@^A^@^G^@^@^@^F^@^A^@^@^@^A^@ ^@^H^@ ^@^A^@^F^@^@^@"^@^A^@^B^@^@^@^F^P
¼
L±^@^@^@^A^@^G^@^@^@
^@^B^@^@^@^D^@^E^@^E^@^A^@
^@^@^@^B^@^K
以下是char
数组.class
文件。
Êþº¾^@^@^@2^@^O
^@^C^@^L^G^@^M^G^@^N^A^@^F<init>^A^@^C()V^A^@^DCode^A^@^OLineNumberTable^A^@^Dmain^A^@^V([Ljava/lang/String;)V^A^@
SourceFile^A^@!JFileChooserDisableDirectory.java^L^@^D^@^E^A^@^\JFileChooserDisableDirectory^A^@^Pjava/lang/Object^@!^@^B^@^C^@^@^@^@^@^B^@^A^@^D^@^E^@^A^@^F^@^@^@^]^@^A^@^A^@^@^@^E*·^@^A±^@^@^@^A^@^G^@^@^@^F^@^A^@^@^@^A^@ ^@^H^@ ^@^A^@^F^@^@^@"^@^A^@^B^@^@^@^F^P
¼^EL±^@^@^@^A^@^G^@^@^@
^@^B^@^@^@^D^@^E^@^E^@^A^@
^@^@^@^B^@^K
使用TextDiff,您可以看到代码中的差异。
答案 1 :(得分:1)
可能只是因为该类型的符号有点短。