说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

不是灌水,真的不懂。

编辑:说三道四文库 发布时间:2017-11-20 10:28
HTML文档下载 WORD文档下载 PDF文档下载
j2se,j2ee,j2se有什么区别阿?是java的各个版本,还是什么东东,和java2有什么关系?
????
 J2ME (Java 2 Micro Edition) 简介 
 
 
中国科大BBS 
 
 

■前言 
  
 如果您曾经到http://www.javasoft.com 网站上查询有关Java 2 Micro 
Edition 的资料,十之八九会被一大堆的技术名词搞的一头雾水。什么 K
VM ,什么CLDC 、CDC 、MIDP ,後面还冒出了Personal Java 、Embedde
 d Java以及JES 等名词。虽然名为Java 的微小版本,可是它的世界可真
是不小,让我们满肚子「见山不是山,见水不是水」的疑惑。的确,在我
刚开始接触 Java 2 Micro Edition 的时候,就感觉到这个玩意儿实在越
看越让人摸不著头绪。因此在本章中,我舍弃了技术上的细节,希望带大
家从巨观的角度来看待 Java 2 Micro Edition 的世界。希望读过本章之
後,可以使大家体验「见山是山,见水是水」,一切豁然开朗的感觉。首
先,我们必须先对Java 2 Micro Edition 在整个Java 技术之中的定位做
个了解。 
  
 ■各种不同版本之Java 程序的开发 
  
 如前面所说,各种不同的Java 版本,在其支援的核心类别函式库之完整
性以及所支援的 Java 基本型别这两件事情上都有所差异,也就是说,不
管您开发的是企业所使用的Java 程序、嵌入式装置上执行的Java 程序、
浏览器上执行的Applet ,或是在PC 上执行的应用程序。您都必须在您的
电脑上先安装 J2SE ,然後再安装各种版本的核心类别函式库以及额外的
扩充类别函式库,如此才能成功地开发各种不同目的的Java 程序。J2SE 
所提供的Java 编译器(javac.exe)可以帮助我们编译各种不同平台上的Ja
va 程序,而J2SE 所提供的Java 虚拟机器(java.exe)则可以帮助我们在P
 C 上先行测试这些程序执行结果的正确与否。另外,Java 编译器并不会
帮您检查您的程序是否符合各种平台上所支援的核心类别函式库与 Java 
基本型别。举例来说,虽然我们在前面说过,Smart Card 版本并不支援b
oolean 、byte 以外的Java 基本型别,而且该平台也只支援java.lang.*
核心类别,可是当我们在撰写 Smart Card 平台上的程序时,就算在程序
码里头用了boolean 或byte 以外的Java 基本型别,或者使用了java.lan
 g.*之外的其他核心类别,编译器仍然可以照常帮您编译出类别档。这个
时候大家一定开始产生疑惑 --那么这些程序如果放到Smart Card 上头执
行的时候,出了问题怎么办 ? 难道不会造成Smart Card 上的虚拟机器执
行时发生错误吗 ? 针对这个可能发生的潜在问题,Sun Microsystems 在
各种不同版本的开发套件中,有些会内附检查器 (checker)或者预先审核
器 (preverifier),这两个工具可以帮助您在将程序放到目标平台之前先
做好检查和预先审核的工作。检查器会帮您找出类别档之中不合目标平台
规格的部分,并提醒你这些地方可能无法在目标平台上执行。因此只要有
检查器的协助,您大致上可以确定您的程序可以符合目标平台的规定并顺
利执行。 Java Card 的开发套件中就附有检查器。 
  
 而某些平台的开发套件则附有预先审核器,预先审核器除了做检查器做
