二维 java 数组

Two dimension java array

我是 java 的超级新手,我想了解以下代码。

public Something() throws Exception
{
    byte[][] value=new byte[2][0];
    KeyGenerator kgen = KeyGenerator.getInstance("AES");
    kgen.init(128); 
    SecretKey skey = kgen.generateKey();
    value[0]=skey.getEncoded();
    skey = kgen.generateKey();
    value[1]=skey.getEncoded();

    value[0][0]=0x12;value[0][1]=0x33;value[0][2]=0x21;
    value[1][0]=0x12;value[1][1]=0x33;value[1][2]=0x21;
}

1)是否可以像第 3 行那样创建一个包含 0 列的字节数组?

2)最后创建了多少列和行,里面的值是多少?

3)最后两行代码将十六进制值分配给这些特定的列和行?

提前致谢

1)Is it possible to create a byte array with 0 columns like that on line 3?

是的。

2)At the end how many columns and rows are created and what is the value inside them?

起初,数组将包含 2 * 0 = 0 个字节。

然后,在声明数组后不久,您有这些行:

SecretKey skey = kgen.generateKey();
value[0]=skey.getEncoded();

这会将具有 0 列的第一行替换为具有 16 列(根据 AES 密钥规范为 128 位)的行。

一旦你对两者都这样做,就好像你已经声明了一个 byte[2][16]

3)The last two lines of code assign hex values to these specific columns and rows?

他们为现在的 2*16 字节数组中的一些字节设置了十六进制值,是的。其他字节将是高度随机的。