2007年3月31日星期六

.net问题

C:\WINNT\Microsoft.Net\Framework\v1.0.3705\aspnet_regiis.exe -i
如果asp.net页面不能显示文本框按钮之类的控件,在控制台执行一下上面语句。

上班了

java.lang.IllegalArgumentException:Cannot invoke ***Form.set*** - argument type mismatch

         Form中是Date类型,把Date换成String;在Action中进行转换;当然转换要借助于SimpleDateFormate方法

         上传文件时在form中增加enctype="multipart/form-data"

org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.cs.data.project.ProjectImage.setShenbao1

查询结果中包含null的项 对于一些数字项包含null,定义该项时必须使用wrapper类型,而不能是primitive类型,例如使用Integer等,而不能是int否则会抛出exception!

做网站的一些定律,其实对任何事都适用(转)

1.250定律
   拉德认为:每一位顾客身后,大体有250名亲朋好友。如果您赢得了一位顾客的好感,就意味着赢得了250个人的好感;反之,如果你得罪了一名顾客,也 就意味着得罪了250 名顾客。    在你的网站访客中,一个访客可能可以带来一群访客,任何网站都有起步和发展的过程,这个过程中此定律尤其重要。
2.达维多定律
   达维多认为,一个企业要想在市场上总是占据主导地位,那么就要做到第一个开发出新产品,又第一个淘汰自己的老产品。    国内网站跟风太严重,比如前 段时间的格子网,乞讨网,博客网,一个成功了,大家一拥而上。但实际效果是,第一个出名的往往最成功,所以在网站的定位上,要动自己的脑筋,不是去捡人家 剩下的客户。同理,买人家出售的数据来建站效果是很糟糕的。


3.木桶定律
   水桶定律是指,一只水桶能装多少水,完全取决于它最短的那块木板。这就是说任何一个组织都可能面临的一个共同问题,即构成组织的各个部分往往决定了整 个组织的水平。    注意审视自己的网站,是速度最糟糕?美工最糟糕?宣传最糟糕?你首先要做的,不是改进你最强的,而应该是你最薄弱的。
4.马太效应
   《新约》中有这样一个故事,一个国王远行前,交给三个仆人每人一锭银子,吩咐他们:“你们去做生意,等我回来时,再来见我。”国王回来时,第一个仆人 说: “主人,你交给我们的一锭银子,我已赚了10锭。”于是国王奖励他10座城邑。第二个仆人报告说:“主人,你给我的一锭银子,我已赚了5锭。” 于 是国王例奖励了他5座城邑。第三个仆人报告说:“主人,你给我的一锭银子,我一直包在手巾里存着,我怕丢失,一直没有拿出来。”于是国王命令将第三个仆人 的一锭银子也赏给第一个仆人,并且说:“凡是少的,就连他所有的也要夺过来。凡是多的,还要给他,叫他多多益善。”这就是马太效应。    在同类网站中, 马太效应是很明显的。一个出名的社区,比一个新建的社区,更容易吸引到新客户。启示是,如果你无法把网站做大,那么你要做专。作专之后再做大就更容易。
5.手表定理
   手表定理是指一个人有一只表时,可以知道现在是几点钟,而当他同时拥有两只表时却无法确定。
   一个网站,你只需要关注你特定的用户群需求。不要在意不相干人的看法。
6.不值得定律
   不值得定律:不值得做的事情,就不值得做好    不要过度seo,如果你不是想只做垃圾站。不要把时间浪费在美化再美化页面,优化再优化程序,在你网站能盈利后,这些事情可以交给技术人员完成。
7.彼得原理
   劳伦斯.彼得认为:在各种组织中,由于习惯于对在某个等级上称职的人员进行晋升提拔,因而雇员总是趋向于晋升到其不称职的地位。
   不要轻易改变自己网站的定位。如博客网想变门户,盛大想做娱乐,大家拭目以待吧。
8.零和游戏原理
   当你看到两位对弈者时,你就可以说他们正在玩“零和游戏”。因为在大多数情况下, 总会有一个赢,一个输,如果我们把获胜计算为得1分,而输棋为-1 分,那么,这两人得分之和就是:1+(-1)=0    不要把目光一直盯在你的竞争网站上,不要花太多时间抢它的访客。我们把这些时间用来寻找互补的合作 网站,挖掘新访客。
