總網頁瀏覽量

2016年3月14日 星期一

[零] The class File Format

Chapter 4. The class File Format

  每個class檔都包含著定義單一class檔或interface。

  一個class檔,組成由 8-bit Byte的stream。全部 16-bit、32-bit、64-bit的數量建構成2、4、8連續的8-bit bytes。多數量(Multibyte)的檔案項目通常儲存在bit-endian order, where the high bytes come first。在Java SE平臺中,這些型態都是由幾個介面提供,java.io.DataInputjava.io.DataOutput,以及class提供,java.io.DataInputStreamjava.io.DataInputStream.

   現在所講的,class 檔案形式: 類別(type)u1, u2, u4,個別是無號(unsigned)1, 2, 4 byte。在Java SE平台上,這些類別讀取的method是由readUnsignedBytereadUnsignedShortreadInt和介面java.io.DataInput。


  目前所講的class file形式上使用pseudostructures編寫 a C-like structure notation(?)。避免class中的filed和class中的interface。

  Tables,包含了0到更大的的可變大小項目,以使用在多個class file structures。雖然使用了C-like array syntat來對應talble的項目,是實上,table是多變的stream結構,也代表著不可能轉換一個table index 到 byte offset。  (?)

  這裡的Data structure是個array陣列,包含了0到更多的大小項目,可以有類似array的編列。
  
  相關於ASCII字元似的說明,表示Unicode code point對應ASCII character。


[1] https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html

沒有留言:

張貼留言