JAVA教程之高效的java非常处置仓酷云
j2EE和asp比较,其实也没什么比的,原因和我上面说那些比较差不了多少,也是稳定性,安全性,J2EE比asp高,速度上比不过asp,asp也是延续着它的拖拽控件的方法,提高速度。1基础信息择要:本文倡议一种对非常前提实质的思索体例,并形貌一些有助于计划的形式。最初,本文还将在AOP模子中,作为互相浸透的成绩,来会商非常的处置。当你能准确利用非常时,它们会有极年夜的优点。本文将匡助你做到这一点。
2为什么非常是云云主要
Java使用中的非常处置在很年夜水平上展现了其所基于架构的强度。架构是在使用程序各个条理上所做出并遵守的决意。个中最主要的一个就是决意使用程序中的类,亚体系,或层之间相同的体例。Java非常是Java办法将另类实行了局交换进来的体例,以是值得在使用架构中赐与特别存眷。
一个权衡Java计划师程度和开辟团队规律性的好办法就是读读他们使用程序里的非常处置代码。起首要注重的是有几代码用于捕捉非常,写进日记文件,决意产生了甚么,和在分歧的非常间跳转。洁净,简便,联系关系性强的非常处置一般标明开辟团队有着不乱的利用Java非常的体例。当非常处置代码的数目乃至要凌驾其他代码时,你能够看出团队之间的交换互助有很年夜的成绩(大概在一入手下手就不存在),每一个人都在用他们本人的体例来处置非常。
对突发非常的处置了局是能够预感的。假如你问问团队成员为何非常会被抛出,捕捉,或在特定的一处代码里无视了非常的产生,他们的回覆一般是,“我没有其余可做”。假如你问当他们编写的非常真的产生了会怎样,他们会皱皱眉,你失掉的回覆相似于如许,“我不晓得。我们从没测试过。”
你能够从客户真个代码判别一个java的组件是不是无效使用了java的非常。假如它们包括着年夜堆的逻辑往弄分明在什么时候一笔操纵失利了,为什么失利,是不是有填补的余地,那末缘故原由很有大概要归罪于组件的报错计划。毛病的报错体系会在客户端发生大批的“纪录然后忘记”的代码,这些代码鲜有效途。最差的是弄拧的逻辑,嵌套的try/catch/finally代码块,和一些其他的凌乱而招致懦弱而难于办理的使用程序。
过后再来办理Java非常的成绩,或基本就不办理,是软件项目发生凌乱并招致滞后的次要缘故原由。非常处置是一个在计划的各个部分都急需办理的成绩。对非常处置创建一个架构性的商定是项目中主要做出的决意。公道利用Java非常模子对确保你的使用复杂,易保护,和准确有着久远的影响。
3剖析非常
准确利用Java非常模子所包括的内容一向以来有着很年夜的争议。Java不是第一种撑持非常算法语义的;可是,它倒是第一种经由过程编译器来实行声明和处置某些非常的划定规矩的言语。很多人都以为编译时的非常反省对准确的软件计划很有匡助。显现的Java非常的品级。
<br>
:Java非常的品级
一般,Java编译器强制抛出基于java.lang.Throwable的非常的办法要在它声明中的“throws”部分加上谁人非常。并且,编译器还会证明客户真个办法大概捕捉已声明的非常,大概出格声明本人也抛出一样的非常。这些复杂的划定规矩对天下局限的Java程序员都有深远的影响。
编译器抓紧了对Throwable承继树中两个分支的非常反省。java.long.Error和java.lang.RuntimeException的子类免于编译时的反省。在这两类中,软件工程师一般对运转中非常更感乐趣。“不反省”的非常指的是这一组,以便和一切别的“反省”的非常区分开。
我能够设想那些承受“反省”的非常的人,也会很垂青Java的数据范例。究竟,编译器对数据范例施加的限定勉励严厉的编码和准确的头脑。编译时的范例反省对削减运转时的严峻成绩有匡助。编译时的非常反省也能起到相似的感化,它会提示开辟职员某个办法大概会有料想不到的了局必要处置好。
初期的倡议是尽量的利用“审查的非常”,以此来最年夜限制的使用编译器供应的匡助来写出无毛病的软件。Java类库API的计划者们都认同这一点,他们普遍地利用“审查的非常”来摹拟类库办法中几近一切的告急应变措施。在J2SE5.1API规格中,“审查的非常”范例已2比1的比率凌驾了“未反省的非常”范例。
对程序员而言,看上往在Java类库中年夜多半的经常使用办法对每个大概的失利都声了然“审查的非常”。比方,java.io包
对IOException这个“审查的非常”就有着很年夜的依附。最少有63个Java类库包,或间接,或经由过程十几个上面的子类,抛出这个非常。
I/O的失利极为有数,可是却很严峻。并且,一旦产生,从你所写的代码里基础上是没法弥补的。Java程序员意想到他们不能不供应IOException或相似的不成弥补的事务,而一个复杂的Java类库办法的挪用便可能让这些事务产生。捕捉这些非常给原本复杂的代码带来了必定的流畅,由于即便在捕捉的代码块里也基础上帮不上忙。可是不加以捕捉又大概更糟,由于编译器请求你的办法必需要抛出那些非常。如许你的实行细则就不能不表露在外了,而一般好的面向对象的计划都是要埋没细节的。
如许一个不成能赢的场合排场招致了我们明天所告诫的尽年夜多半污名卓越的非常处置的倾覆性情局。同时也衍生了良多准确或毛病的弥补之道。
一些Java界的出名人物入手下手质疑Java的“审查的非常”的模子是不是是一个失利的实验。有一些工具一定是失利的,可是这和在Java言语里到场对非常的反省是毫有关联的。失利是因为在JavaAPI的计划者们的头脑里,年夜多半失利的情况是相同的,以是能够经由过程统一种非常转达进来。
4妨碍和应变
让我们来思索在一个设想的银行使用中的CheckingAccount类。一个CheckingAcccount属于一个用户,纪录着用户的存款余额,也能承受存款,承受止兑的关照,和处置汇进的支票。一个CheckingAcccount对象必需和谐同步线程的会见,由于任何一个线程都大概改动它的形态。CheckingAcccount类里processCheck的办法会承受一个Check对象为参数,一般从帐户余额里减往支票的金额。可是一个办理支票整理的用户端程序挪用processCheck办法时,必需有两种大概的应变措施。一,CheckingAccount对象里大概对该支票已有一个止付的命令;二,帐户的余额大概不敷已满意支票的金额。
以是,processCheck的办法对来自客户真个挪用能够有3种体例回应。一般的是处置好支票,并把办法署名里声明的了局前往给挪用方。两种应变的回应则是必要与支票整理端相同的在银行范畴实其实在存在的情形。processCheck办法一切3种前往了局都是依照典范的银行支票帐户的举动而经心计划的。
在Java里,一个天然的办法来暗示上述告急的应变是界说两种非常,好比StopPaymentException(止付非常)和InsufficientFundsException(余额不敷非常)。一个客户端假如疏忽这些非常是不合错误的,由于这些非常在一般操纵的情形下必定会被抛出。他们好像办法的署名一样反应了办法的周全举动。
客户端能够很简单的处置好这两种非常。假如对支票的兑付被中断了,客户端把该支票托付出格处置。假如是由于资金不敷,用户端能够从用户的储备帐户里转移一些资金到支票帐户里,然后再试一次。
在利用CheckingAccount的API时,这些应变都是能够估计的和天然的了局。他们并非意味着软件或运转情况的失利。这些非常和因为CheckingAccount类中一些外部实行细则引发的真正失利是分歧的。
假想CheckingAccount对象在数据库里坚持着一个恒定的形态,并利用JDBCAPI来对之会见。在谁人API里,几近一切的数据库会见办法都有大概由于和CheckingAccount实行有关的缘故原由而失利。好比,有人大概忘了把数据库服务器运转起来,一个未有连上的收集数据线,会见数据库的暗码改动了,等等。
JDBC依托一种“反省的非常”,SQLException,来报告任何大概的毛病。大概堕落的尽年夜多半缘由都是数据库的设置,毗连,或其地点的硬件举措措施。对processCheck办法而言,它对上述毛病是黔驴技穷的。这不该该,由于processCheck最少懂得它本人的实行细则。在挪用栈里下游的办法能处置这些成绩的大概就更小。
CheckingAccount这个例子申明了一个办法不克不及乐成前往它想要的了局的两个基础缘故原由。这里是两个形貌性的术语:
应变
与实践意料符合,一个办法给出别的一种回应,而这类回应能够表告竣该办法所要到达的目标之一。这个办法的挪用者意料到这个情形的呈现,并有绝对的对付之道。
妨碍
在未经企图的情形下,一个办法不克不及到达它的初志,这是一个不诉诸该办法的实行细则就很难弄清的情形。
使用这些术语,对processCheck办法而言,一个止付的命令和一个逾额的提取是两种大概的应变。而SQLException反应了大概的妨碍。processCheck办法的挪用者应当可以供应应变,但却纷歧定能无效的处置好大概产生的妨碍。
Java非常的婚配
在创建使用架构中Java非常的划定规矩时,以应变和妨碍的体例细心思索好“甚么大概会堕落”是有久远意义的。
<br>
应变情形恰到好处地婚配给了Java反省的非常。由于它们是办法的语义算法条约中不成短少的一部分,在这里借助于编译器的匡助来确保它们失掉办理是很有事理的。假如你发明编译器保持应变的非常必需要处置大概在不便利的时分必需要声明会给你带来些贫苦,你在计划上几近一定要做些重构了。这实际上是件功德。
呈现妨碍的情形对开辟职员而言是蛮成心思的,但对软件逻辑而言却并不是云云。那些软件”消化成绩“的专家们必要关于妨碍的信息以便来办理成绩。因而,未反省的非常是暗示妨碍的很好体例。他们让妨碍的关照一成不变地从挪用栈上一切的办法滤过,抵达一个专门来捕捉它们的中央,并失掉它们本身包括的有益于诊断的信息,对全部事务供应一个有克制的文雅的结论。发生妨碍的办法不必要来声明(非常),下游的挪用办法不必要捕捉它们,办法的实行细则被准确的埋没起来-以最低的代码庞大度。
新一些的JavaAPI,好比像Spring架构和JavaDataOjects类库对反省的非常几近没有依附。HibernateORM架构在3.0版本里从头界说了一些关头功效往复除对反省的非常的利用。这就意味着在这些架构告发的尽年夜部分非常都是不成恢复的,归罪于毛病的办法挪用代码,或是相似于数据库服务器之类的底层部件的失利。出格的,强制一个挪用方来捕捉或声明这些非常几近没有任何优点。
计划里的妨碍处置
在你的企图里,供认你必要往做就迈好了无效处置好妨碍的第一步。对那些深信本人能写出自作掩饰的软件的工程师们来讲,供认这一点是不简单的。这里是一些有匡助的思索体例。起首,假如毛病俯拾地芥,使用的开辟工夫将很长,固然条件是程序员本人的bug本人修缮。第二,在Java类库中,过分利用反省的非常来处置妨碍情况将迫使你的代码要应对好妨碍,即便你的挪用序次完整准确。假如没有一个妨碍处置的架构,对付的非常处置将招致使用中的信息丧失。
一个乐成的妨碍处置架构必定要到达上面的方针:
•削减代码的庞大性
•捕捉和保留诊断性信息
•对符合的人提示注重
•文雅地加入举动
妨碍是使用的实在企图的搅扰。因而,用来处置它们的代码应只管的少,幻想上,把它们和使用的语义算法部分开分开。妨碍的处置必需满意那些卖力更正它们的人的必要。开辟职员必要晓得妨碍产生了,并失掉能匡助他们弄清为什么产生的信息。即便一个妨碍,在界说上而言,是不成弥补的,好的妨碍处置会试着文雅地停止引发妨碍的举动。
对妨碍情形利用未反省的非常
在做框架上的决意时,用未反省的非常来代表妨碍情形是有良多缘故原由的。Java的运转情况对代码的毛病会抛出“运转时非常”的子类,好比,ArithmeticException或ClassCastException。这为你的框架设了一个先例。未反省的非常让下游的挪用办法不必要为和它们目标不相干的情形而增加代码,从而削减了凌乱。
你的妨碍处置战略应当熟悉到Java类库的办法和其他API大概会利用反省的非常来代表对你的使用而言只多是妨碍的情形。在这类情况下,接纳计划商定来捕捉API非常,将其以妨碍来对待,抛出一个未反省的非常来唆使妨碍的情形和捕捉诊断的信息。
在这类情形下抛出的特定非常范例应当由你的框架来界说。不要健忘一个妨碍非常的次要目标是传送纪录上去的诊断信息,以便让人们来想出堕落的缘故原由。利用多个妨碍非常范例大概有些过,由于你的架构对它们都厚此薄彼。多半情形下,一条好的,形貌性强的信息将单一的妨碍范例嵌进就够用了。利用Java基础的RuntimeException来代表妨碍情形是很简单的。停止到Java1.4,RuntimeException,和其他的抛出范例一样,都撑持非常的嵌套,如许你就能够捕捉和报出导向妨碍的反省的非常。
你大概会为了妨碍呈报的目标而界说你本人的未反省的非常。如许做多是需要的,假如你利用Java1.3或更早的版本,它们都不撑持非常的嵌套。实行一个相似的嵌套功效来捕捉和转换你使用中组成妨碍的反省的非常是很复杂的。你的使用在报错时大概必要一个特别的举动。这多是你在架构中创立RuntimeException子类的另外一个缘故原由。
创建一个妨碍的屏蔽
对你的妨碍处置架构而言,决意抛出甚么样的非常,什么时候抛出是主要的决意。一样主要的是,什么时候来捕捉一个妨碍非常,以后再怎样办。这里的目标是让你使用中的功效性部分不必要处置妨碍。把成绩分隔来处置一般都是一件功德情,有一其中央妨碍处置机制久远来看是很有裨益的。
在妨碍屏蔽的形式里,任何使用组件都能够抛出妨碍非常,可是只要作为“妨碍屏蔽”的组件才捕捉非常。接纳此种形式往除年夜多半程序员为了在当地处置妨碍而拔出的庞大的代码。妨碍屏蔽逻辑上位于挪用栈的下层,如许在一个默许的举动被引发前,一个非常向上告发的举动就被制止了。依据分歧的使用范例,默许的举动所指也分歧。对一个自力的Java使用而言,这个举动指在世的线程被中断。对一个位于使用服务器上的Web使用而言,这个举动指使用服务器向扫瞄器送出不友爱的(乃至使人为难的)回应。
一个妨碍屏蔽组件的第一要务就是纪录下妨碍非常中包括的信息觉得未来所用。到如今为止,一个使用日记是做成此事的首选。非常的嵌套的信息,栈日记,等等,都是对诊断有代价的信息。传送妨碍信息最差的中央是经由过程用户界面。把使用的利用者卷进查错的历程对你,对你的用户而言都欠好。假如你真的很想把诊断信息放上用户界面,那大概意味着你的日记战略必要改善。
妨碍屏蔽的下一个要务是以一种可控的体例来停止操纵。这详细的意义要取决于你使用的计划,但一般包含发生一个可通用的回应给大概正在守候的客户端。假如你的使用是一个Webservice,这就意味着在回应顶用soap:Server的<faultcode>和通用的失利信息<faultstring>来创建一个SOAP妨碍元素<fault>。假如你的使用于扫瞄器交换,这个屏蔽就会布置好一个通用的HTML回应来标明需求是不克不及被处置的。
在一个Struts的使用里,你的妨碍屏蔽会以一种全局非常处置器的情势呈现,并被设置成处置RuntimeException的任何子类。你的妨碍屏蔽类将延长org.apache.struts.action.ExceptionHandler类,需要的话,重写它的办法来实行用户本人的出格处置。如许就会处置好不当心发生的妨碍情形和在处置一个Struts举措时发明的妨碍。显现的就是应变和妨碍非常。
<br>
应变和妨碍非常
假如你利用的是SpringMVC架构,你能够承继SimpleMappingExceptionResolver类,并设置成处置RuntimeException和它的子类们,如许很简单的就建起了妨碍屏蔽。经由过程重写resolveException的办法,你能够在利用父类的办法来把需求扶引到一个收回通用毛病提醒的view组件之前,到场你必要的用户化的处置。
当你的架构包括了妨碍屏蔽,程序员都晓得了后,再写出一次性的妨碍非常的感动就会锐减。了局就是使用中呈现更洁净,更容易于保护的代码。
5架构中应变的处置
将妨碍处置交与屏蔽后,次要组件间的应变交换变得简单多了。一个应变代表着与次要前往了局一律主要的别的一种办法了局。因而,反省的非常范例是一个可以很好地传送应变情形的存在并供应需要的信息来与它合作的工具。这个体例借助于Java编译器的匡助来提示程序员关于他们所用的API的各个方面和供应全套的办法输入的需要性。
仅仅利用办法的前往值范例来传送复杂的应变是大概的。好比,前往一个空援用,而不是一个详细的对象,能够意味着对象因为一个已界说的缘故原由不克不及被创建。JavaI/O的办法一般前往一个整数值-1,而不是字节的值或字节的数来暗示文件的开头。假如你的办法的语义复杂到能够同意的境地,另外一种前往值的办法是可使用的,由于它摒弃了非常带来的分外的花消。不敷的地方是办法的挪用方要检测一下前往的值来判别是次要了局,仍是应变了局。可是,编译器没有举措来包管办法挪用者会利用这个判别。
假如一个办法有一个void的前往范例,非常是独一的办法来暗示应变产生了。假如一个办法前往的是一个对象的援用,那末前往值只多是空或非空(nullandnon-null)。假如一个办法前往一个整数型,选择与次要前往值不抵触的,能够暗示多种应变情形的数值是大概的。可是如许的话,我们就进进了毛病代码反省的天下,而这正式Java非常形式所出力制止的。
供应一些有效的信息
界说分歧的妨碍呈报的非常范例是没甚么事理的,由于妨碍屏蔽对一切非常范例厚此薄彼。应变非常就有很年夜的分歧,由于它们的原意是要向办法挪用者传送各类情形。你的架构大概会指出这些非常应当承继java.lang.Exception或一个指定的基类。
不要健忘你的非常应当是百分百的Java范例,你能够用它来寄存为你的特别目标服务的特别字段,办法,乃至是机关器。好比,被设想的processCheck()办法抛出的InsufficientFundsException这个非常范例就应当包括着一个OverdraftProtection的对象,它可以从别的一个帐户里把充足的资金转过去。
日记仍是不要日记
纪录下妨碍非常是有效处的,由于日记的目标是在一些必要更正的情形下,日记能够吸惹人们的注重力。但对应变非常而言却并不是云云。应变非常大概代表的只是少少数情形,可是在你的使用里,每个情形仍是会产生的。它们意味着你的使用正在如最后的计划般一般事情着。常常把日记代码加进应变的捕捉块里会使你的代码流畅难明,而又没有实践的优点。假如一个应变代表了一主要的事务,在抛出一个非常应变来警省挪用者之前,发生一笔日记,纪录下这个事务大概会让这个办法更好些。
6非常的各个方面
在AspectOrientedProgramming(AOP)的术语里,妨碍和应变的处置是相互浸透的成绩。好比,要实行妨碍屏蔽的形式,一切介入的类必需遵守通用规格:
•妨碍屏蔽办法必需存活在遍历介入类的办法挪用图的最前端
•介入类必需利用未反省的非常来暗示妨碍情形
•介入类必需利用妨碍屏蔽希冀失掉的有针对性的未反省的非常范例
•介入类必需捕捉并从低端办法中把在实行情境下必定的妨碍转换成反省的非常
•介入类不克不及搅扰妨碍非常被传送到妨碍屏蔽的历程
这些成绩超出了那些本不干系的类的界限。了局就是多数零星的妨碍处置代码,和屏蔽类和介入类间暗含的耦合(这已比不利用形式前进多了!)。AOP让妨碍处置的成绩被封装在通用的能够感化到介入类的层面上。如AspectJ和SpringAOP如许的JavaAOP架构以为非常的处置是增加妨碍处置举动的切进点。如许,把介入者绑定在妨碍屏蔽的形式能够抓紧些。妨碍的处置能够存活在一个自力的,不干系的方面里,从而摒弃了屏蔽办法必要放在办法激活序次的最前头的请求。
假如在你的架构里使用了AOP,妨碍和应变的处置是幻想的在使用里用到的在方面上的候选。对妨碍和应变的处置在AOP架构下的利用做一个完全的勘察将是未来论文里一个很成心思的标题。
7结论
固然Java非常模子自它呈现以来就引发了强烈热闹的会商,假如利用准确的话,它的代价仍是很年夜的。作为一个计划师,你的义务是创建好规格来最年夜限制天时用好这个模子。以妨碍和应变的体例来考量非常能够匡助你做出准确的决意。公道利用好Java非常模子可让你的使用复杂,易保护,和准确。AOP手艺将妨碍和应变定位为互相浸透的成绩,这个办法大概会对你的架构供应一些匡助。
8援用
•Sun"sExceptionTutorialJava非常的基础常识
•DoesJavaNeedCheckedException?BruceEckel对Java中反省的非常的贰言
•ExceptionalJava关于非常的很好的会商,有架构式的非常划定规矩来仿照
•TheExceptionsDebate来自于developerWorks的关于非常的前因后果
•TheApacheStrutsWebApplicationFrameworkStruts的信息源
•TheSpringFrameworkSpring框架的信息源
•Wikipedia:AspectOrientedProgramming一个很好的对AOP观点的先容
•TheAspectJProjectAspectJ的信息源
原BarryRuzek译者:易晓斓,原文:http://www.yeeyan.com/articles/view/2091/976
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。 是一种将安全性(Security)列为第一优先考虑的语言 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 是一种使网页(Web Page)产生生动活泼画面的语言 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 是一种使用者不需花费很多时间学习的语言 Java 编程语言的风格十分接近C、C++语言。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 Java是一种计算机编程语言,拥有跨平台、面向对java 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
页:
[1]