9.华盛顿合作规律
   华盛顿合作规律说的是: 一个人敷衍了事,两个人互相推诿, 三个人则永无成事之日。    如果你看准一个方向,你自己干,缺人手就招。不要轻易找同伴一起搞网站,否则你会发现,日子似乎越过越快了,事情越做越慢了。
10.邦尼人力定律
   一个人一分钟可以挖一个洞,六十个人一秒种却挖不了一个洞。合作是一个问题,如何合作也是一个问题。
   你需要有计划。
11.牛蛙效应
   把一只牛蛙放在开水锅里,牛蛙会很快跳出来;但当你把它放在冷水里,它不会跳出来,然后慢慢加热,起初牛蛙出于懒惰,不会有什么动作,当水温高到它无 法忍受的时候,想出来,但已经没有了力气。    如果你是soho,注意关注你的财务。不要等到没钱了再想怎么挣,你会发现那时候挣钱更难。
12.蘑菇管理
   蘑菇管理是许多组织对待初出茅庐者的一种管理方法,初学者被置于阴暗的角落(不受重视的部门,或打杂跑腿的工作),浇上一头大粪(无端的批评、指责、代人受过),任其自生自灭(得不到必要的指导和提携)。
   做网站毕竟要遭遇这样的阶段,搜索引擎不理你,友情链接找不到,访客不上门。这是磨练。
13.奥卡姆剃刀定律
   如无必要,勿增实体。
   把网站做得简单,再简单,简单到非常实用,而不是花俏。google的首页为什么比雅虎好?
14.巴莱多定律(Paredo 也叫二八定律)
   你所完成的工作里80%的成果,来自于你20%的付出;而80%的付出,只换来20%的成果。
   随时衡量你所做的工作,哪些是最有效果的。
1.马蝇效应
   林肯少年时和他的兄弟在肯塔基老家的一个农场里犁玉米地,林肯吆马,他兄弟扶犁,而那匹马很懒,慢慢腾腾,走走停停。可是有一段时间马走得飞快。 林 肯感到奇怪,到了地头,他发现有一只很大的马蝇叮在马身上,他就把马蝇打落了。看到马蝇被打落了,他兄弟就抱怨说:”哎呀,你为什么要打掉它,正是那家伙 使马跑起来的嘛!”    在你心满意足的时候,去寻找你的马蝇。没有firefox,不会有ie7,firefox就是微软的马蝇之一。马蝇不可怕,怕的 是会一口吃掉你的东西,像 ie当初对网景干的那样。
2.最高气温效应
每天最热总是下午2 时左右,我们总认为这个时候太阳最厉害,其实这时的太阳早已偏西,不再是供给最大热量的时候了。此时气温之所以最高,不过是源于此前的热量积累。
   你今天的网站流量,是你一个星期或更长时间前所做的事带来的。
3.超限效应(溢出效应)
刺激过多、过强和作用时间过久而引起心理极不耐烦或反抗的心理现象,称之为“超限效应”。 别到别人论坛里发太多广告。别在自己网站上放太多广告。别在自己的论坛里太多地太明显地诱导话题。
4.懒蚂蚁效应
生物学家研究发现,成群的蚂蚁中,大部分蚂蚁很勤劳,寻找、搬运食物争先恐后,少数蚂蚁却东张西望不干活。当食物来源断绝或蚁窝被破坏时,那些勤快的 蚂蚁一筹莫展。“懒蚂蚁”则“挺身而出”,带领众伙伴向它早已侦察到的新的食物源转移。    不要把注意力仅仅放在一个网站上,即使这个网站现在为你带来 一切。你要给自己一些时间寻找新的可行的方向,以备万一。
5.长尾理论
   ChrisAnderson认为,只要存储和流通的渠道足够大,需求不旺或销量不佳的产品共同占据的市场份额就可以和那些数量不多的热卖品所占据的市 场份额相匹敌甚至更大。    对于搜索引擎,未必你需要一个热门词排在第一位,如果有一千个冷门词排在第一位,效果不但一样,还会更稳定更长远。