的工作之外,还有一项额外的工作,就是减轻目标平台上虚拟机器的负担
,要解释预先审核器这个额外的工作,在传统的 Java 程序之中,为了安
全上的考量,任何进入执行环境的类别档 (不管该类别档是来自本机或是
远端机器 ),都必须先经过Byte Code 审核器(Byte code verifier)的验
证,以防止程序在传送途中遭到恶意的修改,而使得 Java 程序在执行时
对系统有不良影响。经过审核之後,该类别档才能开始被J 虚拟机器所执
行。如果这个审核的动作在一般的 PC 上执行,速度倒是还能够接受,可
是一旦放到如 Palm 或是手机这些CPU 较慢、记忆体也比较少的机器上面
就显得十分吃力了。为了节省宝贵的 CPU 运算时间(既能省电又能够加速
程序执行 ),因此,在程序设计师产生能够让某些特定平台执行的类别档
之前,程序设计师必须先在 PC 上使用预先审核器做一些前置的审核工作
,预先审核器会在类别档之中加入一些特殊标记或符号。如此一来,当这
些程序放到目标平台上执行时,就可以大幅减少在目标平台上做审核时的
时间,藉而加速程序的的启动及执行速度。因此在J2ME 之下的程序(Spot
let 、MIDlet),其执行步骤变成因为预先审核的关系,执行时Byte Code
 审核器的工作就变少了,也因此从程序载入到开始执行之间的时间因而
缩短。 CLDC标准实作和MIDP 参考实作之中就附有预先审核器。 
  
 ■Java 版本的演进 
  
 相信熟悉Java 演进历史的人或多或少都听说过,Java 技术一开始并非
就叫做 Java ,而是叫做OAK ,而且最早的时候就是为了嵌入式系统而设
计的一项产品。後来因为网际网路的发达,而OAK 的诸多特性刚好又适合
用在网路上(例如可移植性、编译後程序码很小),因为商标已被注册的关
系,因此 OAK 被改名成Java ,从此因缘际会地成了网路上的闪亮巨星,
并随著时间越来越成熟,也慢慢地产生了许多非原本预期中的相关运用。
虽然 Java 已经被用到许多企业级软体上,可是其实骨子里面还是非常适
合用在嵌入式系统之中。 
  
 虽然从Java 1.0 发表之後,Java 就被广泛地使用在桌上型应用程序以
及Applet 的开发上,但是,从Java 1.1 开始,Java又回到了它一开始的
老路--也就是嵌入式系统方面的应用,在当时Sun Microsystems 发表了E
mbedded Java 与Personal Java(也有人简称为PJava)这两项规格。其中E
 mbedded Java 是为了资源十分有限,而且没有显示设备的嵌入式装置而
设计; Personal Java 则是为了在能够与网际网路连线、并拥有显示系
统(例如彩色LCD)的消费性电子装置而设计。接著Java 的版本演进到Java
 2 ,这时为了再明显区分各种Java 的应用,所以分割出了J2EE 、J2SE 
、以及 J2ME 三种版本。这三种版本的各种特性我们已经在前面已经详细
地描述,在此不再赘述。不过请大家记住,由於 Java 2将Java 的应用区
分成三大块,使得 Java 程序语言的发展不会再像Java 1.1时如树枝状般
扩散出去,这么一来有助於大家对 Java 各种应用的??清,而不会造成今
後越发展下去越不可收拾的混乱局面。额外向大家一提的是,後来Person
 al Java 发展到1.2 版的时候,也采用了一些Java 2 平台上与安全性有
关的设计。 
  
 ■Java 2 Micro Edition 概观 
  
 J2ME 在设计其规格的时候,遵循著「对於各种不同的装置而造出一个单
一的开发系统是没有意义的事」这个基本原则。於是 J2ME 先将所有的嵌
入式装置大体上区分为两种 :一种是运算功能有限、电力供应也有限的嵌
入式装置(比方说PDA 、手机);另外一种则是运算能力相对较佳、并请在
电力供应上相对比较充足的嵌入式装置 (比方说冷气机、电冰箱、电视机
上盒 (set-top box))。因为这两种型态的嵌入式装置,所以Java 引入了
一个叫做Configuration 的概念,然後把上述运算功能有限、电力有限的
嵌入式装置定义在Connected Limited Device Configuration(CLDC)规格
之中;而另外一种装置则规范为 Connected Device Configuration(CDC)
规格。也就是说, J2ME 先把所有的嵌入式装置利用Configuration 的概
念区隔成两种抽象的型态。 
  
 其实在这里大家可以把Configuration 当作是J2ME 对於两种类型嵌入式
