分享
 
 
 

Java 2 Micro Edition简介(一)

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

本文作者:王森

台湾交通大学科技管理研究所

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一家,别无分号。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有