JVM COBOL では、バイト配列は、JVM 専用タイプ java.lang.Byte[] を使用して保存されます。バイト配列は、01 レベルで COBOL テーブルとして宣言する必要があります。サイズは 01 定義の一部として定義できます。あるいは、ANY キーワードを使用して定義しないでおくこともできます。次に例を示します。
01 b java.lang.Byte occurs any.
タイプ・バイト配列はオブジェクトですが、ネイティブ・エントリ・ポイントのリファレンスで渡すことができます。これは、一次元配列にのみ適用されます。
配列に含まれるバイトは、同じサイズのネイティブ・メモリのセクションに変更されずにコピーされ、この一部のメモリに対するリファレンスがネイティブ・コードに渡されます。これは、COBOL では pic x データに相当し、C では char* データに相当します。次に例を示します。
JVM COBOL:
01 b java.lang.Byte occurs any.
01 i binary-long.
set size of b to 1024
perform varying i from 1 by 1 until i > 1024
set b(i) to i /8
end-perform
call "JVM_LOAD_NATIVE" "doStuff"
call "doStuffWith1k" using by reference b
ネイティブ COBOL:
linkage section.
01 b pic x(1024).
...
entry "doStuffWith1k" using by reference b.
...