6.破窗理论
   栋建筑上的一块玻璃,又没有及时修好,别人就可能受到某些暗示性的纵容,去打碎更多的玻璃。    管理论坛时,如果你发现第一个垃圾贴,赶紧删掉他吧。想想:落伍现在为什么那么多××贴?现在控制比最初控制难多了。
7.“羊群效应”,又称复制原则(Copy Strategy)
   一个羊群(集体)是一个很散乱的组织,平时大家在一起盲目地左冲右撞。如果一头羊发现了一片肥沃的绿草地,并在那里吃到了新鲜的青草,后来的羊群就会一哄而上,争抢那里的青草,全然不顾旁边虎视眈眈的狼,或者看不到其它地方还有更好的青草。
   不要轻易跟风,保持自己思考的能力。
8.墨菲定律
   如果坏事情有可能发生,不管这种可能性多么小,它总会发生,并引起最大可能的损失。
   除非垃圾站,否则不要作弊,对搜索引擎不要,对广告也不要。
9.光环效应
   人们对人的某种品质或特点有清晰的知觉,印象比较深刻、突出, 这种强烈的知觉, 就像月晕形式的光环一样,向周围弥漫、扩散,掩盖了对这个人的其他品质或特点的认识。
   不要轻易崇拜一个人或者公司、一个概念、一种做法。
10.蝴蝶效应
   一只亚马逊河流域热带雨林中的蝴蝶,偶尔扇动几下翅膀,两周后,可能在美国德克萨斯州引起一场龙卷风。
   不管你做什么,网站或者其他,你都应该关注新闻。机遇或者灾难可能就在那。
11.阿尔巴德定理
   一个企业经营成功与否,全靠对顾客的要求了解到什么程度。    我赞同别人的点评:看到了别人的需要,你就成功了一半;满足了别人的需求,你就成功了全部。
   尤其是做网站。
12.史密斯原则
   如果你不能战胜他们,你就加入到他们之中去。   
   不要试图做孤胆英雄。如果潮流挡不住,至少,你要去思考为什么。

2007年3月26日星期一

有夏天的味道了

org.hibernate.exception.JDBCConnectionException: Cannot open connection
   at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:72)
   at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
   at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
   at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:307)
   at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:109)
   at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:105)
   at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561)
   at org.hibernate.loader.Loader.doQuery(Loader.java:661)
   at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:223)
   at org.hibernate.loader.Loader.doList(Loader.java:2147)
   at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2026)
   at org.hibernate.loader.Loader.list(Loader.java:2021)
   at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:369)
   at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:298)
   at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:137)
   at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1014)
   at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
Caused by: java.sql.SQLException: Network error IOException: Connection refused: connect
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:372)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:178)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:140)
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:304)
    ... 40 more
这是我刚刚重做的系统,配了java的环境,在tomcat下启动一个项目的错误提示,找了半天sql连接字符串中的密码 sa之类的错误,无果,后来想到是不是sqlserver没装sp3的问题,立马从网上下了sp3装,再试,成了,哈哈,这种拒绝连接的错误,想来也不是密码不对,记得以前见过密码不对的情况,会提示sa密码不正确,令我纳闷的是我的另一个机子是2000系统好像也没有装过sp3,也能用啊。
复习一下java虚拟机配环境变量,设两个,一个path=java目录的bin文件夹,另一个classPath=java目录的lib文件夹,这次在装eclipse的时候打开报找不到虚拟机的错,配了环境变量就好了。
哈哈,装了一晚上的机,学了复习了不少东西。明天干活,哈哈,睡觉。

2007年3月20日星期二

找工作

         好久 没上来写了 ,课上完了 ,忙着找工作

         这些日子 从年前到现在 一直在 忙那个邮票系统,学了不少东西,现在终于看到曙光了,呵呵,发现自己 整理业务逻辑思路的能力不够,不会抓住重点,看来这还是讲求一套方法的,那个有经验的家伙很容易的就抓住了问题的重点,提的问题都是在点子上了,果然是高手,呵呵 。

        写代码是很有意思的,很有技巧的,有的设计是很妙不可言的 ,哈哈 好像用词不当,期间又很多知识 感觉写下来的,可能是过于急于进度。

        希望快点找个工作挣钱,呵呵快顶不住了

2007年3月13日星期二

J2EE、J2SE、J2ME(转)

