首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

J2ME 進階技巧:系統屬性、字串轉換、隨機數與多線程

     編輯:J2ME

J2ME 進階開發技巧:系統屬性讀取、資料轉換與執行緒控制

本文整理 J2ME 開發中常用的系統參數提取、字串與數值轉換、隨機數生成、時間測量、日期處理以及 Thread 與 Timer/TimerTask 的多線程實作要點。

1. 系統參數提取

MIDlet 透過 System.getProperty() 取得執行環境資訊:

  • microedition.profiles:支援的 Profile 版本 (如 MIDP-2.0)
  • microedition.configuration:支援的 Configuration 版本 (如 CLDC-1.1)
  • microedition.locale:目前地區設定 (如 zh-TW)
  • microedition.platform:平台/裝置型號名稱
  • microedition.encoding:預設字元編碼 (如 Big5、UTF-8)

2. 字串轉數值

從 JAD/Manifest 讀取的屬性值皆為字串,需轉換後運算:

  • 使用 Byte、Short、Integer、Long 的 parseXXX() 方法。
  • CLDC 1.0 不支援浮點數,CLDC 1.1 開始支援 Float、Double。

3. 隨機數生成

利用 java.util.Random:

Random rnd = new Random(); // 以當前時間為種子
Random rnd = new Random(seed); // 指定種子
rnd.setSeed(newSeed); // 重設種子
int n = rnd.nextInt(); // 取得 int 隨機數
long l = rnd.nextLong(); // 取得 long 隨機數

4. 執行時間測量

System.currentTimeMillis() 回傳自 1970/01/01 00:00 UTC 至今的毫秒數。兩次呼叫相減即得經過時間。

5. 日期處理

  • TimeZone:代表時區,全球統一時間為 UTC (等同 GMT)。
  • Date:封裝自 1970/01/01 起的毫秒差。建構子 new Date() 等同 new Date(System.currentTimeMillis())。
  • Calendar:不可直接 new,需用 Calendar.getInstance() (預設時區/地區) 或 getInstance(TimeZone)。透過 setTime(Date) 或 setTimeMillis(long) 設定時間,再取得年月日時分秒等欄位。

6. Thread 使用注意事項

  1. 兩種建立方式:繼承 Thread 並實作 run();或實作 Runnable 介面 (建議)。
  2. 啟動必須呼叫 start(),直接呼叫 run() 不會啟動新執行緒。
  3. 結束執行緒請使用自訂旗標 (flag) 讓 run() 自然返回。stop() 已棄用。

7. Timer 與 TimerTask

兩者配合實現排程任務:

  • Timer:定時器,可設定固定延遲或週期觸發。
  • TimerTask:抽象類別,繼承並實作 run() 定義任務內容。
  • 使用 timer.schedule(task, delay, period) 排程;timer.cancel() 停止所有任務;task.cancel() 停止單一任務。

此方式結構清晰,適合需多重定時任務的場景,但類別數較多,系統開銷稍大。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved