Java 2 Micro Edition简介(一)

原创 2002年04月20日 15:53:00

本文作者:王森
台湾交通大学科技管理研究所
moli.mt88g@nctu.edu.tw

█前言:

    相信在前几期RUN!PC上看过笔者文章的朋友们,对于Java在手持装置(如:Palm)或是行动装置(如:Motorola手机)上的应用应该有一定程度的认识了。可是正所谓「见山不是山,见水不是水」,虽然在笔者之前的文章中已经告诉大家如何在这些装置上撰写Java程序,不过,CLDC到底是什幺东西呢? MIDP又是啥玩意儿? 相信许多人脑袋里一定充满许多疑问。如果各位自行到Javasoft网站上查询有关Java 2 Micro Edition的资料,十之八九会被一大堆的技术名词搞的一头雾水。什幺KVM,什幺CLDC、CDC、MIDP,喔喔,后面还冒出了Personal Java、Embedded Java以及JES等名词。虽然是Java的微小版,可是它的世界可真是不小,足以令人眼花撩乱。

    的确,笔者在刚开始接触Java 2 Micro Edition的时候,就感觉到这个玩意儿实在越看越让人摸不着头绪。即使大家都已经明白如何针对Java 2 Micro Edition撰写程序,但是笔者还是认为,对Java 2 Micro Edition有个巨观的了解一定会对大家有很大的助益。因此本文将反璞归真,带大家从巨观的角度来看待Java 2 Micro Edition的世界。希望看过本文之后,可以使大家再次体验「见山是山,见水是水」,一切豁然开朗的感觉。

    首先,我们必须先明白Java 2 Micro Edition在整个Java技术之中的定位。

█各种Java版本的定位

    使用Java撰写程序的人都知道,Java规格之中有一组所谓的核心类别(Core Class,即java.* ),在核心类别之外还有所谓的扩充类别(Extended Class,即javax.* )。根据对这两种类别的支持程度,进而区分出四种不同的Java版本,如下图所示:



    上图所描述的只是各种不同Java版本所支持之核心类别的范围,并无法针对这些版本所支持的额外扩充类别座描述。另外,此图也说明了这些版本所支持的Java基本型别(primitive type,即boolean、byte、short、int、long、float、double这些型别)的范围。同心圆的越外面,所支持的核心类别就越完整。反之位于同心圆内部的Java版本,所支持的就只是核心类别的子集合,而且越往里面,所支持的核心类别子集合就越小。同样地,越在同心圆的外部,所支持的Java基本型别就越完整,而越在同心圆内部,所支持的Java基本型别就越少。

    要理解这个图,我们必须以Java 2 Standard Edition(J2SE)作为基准,这个版本实做了所有Java标准规格之中所定义的核心类别,也支持所有的Java基本型别。J2SE定位在客户端程序的应用上。
    从J2SE往外延伸,其外头的同心圆为Java 2 Enterprise Edition(J2EE),此版本除了支持所有的标准核心类别,而且还增加了许多支持企业内部使用的扩充类别,比方说支持Servlet / JSP的javax.servlet.* 类别、支持Enterprise Java Bean的javax.ejb.* 类别。当然J2EE必定支持所有的Java基本型别。J2EE定位在服务器端(server-side)程序的应用上。

    从J2SE向内看,首先会看到Java 2 Micro Edition(J2ME),它所支持的只有核心类别的子集合,比方说J2ME CLDC的规格之中,只支持java.lang.*、java.io.*、以及java.util.*这些类别。此版本也增加了一些支持”微小装置”的扩充类别,如javax.microedition.io.*类别。然而,此版本并不支持所有的Java基本型别,就标准的J2ME CLDC之参考实做,也就是能在PalmOS上执行的KVM(K Virtual Machine)来说,它就不支持属于浮点数(float、double)的Java基本型别。J2ME定位在嵌入式系统的应用上。

    同心圆的最里面,还有一个Java的Smart Card版本,这个部分原本在Java的文件之中并没有这样定义,但是以笔者对所有Java版本的了解,将它画在J2ME内部是很合理的。因为Smart Card版本只支持java.lang.*这个核心类别,比起J2ME所支持的核心类别更少,但它也有属于自己的扩充类别,如javacard.*、javacardx.*这些类别。Smart Card版本只支持boolean与byte这两种Java基本型别。就如同其名称,此版本定位在Smart Card的应用上。

    在以上每一种Java版本之中,都有属于自己的虚拟机器(VM),藉以达成「Write once,run anywhere」的终极目标。在Smart Card上有Card VM,负责执行下载到Smart Card上的Card Applet;在J2ME的世界里,其标准参考实做—KVM,用来执行下载至嵌入式装置上的Spotlet或MIDlet;在J2SE与J2EE之中,有Classic VM与HotSpot VM负责执行Java Applet、Java Servlet或Java Application。

    HotSpot VM是新一代的JVM,相较之下Classic VM则是传统的JVM。根据Javasoft的说法,HotSpot VM让Java程序的执行效率大幅提升。其实HotSpot VM还分成client版与server版。为何要区分成这两种呢? 其实主要是因为在客户端执行的应用程序与服务器上所执行的应用程序在基本需求上有所不同,客户端应用程序比较注重画面上的美观、使用者接口的灵敏度;而服务器上执行的应用程序则比较没有画面上的需求,因此HotSpot VM的两种版本就是为了针对不同的需求而分别予以最佳化而产生的结果。


    其实以上所述的VM都只是Javasoft根据Java 虚拟机器规格的标准实做,实际上有许多家公司都有自己所开发出来的VM,而且也符合Java 虚拟机器规格,比方说IBM的J9 VM就是一个例子。所以大家千万别以为JVM只Sun一家,别无分号。