什么是J2EE、J2SE、J2ME
随着Internet网络的迅速发展,基于互联网的企业应用要求软 件平台具有开放性、分布性和平台无关性。于是就相继出现了RPC/COM/CORBA等技术,但这些技术在实际应用中存在着许多不足和局限。它们的特定协 议难以通过防火墙,因而不适于Web上的应用开发。为了进一步开发基于Web的应用,出现了Sun公司的Sun ONE(Open Net Environment 开发网络环境)和Microsoft公司的.net等Web 服务技术体系。

Sun ONE体系结构以Java语言为核心,包括J2SE/J2EE/J2ME和一系列的标准、技术及协议。它包括Sun独有的iPlanet软件系列,其中有 在市场上受欢迎的LDAP目录服务器软件,以及Forte for Java——便于在任何环境下书写Java 语言的软件工具。我们很容易就能从网上免费获得和使用包括Java 集成开发环境、Java数据库和中间件(Application Server)服务器等产品,以及它们的源代码。Sun ONE更接近或能满足互联网在智能化Web服务方面对分布性、开发性和平台无关性的要求。

随 着Java技术的不断发展,它根据市场进一步细分为:针对企业网应用的J2EE(Java 2 EntERPrise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)三个版本。本文就Sun ONE的Java核心应用——J2SE/J2EE/J2ME作一些介绍。


J2EE技术应用


J2EE是Sun公司推出的一种全新概念的模型,比传统的互联网应用程序模型更有优势。

J2EE模型

J2EE的应用编程模型(J2EE Blueprints)提供了一种用于实施基于J2EE多层应用的文档和实例套件的体系模型,简化了这项复杂的工作。它被开发人员用作设计和优化组件,以便开发人员从策略上对开发工作进行分工。

J2EE应用编程模型要求开发者将自己的工作分成两类:商业逻辑和表示逻辑,其余则由系统资源自动处理,不必为中间层管道进行编码。这样,开发人员就能将更多的时间花在商业逻辑和表示逻辑上。对重视缩短项目周期的公司来说,这种转变深受欢迎。

J2EE平台

J2EE 平台是运行J2EE应用的标准环境,由J2EE部署规范(一套所有J2EE平台产品都必须支持的标准)、IETF标准集和CORBA标准组成。最新的 J2EE平台还添加了JavaBean组件模型。开发人员可以利用JavaBean组件模型来自定义Java类实例,并可通过已定义的事件访问Java 类。

J2EE支持EJB,因此开发人员可以执行多用户交易功能。当在J2EE服务器上运行时,Enterprise JavaBeans将应用逻辑分成可再利用和可扩展的代码段。Enterprise JavaBeans并不是新特征,但是通过定义标准客户端和服务API,J2EE增强了它的能力和可移植性。

EJB在服务器的一个容器内运行,提供所有典型的中间层服务,如事务管理、安全、远程客户连接、生存周期管理和数据库连接缓冲。为了让事务系统在存在EJB容器的情况下运行,开发人员只需在部署描述文件中定义Beans的事务属性即可。

J2EE通过定义一组标准的结构来实现它的优势,例如:

1.J2EE Application Programming Model,是一种用于开发多层次、瘦型客户用户程序的标准设计模型;

2. J2EE Platform,是一个标准的平台,用来整合J2EE的应用程序,并指定一系列的接口和方法;

3. J2EE Compatibility Test Suite,是一套兼容测试组件,用来检测产品是否同J2EE平台兼容;

4.J2EE Reference Implementation,用来示范J2EE的能力。

J2EE服务器

Sun 的J2EE服务器通过Java 命名和目录接口(JNDI)、认证、HTTP及与Enterprise JavaBeans兼容的能力,提供命名和目录服务。JNDI是Java平台的一种标准扩展版,向企业内的命名和目录服务提供具有Java功能的,带有统 一接口的应用,包括LDAP。

J2EE服务器还利用了Java Servlet技术。Java Servlet可以看作是运行在服务器上的一个小程序,它向开发人员提供以组件为基础创建基于Web应用的、独立于平台的方法。它不像利用CGI那样具有 性能局限。Java Servlet是一种扩展Web服务器功能的简单技巧。由于它是用Java编写的,因而能够访问整个Java API库,也包括用于访问企业数据库的JDBC API。