装置的规格,而这些规格之中定义了这些装置至少要符合的运算能力、供
电能力、记忆体大小等规范,同时也定了一组在这些装置上执行的 Java 
程序所能使用的类别函式库、这些规范之中所定义的类别函式库为 Java 
标准核心类别函式库的子集合以及与该型态装置特性相符的扩充类别函式
库。比方就CLDC 的规范来说,可以支援的核心类别函式库为java.lang.*
、java.io.*、java.util.*,而支援的扩充类别函式库为java.microedit
ion.io.*。区分出两种主要的Configuration 之後,J2ME 接著在定义出P
rofile的概念。Profile 是架构在Configuration 之上的规格。之所以有
Profile的概念,是为了要更明确地区分出各种嵌入式装置上Java 程序该
如何开发以及它们应该具有哪些功能。因此Profile 之中定义了与特定嵌
入式装置非常相关的扩充类别函式库,而 Java 程序在各种嵌入式装置上
的使用者介面该如何呈现就是定义在Profile 里头。Profile 之中所定义
的扩充类别函式库是根据底层Configuration 内所定义的核心类别函式库
所建立。 
  
 ■Java 在嵌入式系统上的应用 
  
 由於Java 本身最初的设计理念即是针对嵌入式系统,因此将他用在嵌入
式系统上真可谓如鱼得水。在这个Linux 开始兴起的时空交会点,网路上
出现了一篇关於嵌入式 Linux 与Java 互相配合以造就双赢局面的相关报
导,这是由 LinuxDevices.com 的专栏作家 Randy Rorden 所发表的一篇
白皮书,名为「 Java 与嵌入式 Linux 合作」。 在这篇文章里头,作者
对嵌入式Linux与Java 个别的优点提出他的看法,同时也提出了Java-Lin
 ux 平台的构想。有兴趣的读者可以到到下列几个网站参考相关新闻与资
料。 
  
 1. Java 与嵌入式 Linux 合作白皮书 
   http://www.ctech.com.tw/d-news/news/linux/89090208.asp 
 2. Java 及嵌入式Linux 合作 
   http://www.linuxdevices.com/news/NS5973673868.html 
 3. 即将来临的Java-Linux 结合 
   http://www.linuxdevices.com/articles/AT7102892618.html 
  
 ■为何要用Java 撰写PDA 上的应用程序? 
  
 由於预期到今後行动通讯时代的来临,所以通讯相关行业变的前景可期
,而除了达成行动通讯的主要工具 -- 手机月来越精巧之外,有更多的厂
商相继投入PDA 的生产与开发。本来PDA 主要的平台有PalmOS 、Windows
 CE 以及EPOC ,也不知道曾几何时,开始一大堆公司投入embedded linu
x 的研发,其中包括国内资策会自己开发的 @ViS 作业系统,互慧科技也
有自己的嵌入式作业系统,当然更不用说大陆厂商与韩国厂商了。 喔喔!
这些作业平台的数量比起 PC 来说真不知道要复杂上几倍。对一般使用者
来说当然影响比较小,可是对於程序开发者来说,看到这么多不同的程序
发展平台,真是让人望之却步。如果每个平台都有自己的程序写法以及函
式库,那么光是看上面这些平台至少就要学习五种以上程序的写法。当然
,只专精一种平台当然是很好的事情。可是程序设计师不禁要说 :”如果
我们写出来的软体可以在不经过修改原始码的情况下就能够在这些平台上
执行,那不是更完美吗?” 对程序开发者来说,这样的投资报酬率当然是
最大的。 
  
 要在那么多平台上开发程序,对程序设计师来说的确是一个很大的挑战
,如果要把所有的时间和精力放在软体的可用性上,那么相对地很多时候
我们根本没有那么多时间撰写各种平台的程序。要解决这个问题,一般来
说程序设计师会选用一个可以跨平台的Framework 来达成至少source cod
 e level 的跨平台(例入Qt 就能做到)。不过在本篇文章中我们要介绍的
则是更终极的解决方案 ?Java ,利用Java 的”write once, run anywh
 ere”特性,我们可以真正达到程序只要写一次,拿到任何平台上都可以
执行(当然前提是必须要PDA 的厂商也要实作出该平台的Java Virtual Ma
chine 才行)。利用Java 来做PDA 上的程序当然有其缺点,最广为人知的
可能就是执行效率的问题, Java 在执行速度这个议题上一直让人诟病。
不过笔者认为,随著技术的发达,将会有更快更省电的PDA 专用CPU 出现
,因此效率上的问题其实是可以忽略的。更何况,当 Sun 在设计J2ME 的
时候,也用了很多方式企图加快Java 在PDA 上的执行速度(例如预先审核
 )。 
  
 ■总结 
  
 看完了本章之後,您对整个Java 2 Micro Edition 有个大致上的了解了
吗? 再进入下一章之前,请务必弄清楚本章所提到的专有名词。如果各
位想对各种技术规格做更详细的了解,请自行参考下表所列出的网页。 
  
 Consumer & Embedded Technologies 
 http://java.sun.com/products/consumer-embedded/ 
  
 Consumer & Embedded Technology Center 
 http://developer.java.sun.com/developer/products/j2me/ 
  
 Java 2 Micro Edition 
 http://www.javasoft.com/j2me/ 
  
 JDC J2ME Tech Tips 
 http://developer.java.sun.com/developer/J2METechTips/ 
  
 CLDC & KVM 
 http://www.javasoft.com/products/cldc/ 
  
 C & E Center Wireless Technologies 
 http://developer.java.sun.com/developer/products/j2me/wireless.
 html 
  
 MIDP 
 http://www.javasoft.com/products/midp/ 
  
 Embedded Java 
 http://www.javasoft.com/products/embeddedjava/ 
  
 Personal Java 
 http://java.sun.com/products/personaljava/ 
  
 JavaPhone 
 http://java.sun.com/products/javaphone/ 
  
 Java Embedded Server 
 http://www.sun.com/software/embeddedserver/index.html 
  
 C & E Center Java Embedded ServerTechnology 
 http://developer.java.sun.com/developer/products/j2me/embedserv
 .html 
  
 JavaTV 
 http://www.javasoft.com/products/javatv/ 
  
 C & E Center Digital Interactive Television 
 http://developer.java.sun.com/developer/products/j2me/tv.html 
  
 Java Card 
 http://java.sun.com/products/javacard/ 
  
 C & E Center JavaCardTechnology 
 http://developer.java.sun.com/developer/products/j2me/smartcard
 .html 
  
 Motorola 官方Java 网站 
 http://www.motorola.com/java/ 
  
 JINI 
 http://www.sun.com/jini/ 
  
 C & E Center Downloads & Specifications 
 http://developer.java.sun.com/developer/products/j2me/downloads
 .html 
  
 Spotless System Page 
 http://www.sun.com/research/spotless/ 
 
 
易混淆的几个JAVA术语 
 

1.J2EE
J2EE是JAVA 2 PLATFORM ENTERPRISE EDITIONS 的简称,它是一个套件,它很有可能成为服务器端的标准。包含有:

Enterprise JavaBeans(EJB)
JavaServer Pages(JSP)
JDBC 
Java Message Service(JMS)
J2EE Connector
JAVA Servlets 
Java Naming and Directory InterfaceTM (JNDI)
JavaTM Interface Definition Language (IDL)
JavaTM Transaction API (JTA)
JavaTM Transaction Service (JTS)
JavaMail
RMI-IIOP

