J2ME 程式設計/連線有限裝置配置
許多人混淆了 CLDC 在 J2ME 應用程式開發中的作用。它本身不是一個應用程式開發框架,因為你需要比配置更多的東西來生成 J2ME 應用程式("J2ME". The J2ME Platform.). 你可以將 CLDC 視為幫助定義 J2ME 語言專案的子集的規範,例如輸入/輸出、數學等等,Java 虛擬機器將其用作一組規則來實際執行移動資訊裝置配置檔案(MIDP)下的 MIDlet。
透過觀察 CLDC 中每個包定義的 J2ME java 子集,我們可以更清楚地瞭解這一點。儘管從 javadoc 中看不出來,但 Sun Microsystems 並沒有將 MIDP 和 CLDC javadoc 分開,這些是 CLDC 的實際包("cldcapi" (PDF). CLDC API Documentation, V1.0.)
- java.lang.*
- java.io.*
- java.util.*
因此,我們有定義用於 java 語言子集屬性的類。如何使用 java 語言子集定義進行輸入/輸出。此外,還對來自完整 java 語言的 java.util.* 的子集進行了語言定義。
- java.lang.Long
- java.lang.Short
- java.lang.Integer
請注意,與 J2SE 數學相比,我們沒有浮點數(Float 類)和雙精度(Double 類)。
- java.lang.Math
- java.util.Random
- java.lang.System
- java.lang.Object
- java.lang.Runtime
- java.lang.Thread
- java.lang.Throwable
- java.lang.String
- java.lang.StringBuffer
- java.lang.Boolean
- java.lang.Byte
- java.lang.Character
- java.util.Enumeration
- java.util.Hashtable(請參閱結論中的註釋,來自 jdk1.1.8,而不是 jse1.3)
- java.util.Stack
- java.util.Vector(請參閱結論中的註釋,來自 jdk1.1.8,而不是 jse1.3)
- java.util.Calendar
- java.util.Date
- java.util.TimeZone
- java.io.Writer
- java.io.Reader
- java.io.ByteArrayInputStream
- java.io.ByteArrayOutputStream
- java.io.DataInputStream
- java.io.DataOutputStream
- java.io.InputStream
- java.io.OutputStream
- java.io.InputStreamWriter
- java.io.OuputStreamWriter
- java.io.PrintStream
- java.util.EmptyStackException
- java.util.NoSuchElementException
- java.io.EOFException
- java.io.IOException
- java.io.InterruptedException
- java.io.UnsupportedEncodingException
- java.io.UTFDataFormatException
- java.lang.Error
- java.lang.VirtualMachineError
- java.lang.OutOfMemoryError
其他類與 MIDP 在 javadoc 中混合,因此我將在 javax.microedition.io.* 包下列出 CLDC 類的完整列表。類是包末尾點後的右邊的首字母大寫的名稱。
- javax.microedition.io.InputConnection
- javax.microedition.io.Connection
- javax.microedition.io.StreamConnection
- javax.microedition.io.OutputConnection
- javax.microedition.io.Datagram
- javax.microedition.io.DatagramConnection
- javax.microedition.io.StreamConnectionNotifier
- javax.microedition.io.ContentConnection
- javax.microedition.io.ConnectionNotFoundException
- javax.microedition.io.Connector
將這些類區分開來的共同點是它們是定義輸入/輸出連線功能的介面。java.io.* 中的類定義了 javax.microedition.io.* 中的輸入/輸出類用作其規則集的 java 語言屬性。
- java.lang.Float
- java.lang.Double
- java.lang.Math
在 J2ME 平臺中,J2SE IO 被一個更小的通用連線框架 (GCF) 取代。
- javax.microedition.io.InputConnection
- javax.microedition.io.Connection
- javax.microedition.io.StreamConnection
- javax.microedition.io.OutputConnection
- javax.microedition.io.DatagramConnection
- javax.microedition.io.StreamConnectionNotifier
- javax.microedition.io.ContentConnection
- javax.microedition.io.HttpConnection
總之,在 CLDC 的 java 語言子集中,我們沒有浮點數學,沒有雙精度,沒有類載入器,沒有套接字,也沒有序列化。使用了一個名為 GCF 的更小的 IO 框架。
雖然 javadoc 在右上角顯示 MID Profile,但它們所屬的實際配置或概要檔案在列出類方法摘要之前被記錄為
自 CLDC1.0 或 自 MIDP1.0
注意,並非所有類都基於 JDK1.3
- java.util.Vector
- java.util.Hashtable
這些類基於 JDK1.1.8 來節省空間。
- Unicode 到 reader/writer 位元組的轉換和從 reader/writer 位元組的轉換受到限制
- 不支援來自 J2SE 的 java.util.Properties,但可以獲取以關鍵字 microedition 開頭的 System.getProperty(String key) 的有限內容
J2ME、Java 和所有基於 Java 的標記是 Sun Microsystems, Inc. 在美國和其他國家/地區的商標或註冊商標。