JSP是Java Servlet的一种扩展。Java Servlet提供开发和显示来自服务器的交互式Web页。如今JSP又有了进一步的改进,它使得创建和支持静态模板和动态内容相结合的HTML和XML页面更加容易。

安全性

J2EE 平台定义了一种标准的公开存取控制规则,当程序在企业平台上开发时就已被程序师定义和解释了。J2EE也需要提供一个标准的注册机制,以便应用程序不会将 这些注册机制和逻辑相混合,从而使相同的工作执行于大量的不同环境中时并不需要改变源代码。例如:J2EE应用程序开发人员可以指定几个安全级别,当用户 访问数据时,他们可写出代码来检查当前用户权限的级别。在开发阶段,开发人员赋予多组用户适当的安全级,使应用程序在执行限制操作之前能够容易的判断限制 级。

J2EE 平台是Java技术企业级应用的最佳平台,它可以让程序员迅速、快捷地开发和分布企业级应应用程序。以下便是它的相关技术:

1.Enterprise JavaBeans Architecture,企业级JavaBeans 定义了一个应用程序接口。它可以使程序员迅速开发、发布和管理跨平台的、基于组件的企业级应用程序。

2.JavaServer Pages,JSP 技术提供了一种简单、快速的方法来创建动态网页。通过它,可以快速地开发基于Web的应用程序,并且这些应用程序都是与平台无关的。因为JSP与ASP很相似,所以熟悉ASP的人学习它就很容易了。

3.Java Servlet,提供了应用程序接口。通过它可以简单快速地开发并扩展服务器功能。就发展趋势来看,它将来有可能取代CGI。

4.J2EE Connector,提供了一种标准结构来联接不同的企业信息平台。

5.Java Naming and Directory Interface(JNDI),在Java 平台与商业信息之间,JNDI提供了统一、无缝的标准化连接。通过使用JNDI,程序员可以在企业多命名与目录服务之间传送Java 应用程序。

6.Java Interface Definition Language(JIDL),通过使用CORBA,可以提供协同工作的能力。JIDL包括一个IDL-to-Java 编译器和支持IIOP(Internet Inter-Orb Protocol)的ORB。

7.JDBC,几乎是为所有的数据库提供了统一的接口,同时可以创建高级工具和接口。

8.Java Message Service(JMS),它几乎规范了所有企业级消息服务,如可靠查询、发布消息、订阅杂志等各种各样的PUSS/PULL技术的应用,并且为它们提供了一个标准接口。

9.Java Transaction API(JTA),为分布式系统中可处理的应用程序规定了一个高级的管理规范。

10.JavaMail,JavaMail应用程序接口提供了一整套模拟邮件系统的抽象类。通过JavaMail,可以创建邮件或消息应用程序。

11.RMI-IIOP,使用它就可以只用Java 技术和Java RMI接口开发客户机与服务器的远程接口。

J2EE 使用固定的文件格式捆绑某个模块:用.ear文件捆绑J2EE应用程序;用.jar捆绑Enterprise Bean。例如,一个.ear文件包含一个.xml文件作为其分布描述,还包含一个或多个.jar和.war文件;一个.jar文件除了包含它的分布描述 外,还包含了作为Enterprise bean的.class文件。

J2EE应用程序的开发阶段分为四步:1.Enterprise Bean创建;2.Web Component创建;3.J2EE应用程序装配;4.J2EE应用程序分布。以下是J2EE兼容产品部分列表:

BEA WebLogic Server 6.0、Borland App Server、HP Bluestone Total-e-Server、IBM WebSphere Application Server、IONA iPortal Application Server、iPlanet Application Server、Macromedia JRun Server、Oracle 9i Application Server、SilverStrean Application Server、Sybase EAServer、TogetherSoft ControlCenter、Java 2 SDK Enterprise Edition。

J2ME技术的应用


J2ME (Java 2 Platform Micro Edition)是为无线电子市场所设计的,包括JVM规范和API规范。其API规范是基于J2SE(Java 2 Standard Editon)的。J2ME 定义了一套合适的类库和虚拟机技术。这些技术可以使用户、服务提供商和设备制造商通过物理(有线)连接或无线连接,按照需要随时使用丰富的应用程序。