2.J2SE
J2SE是JAVA 2 Platform, Standard Edition的简称,它也是一个套间,
它主要包含有:
JDK 1.1.x
JRE 1.1.x
3.JDK
JDK是JAVA DEVELOPMENT KIT的简称,它是最重要的开发工具,主要包括开发所用的调试,编译,运行等必须的软件工具。现在的版本都是1.1.x系列。
4.JSDK
是JAVA Software Development Kit的简写,它是给开发人员用的,很多人误以为它是针对Serverlet的。JSDK有两类版本:
JAVA SDK Standard Edition和Enterprise Editions。现在一些最新的JAVA开发软件都附带它(Standard Edition),
如JBUILDER3.5.
5.JSP
是JavaServer Pages的简写。
6.JSWDK
是JavaServer Web Development Kit的简称,最新版本是1.0.1,支持JSP 1.0和Servlet API 2.1。它主要是配合WEB服务器使用。
7.TOMCAT
是有SUN提供技术支持开发的,包括了JSWDK的全部功能,还有一些加强的,它是JAKARTA套间的一部分。
8.JRE
是Java Runtime包括了JAVA虚拟机,一些核心类和相关的支持文件。是JDK的一部分(RUNTIME部分)。 
 
 
写得真不错!
23.5亿美元!谷歌出售摩托罗拉机顶盒业务 两家巨头相继放弃移动广告,移动广告形势堪忧? 应用洗牌,还能免费多久?Google推出iPad版Quickoffice 2012末日APP推荐 求生自救必备! Windows8上网利器 不卡死的IE10浏览器 为何Java程序员学习Clojure有优势? 我们是如何阅读代码的? “热水冷却”技术将主导美国国防部数据中心改造 程序员想玩转大数据:需要知晓的12种工具 2012年谷歌应用商店增长迅速 但苹果最赚钱 Apple微软Google都在竞购一家创业公司 违反新条款?苹果强行下架AppShopper 2012移动开发教程盘点:最棒的国外游戏开发站 重思JavaScript的好与坏 细数那些 NeXT 留给 OS X 的遗产 一张图让你知道大数据的生态系统 Camera360开放SDK:拍照和滤镜一行代码搞定 一周消息树:计算机将拥有五感 人类面临威胁? 通晓数学的人就可以当程序员吗? 360发布企业版4.0 可自定义软件白名单 不要总是依赖机器 MongoDB扩展彰显分片功夫 Dell与HP的OpenStack的战略:渠道对抗SLA 路况电台王雷:未来车载系统会是Android的天下 移动周报:2012移动开发工具系列盘点 谷歌不愿错失机会 Android或不再成它人独享 黑客文化:Facebook公布2012年Hackathon大赛顶级“黑客作品” 中国移动音乐开放平台正式对外开放 GitLab 4.0发布 更好地支持PostgreSQL 傻瓜式移动应用开发平台:专访摩讯创始人赵健 日本DeNA进军中国智能电视,与海信战略合作 扎克伯格不仅为Poke编码,而且还“献声” 同志们 再见 接分! 再发一次,ie版本问题怎么解决,100分 请教:在Rational rose中如何去设计数据库表? 为什么wndows2k pro一访问windows2k server就有"打印机"和"任务计划"的共享,可不可以消除? win2k server下,iis5.0有问题,我想卸载,再重新安装,怎么做? treeview的使用小结(一) INDY 资料! 请分析这段代码,谢谢 怎样获得DataGrid的DataSource? 有关struts的问题,返回页面结果不对!在线等待,以解决就结帖 怎么改变快捷菜单PopupMenu1的颜色? 用OWC组件做柱状图,需要显示不同颜色的柱状以及显示不同颜色的图例 VS.NET中如何让自定义的事件出现在属性编辑器中? javascript 中有没有能返回指定某年某月中总天数的函数 如何将主窗体中的变量传到报表中,以供dataset查询用,急急急!!! 新手探路 不知道这是不是一个bug 函数返回值类型问题 兄弟我现在改行搞传统的邮政商业信函业务!给点建议!来者有分! 装有isa客户端的机器不能用FlashGet或者蚂蚁下载 网路多少钱才要交税? Kingofark关于英语及外语学习的50个观点 adotable定位记录有哪些方法?如何使用? 超高难度求sql语句,非高手莫进,在线等.......... petshop有些代碼不明白。。。。。。。。。。。 哎,运算符重载把我卡住了!求救!!! 最后 请问函数传递,设置默认值问题! 通过ODBC连接INFORMIX的问题!急!急!急! 有没有VC高手想在上海找工作? 求一个发送邮件的例子(急!!) 有谁碰到过多人同时改写几十个xml文件从而导致xml文件混乱的情况? 我在datawindow中设置initial vlaue=0,为什么写到数据库里的值还是null 请问联众和中游客户端的聊天大厅是基于chtmlview还是crichedit编程的? WINDOWS高级用户或技术支持人员请进! 通过ODBC连接INFORMIX的问题!急!急!急! 将数据保存到数据库问题 ???急。。。在线等待。。。 一个动态模板列的问题 请各位兄弟姐妹扔个FontTwister1.3的注册码上来,谢过了。 高分求救:怎么时查询后的记录成高亮状态! jsp中如何得到 select 控件的值??? 初学者求救!!!! NetBSD China站点开通<CSTC团队> 从数据库读出字段类型为int型的数据,如何转换成字符型的? 想用C来做个东西,但不知做什么好 exchange 2003 rc1版安装后后没有M盘?就是没有M盘,还是安装的问题? 关于水晶报表打印的问题,请各路大侠指点迷津 请大家(特别是安逸)指点一下关于pppoe的开发。 弱弱一问,dll 能静态连接吗? 在jbuilder中project webapplication jsp什么关系 疑问 姹紫嫣红总是春前面一句啊是首唐诗里的 忘了前面一句是什么? 用云淡风轻、繁花似锦、姹紫嫣红、晶莹剔透造一句话 主港和偏港分别是什么意思 什么是( 港主)在马来西亚有关历史事件报导中,常题到 中国主港是指什么地区啊? 港咩也 什么意思 初一上册语文第8课第2个寓言《落难的王子》1.“我”在情节中起到的作用是什么?2.“天哪,太可怕了,这事落到我头上,我可受不了!”这句话在课文重反复出现过3次,都是在什么情况下出现的? 国庆见闻怎么写快,急要,400字以上 女生带字头像要骂人的 用导数求面积最小值抛物线y=ax^2+bx在第一象限内与直线x+y=4相切.此抛物线与x轴所围成的图形的面积记为S, 求使S达到最大值的a,b值, 并求Smax 要详细过程 古代花字的来历 永康两家企业排污被当地镇政府责令停产中国军工产业向全球进军 开始与西方竞美媒称土购中国导弹或是把特洛伊木马塞德国就默克尔手机或被美监听一事召见美美国情报机构被爆监听35名国际政要电俄要求美与“俄机构在美招募间谍”指控习仲勋在洛阳:要求管好部队纪律(组图广州公务员2012年人均工资加补助为专家:我国在售5大类17种转基因生物美方称无迹象显示两美国人遭绑架是恐怖中国画家潘义奎获艺术界\"诺贝尔\"银行理财收益率年后微降情人节,爱情扎堆来下一篇隔空20年,终迎“张...中国商人资助160万美元下一篇防止“单独两孩”政策走偏年前进的鞭炮现在还没卖完趵突泉灯会高峰将至周边六条道路禁停车2014年1月新闻人物盘点:冯小刚趵突泉灯会高峰将至周边六条道路禁停车
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