我可以在javax.crypto.CipherInputStream
(第77行)中看到以下初始化
private byte[] ibuffer = new byte['Ȁ'];
Ȁ
是什么意思,为什么以这种方式初始化缓冲区?
答案 0 :(得分:2)
char
转换为int
。值为512
答案 1 :(得分:1)
从这个源代码:javax/crypto/CipherInputStream.java,这个数组用
初始化 /* the buffer holding data that have been read in from the
underlying stream, but have not been processed by the cipher
engine. the size 512 bytes is somewhat randomly chosen */
private byte[] ibuffer = new byte[512];
512是字符'Ȁ'
的整数值,因此它是相同的初始化。
尝试:System.out.println((char) 512);
答案 2 :(得分:0)
这是反编译器的问题,它们只查看字节码并尝试重建源。
如果您查看javax.crypto.CipherInputStream (Line 77)中的原始来源,您会看到该行最初是
private byte[] ibuffer = new byte[512];
'Ȁ'
属于char
类型,如果将其强制转换为int
,则其值为512.您的反编译器重建了一种可能的方法来生成该字节码 - 但是在这种情况下,没有理智的程序员会这样写(除非打高尔夫球或故意混淆代码)。