J2ME 又被称为Java 2 微型版,被使用在各种各样的消费电子产品上,例如智能卡、手机、PDA、电视机顶盒等方面。当然了,J2ME也提供了Java语言一贯的特性,那就是跨平 台和安全网络传输。它使用了一系列更小的包,而且Javax.microedition.io 为J2SE包的子集。J2ME可以升级到J2SE和J2EE。

在J2ME出现之前,我们更多接触到的是Java卡(Java Card)、嵌入式Java(Embedded Java)和实时Java(Real Time Java)等。其中Java卡是针对SIM卡、智能卡等设备而定制的最小Java子集,比J2ME还要小,移植性也不强。嵌入式Java则针对特殊用户自 行配置Java类库和VM(Virtual Machine,虚拟机)。它对资源需求极小,可运行在无图形用户接口和网络的设备上,可以添加用户专用的API,但是它就无法移植。实时Java是由 IBM领导的实时定制Java专家组负责实施的,现在还在不断完善中。不过,从严格意义上来说,它们都不是真正的J2ME。

像其它版本一样,J2ME具有很多Java技术特性,主要有:

1.可以在各种支持Java的设备上运行;

2.代码短小;

3.充分利用Java语言的优势;

4.安全性好;

5.用J2ME实现的应用可以方便地升级到J2SE、J2EE。

J2ME的配置和框架

为了支持用户和嵌入式市场提出的灵活性和可定制性要求,J2ME被设计得更加模块化和可缩放化。J2ME在设备原有的操作系统上建造了3层软件来实现这种要求:

1.JVM层,这层基于宿主操作系统,按照某一种J2ME的配置,实现了JVM。

2.配置层,这层对于用户可见度要低一些,但对框架层非常重要。它针对“水平”市场的需求,定义了Java虚拟机的最小功能集和Java类库的最小集合。在某种意义上,配置层定义了开发者在所有设备上都可以使用Java特性和类库的“最小公分母”。

3. 框架层,这层对于用户和应用程序提供者来说是最常见的。它针对“垂直”市场的需求,定义了Java虚拟机的最小功能集和Java类库的最小集合。其框架是 基于特定的配置层实现的。只要设备支持相同的框架层,针对特定框架层开发的应用程序就可以移植到其它设备上。一个设备可以支持多个框架层。

在J2ME 设备中,JVM与配置层紧密相连,它们体现了每一类设备的基本功能。框架层针对不同的设备,在配置层的基础上规定了附加的API。为了满足不断更新的应用 程序,框架层可以扩充新的Java库类。在不远的将来,随着新设备的不断出现,J2ME技术将提供范围广泛的框架层、配置层和VM。JCP(Java Community Process)可以为客户和开发商提供规范。根据JCP的定义,J2ME目前的一种配置层是“面向连接的设备配置”层(Connected Device Configuration),它采用典型的Java虚拟机技术。这种全功能的VM包含了基于台式机系统上的虚拟机的所有功能,适用于拥有至少几兆字节内 存的设备。对于无线设备和其它内存不足的设备,J2ME采用“面向连接的受限设备配置”(CLDC)技术。

KVM是J2ME的核心特 征。它是一个可移植性非常高的JVM,专用于内存小、资源有限、能上网的设备,例如蜂窝电话、寻呼机和个人组织器等。这些器件一般都含有16或32位的处 理器,最低128KB内存。KVM能够被灵活应用到各种行业、各种类型的设备上,并能够适应这些设备的多样化所带来的问题,比如处理器的耗电量、内存的大 小、设备和应用程序的特殊功能等问题。

CLDC技术

CLDC定义了目标Java平台,该平台基于小型的、资源较少的、内存仅有160~512K的设备。CLDC是由KVM和用在蜂窝电话、数字产品、双向寻呼机、个人组织器和家用电器等核心库类及接口组成。使用CLDC技术有很多优点:

1.跨平台,这点保留了Java一贯的特点,应用程序不会随着平台差异而产生变化。

2.动态性,这点也是很吸引人的,可以根据需要下载自己喜欢的应用程序和服务,并且可以和其它的CLDC设备通信。

3.安全性,Java 本身的特点造就了这一特性。

与 J2SE相比,CLDC缺少下列所说的特征:

1.AWT(抽象窗口开发包),Swing或其它图形库;