【工具】让开发更高效-Firefox Developer Edition

引言  工欲善其事,必先利其器。对于开发者来讲,好的开发工具无异于如虎添翼,能够提高工作效率。  在进行Web开发时,离不开一款强大的浏览器来进行调试与检测,今天为大家分享mozilla基金会旗下的定...
  • u013201439
  • u013201439
  • 2016年12月11日 21:40
  • 5139

Smith Micro Moho Pro(二维动画制作软件) v12.4.0官方中文版下载附安装教程

Moho12汉化版是又称Anime Studio 12,一款专业的2D动画制作软件,为用户提供了先进的动画制作工具,可以进行动画智能变形、时间轴设计、物理运动跟踪、64位架构设计、贝塞尔手柄动画等设计...
  • mililly2013
  • mililly2013
  • 2017年11月29日 21:41
  • 210

Micro definition ---C语言中宏定义使用总结

Micro definition ---C语言中宏定义使用总结 1、在头文件中定义不会变化的常量 #define MAX_LEN 1024...
  • qq302501035
  • qq302501035
  • 2014年12月27日 16:16
  • 574

将手机micro-USB口转换为USB Type-C连接器的低成本方案(非标准,需要定制线缆)

将手机micro-USB口转换为USB Type-C连接器的低成本方案
  • zoosenpin
  • zoosenpin
  • 2014年12月20日 10:25
  • 13486

【物联网智能网关-17】.NET Micro Framework之MDK C++二次开发

.NET Micro Framework虽然好学易用,但是在一些需要实时,需要高性能的应用领域,却有些勉为其难。我们提供基于流式驱动方式用MDK开发C++程序。用户程序可采用标准的流式驱动接口进行相关...
  • yefanqiu
  • yefanqiu
  • 2014年01月16日 18:17
  • 5716

USB、Mini-USB、Micro-USB接口的引脚定义

看到网络上有很多USB、Mini-USB(迷你USB)接口的文章,里面有很多手工画的贴图要么不清楚,要么就是错误的(按照它的标法,插头都插不到插座里),考虑到USB连线和接口应用的广泛性,特重新整理编...
  • tanzhongqiao
  • tanzhongqiao
  • 2014年04月14日 10:57
  • 5092

java 利用JAX-RS快速开发RESTful 服务

JAX-RS(Java API for RESTful Web Services)同样也是JSR的一部分,详细规范定义见 https://jcp.org/en/jsr/detail?id=311 。从...
  • a258831020
  • a258831020
  • 2015年10月12日 17:27
  • 387

USB 2.0 A型、B型、Mini和Micro接口 type-c 定义及封装

免责声明:所有资料均来自互联网,如有错误之处,本人概不负责。 出处:http://blog.163.com/wilicedon_lee/blog/static/81588483201011741421...
  • wuhenyouyuyouyu
  • wuhenyouyuyouyu
  • 2016年09月12日 11:32
  • 24482

论文中著名会议和期刊的一些介绍(持续更新中)

(1)ICLR        ICLR,全称为「International Conference on Learning Representations」(国际学习表征会议),2013 年才刚刚成立了...
  • program_developer
  • program_developer
  • 2017年06月02日 17:39
  • 534

【吐槽】VS2012的安装项目只能用InstallShield Limited Edition[附资源下载]

【吐槽】VS2012的安装项目只能用InstallShield Limited Edition[附资源下载] 以前版本的Visual Stuido中安装项目都可以使用微软自家的Vis...
  • kingmax54212008
  • kingmax54212008
  • 2014年05月17日 11:11
  • 2742
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 2 Micro Edition简介(一)
举报原因:
原因补充:

(最多只允许输入30个字)