2.用户定义类装载器;

3.类实例的最终化;

4.弱的引用;

5.RMI;

6.Reflection(映射)。

CLDC 有四个包:java.lang、java.util、java.io和javax.microedition。除了javax.microedition 包以外,其它的几个包都是J2SE包的核心子集。CLDC采用这些J2SE类库,但是把其中一些在微型设备中用不到类、属性和方法去掉了。

J2ME定义两个配置:Connected Device Configuration(连接设备配置,CDC)和限制性更强的Connected Limited Device Configuration(有限连接设备配置,CLDC)。

J2SE技术的应用


Java 2标准版是一种开发和部署平台,提供了编写桌面、工作站应用程序所有必需的功能。J2SE软件是快速开发、部署关键任务和企业应用程序的首选解决方案。 J2SE 1.4版本是基于Java跨平台技术和强有力的安全模块而开发的,其最新的特征和功能极大地提高了Java语言的伸缩性、灵活性、适用性,以及可靠性。

J2SE 1.4 特点:

1.良好的计算性能和缩放能力。

J2SE 1.4版是一个快速开发和配置跨平台的企业级应用与服务的综合性平台。它提升了Java计算的性能与缩放能力,代表了Java技术的大跨步进展。有了 J2SE 1.4版,企业就可以通过更简易的步骤、花费更少的时间,采用Java技术开发与配置要求更高的应用了。J2SE 1.4版在Java客户机应用方面得到了重大性能提升。基于Swing的Java小程序和应用程序在图形用户界面(GUI)的响应速度上也大有提高。

2.跨平台。

J2SE 1.4版是一个具有综合性能的平台,能使一个完整的、可缩放的高性能应用配置在任何种类的平台上。

3.支持Web服务。

J2SE 1.4版与以前各J2SE版全面兼容。J2SE 1.4版对SSL、LDAP和CORBA等业界标准技术也给予支持,因此保证了在不同平台、系统和环境间的互操作能力。J2SE 1.4版支持XML技术和一整套安全服务,因此为基于各类标准的可互操作应用与服务的创建奠定了重要基础。有了J2SE 1.4版与Java Web Services Developer Pack的结合,开发商就能创建、测试和配置Web服务了。

4.完整性。J2SE 1.4版还是一个完整的开发环境。开发商可基于这一环境创建功能丰富的交互式应用。这些应用可以配置在任何平台上。J2SE 1.4具有新的GUI控制功能、快速的Java 2DT图形功能、支持国际化与本地化扩展和新的配置选项,并对Windows XP提供扩展支持。

总之,J2SE 1.4版是多种不同风格软件的开发基础,包括客户端Java小程序和应用程序,以及独立的服务器应用程序等。J2SE 1.4版还是J2ME的基础,是J2EE执行程序的推动力。

Java 之所以能够发展得很快,是因为互联网的发展非常快。Java可以和浏览器结合在一起,因而很自然地在桌面系统得到广泛应用。从计算的结构来看,Java主 要分三大类:第一是服务器端,这里就有了J2EE企业版;第二是桌面PC,这一类用的是J2SE标准版;第三就是掌上电脑、移动设备,用的都是J2ME。 但是,大部分非企业级软件还是在J2SE上开发的比较多。首先,这是因为很多的应用软件都是在J2SE上开发的;其次,J2SE是和J2EE兼容的,企业 版是在标准版上的扩充,在J2SE的版本上开发的软件,拿到企业的平台上是一样可以运行的;再次,一般开发还是在J2SE的环境上,只是说J2ME提供微 型版的一个环境。在J2SE上虚拟出一个环境,开发出来的应用软件是可以拿到微型版上运行的。

2007年3月9日星期五

有意思的问题

public class Test
{
    public void changeApple(Apple a)
    {
        Apple a2 = new Apple();
        a2.color = "red";
        a = a2;
    }
    public void changeApple2(Apple a)
    {
        a.color = "red";
    }
    public static void main(String[] args)
    {
        Apple a = new Apple();
        a.color="blue";
        new Test().changeApple(a);
        System.out.println(a.color);
        new Test().changeApple2(a);
        System.out.println(a.color);
    }
}
class Apple
{
    public String color;
}

//输出结果:blue
             red