??xml version="1.0" encoding="utf-8" standalone="yes"?>
但是对于其他国家的语aQ却q远不够Q如汉语Q日语,韩语Q所以就出现了非ASCII的字W编码,如gbk2312Qgbk的汉字编码。这些非ascii的编码都是兼容ascii128个符L(fng)码的?br />
------------------------------------------------------------------------------------------------------------------------------------------------------
UNICODE首先只是一个字W集Q它的出现就是因为各个国家出台自q语言~码Qؓ(f)了统一q些所有语aQ可以理解unicode是涵盖各个国家字W的集合Q现在的规模可以容纳100多万个符受?span style="font-size: 12px; font-family: Verdana; border-collapse: collapse">需要说明的是,定长~码便于计算机处理(注意GB2312/GBK不是定长~码Q,而unicode又可以用来表C所有字W,所以在很多软g内部是用unicode~码来处理的Q比如java?/span>
unicode只是一个符号集Q只规定了符L(fng)二进制代码,却没有规定这个二q制代码应该如何存储Q即~码方式Q常见的有utf-8和utf-16?br />
Q如果unicode规定Q每个符L(fng)三个字节表示Q那么英文字母只占用一个字节,浪费很多存储空间。)
UTF-8是一U变长的~码方式Q它使用1~4个字节表CZ个符PҎ(gu)不同的符可变化字节长度?br />
我们常用的记事本功能Q在"save as"的时候,可以选择不同的编码方式,里面有四个选择QansiQunicodeQunicode big endianQutf-8Q?br />
1.ANSI是默认的~码方式。对于英文文件是ASCII~码Q对于简体中文文件是GB2312~码Q只针对Windows体中文版Q如果是J体中文版会(x)采用Big5码)?br />
2.Unicode~码指的是UCS-2~码方式Q即直接用两个字节存入字W的Unicode码。这个选项用的little endian格式?/span>
3.Unicode big endian~码与上一个选项相对应。我在下一节会(x)解释little endian和big endian的涵义?/span>
4.UTF-8~码Q也是上一节谈到的~码Ҏ(gu)?/span>
参考:(x)
http://www.cnblogs.com/pony/archive/2009/02/05/1384323.html
http://blog.chinaunix.net/u1/56156/showart_2245355.html
http://liaoshaoyao.javaeye.com/blog/667056
/*l创建bitmap index分配的内存空间参敎ͼ以加速徏索引*/
show parameter create_bit;
/*改变索引的存储参?/
alter index index_name pctfree 30 storage(initial 200k next 200k);
/*l烦引手工分配一个分?/
alter index index_name allocate extent (size 200k datafile '$ORACLE/oradata/..');
/*释放索引中没用的I间*/
alter index index_name deallocate unused;
/*索引重徏*/
alter index index_name rebuild tablespace tablespace_name;
/*普通烦引和反{索引的互?/
alter index index_name rebuild tablespace tablespace_name reverse;
/*重徏索引Ӟ不锁?/
alter index index_name rebuild online;
/*l烦引整理碎?/
alter index index_name COALESCE;
/*分析索引,事实上是更新l计的过E?/
analyze index index_name validate structure;
desc index_state;
drop index index_name;
alter index index_name monitoring usage;-----监视索引是否被用?/p>
alter index index_name nomonitoring usage;----取消监视
/*有关索引信息的视?/
select * from dba_indexes/dba_ind_columns/dbs_ind_eXPressions/v$object_usage;
########## 数据完整性的ȝ(Maintaining data integrity) ##########
alter table table_name drop constraint constraint_name;----drop U束
alter table table_name add constraint constraint_name primary key(column_name1,column_name2);-----创徏主键
alter table table_name add constraint constraint_name unique(column_name1,column_name2);---创徏唯一U束
/*创徏外键U束*/
alter table table_name add constraint constraint_name foreign key(column_name1) references table_name(column_name1);
/*不效验老数据,只约束新的数据[enable/disableQ约?不约束新数据;novalidate/validate:不对/对老数据进行验证]*/
alter table table_name add constraint constraint_name check(column_name like 'B%') enable/disable novalidate/validate;
/*修改U束条gQg旉证,commit旉?/
alter table table_name modify constraint constraint_name initially deferred;
/*修改U束条gQ立即验?/
alter table table_name modify constraint constraint_name initially immediate;
alter session set constraints=deferred/immediate;
/*drop一个有外键的主键表,带cascade constraints参数U联删除*/
drop table table_name cascade constraints;
/*当truncate外键表时Q先外键设为无效,再truncate;*/
truncate table table_name;
/*讄束条件无?/
alter table table_name disable constraint constraint_name;
alter table table_name enable novalidate constraint constraint_name;
z实用,谢谢http://wfly2004.blog.163.com/blog/static/11764272010629114155174/
http://hi.baidu.com/zhangcheng1/blog/item/54deb0cc9ab69d1701e9281e.html
从此一发不可收拾,我l研I了J2EE的部分,又发现这是一个我Ҏ(gu)不能理解的方?曄有半q停滞不?Qؓ(f)什么只有接口没有实现啊!后来׃一直用Tomcat、Derby{Y件突然发玎ͼ(x)?原来J2EE仅仅是一个标准,只是一个架构。真正的实现是不同提供商提供的?/span>
接着我研I了MOM4J、OpenJMS、Mocki、HSQLD……发现q些是J2EE的实现啊!原来软g竟会(x)如此复杂Q竟?x)如此?#8230;.规范和实现又是如何成Z体的?通过上面的研I发玎ͼ(x)原来J2EE后面竟然有太多太多理c太多太多的怼!q些怼是其背后的理念――设计模?(很幸q,在我学java的时候,我一般学java的一个方向就?x)读一些关于设计模式的?很幸q,到能领略一点的时候能真正知道q是Z?)其实模式是一U思维方式、就是一U理?#8230;…模式是要q用到程序中的,只有从真正的目中才能领?x)模式的含?#8230;…
学得多Q发现懂得越?在学?fn)过E中发现一些很有用Q很值得学习(fn)的开源项目,今天在此推荐l大家?/span>
一、JavaServlet和JSP方向
很多人都是从Servlet和JSP步入J2EE的。它?yu)是J2EE的表现层Q用于向客户呈现服务器上的内宏VJ2EE很重要的斚w。不|嗦?大家都知道的!下面开始推荐吧!
1. Jakarta Tomcat
Apache基金?x)提供的免费的开源的Serlvet容器Q它是的Jakarta目中的一个核心项目,由Apache、Sun和其它一些公?都是IT界的大鳄??qing)个人共同开发而成Q全世界l大部分Servlet和Jsp的容器都是用它?׃Sun的参与和支持Q最新的Servlet和Jsp规范总能在Tomcat中得C现?/span>
不过它是一个非帔R常全的Serlvet容器Q全部源码可能有4000,对于初学者或者一般的老手可能q是比较大了!在你有能力时推荐研究!下蝲地址Qhttp://jakarta.apache.org/tomcat/index.html
下面推荐两个一点的?
2. Jetty
Jetty是一个开放源码的HTTP服务器和Java serverlet容器。源代码只有1000左叻I很值得研究。有兴趣可以去http://jetty.mortbay.com/下蝲看看。我曄M一下,只是目前没有旉?都化在博客上了,{博客基本定型,且内容完整了Q再q我热衷的事件吧!)
3. Jigsaw
Jigsaw是W3C开发的HTTPQ基于Java 的服务器Q提供了未来 Web 技术发展的蓝图。W3C知道?(太有名气了,很多标准都是它制订的!有空l常ȝ看吧!)下蝲|址Qhttp://www.w3.org/Jigsaw代码仅仅1000左叟?/span>
4. Jo!
Jo!是一个纯Java的实CServlet API 2.2, JSP 1.1, 和HTTP/1.1的Web服务器。它的特性包括支持servlet tag,支持SSIQ高U线E管理,虚拟LQ数据缓存,自动压羃text或HTML文gq行传输Q国际化支持Q自动重新加载Servlet、JspQ自动重新加载web工程文g(WARs)Q支持WAR热部|和一个Swing控制台。jo!可以被用做jboss和jakarta avalon-phoenix的web容器。下载地址http://www.tagtraum.com/ 。我极力推荐大家在研ITomcat之前研究该YӞ主要是其比Tomcat多了,且开发者提供比较全的手册。该方向研究q两个也可以了!
二、JDBC方向
很多人都喜欢JDBCQ数据库?很深奥的东西Q一听就可以p弄人。其实等你真正研I了数据库的实现后发玎ͼ接口其实真的太简单,太完了!要想设计如此优秀的框架还是需要学?fn)的。下面就推荐几个数据库的实现?
1. Hypersonic SQL
Hypersonic SQL开源数据库方向比较行的纯Java开发的关系型数据库。好像不是JDBC兼容的,JDBC的很多高U的Ҏ(gu)都没有支持Q不q幸好支持ANSI-92 标准 SQL语法。我推荐它主要是它的代码比较?yu)?600左叻I如此的数据库值得研究Q而且他占的空间很,大约只有160KQ拥有快速的数据库引擎。推荐你的第一个开源数据库。下载地址Qhttp://hsqldb.sourceforge.net/?/span>
2. Mckoi DataBase
McKoiDB 和Hypersonic SQL差不多,它是GPL 的license的纯Java开发的数据库。他?JDBC Driver 是?JDBC version 3 ?Specifaction?他也是遵?SQL-92 的标准,也尽量支持新?SQL 特色, q且支持 Transaction 的功能。两个可以选一个吧!下蝲地址Qhttp://mckoi.com/database/?/span>
3. Apache Derby
学Java的数据库我徏议用Apache Derby Q研I数据库xZ个数据库的高手我你先研究Apache Derby。Apache Derby是一个高质量的、纯 Java开发的嵌入式关pL据库引擎QIBM® 其捐献lApache开放源码社区,同时IBM的品CloudSpace是它对应的品。Derby是基于文件系l,h高度的可UL性,q且是轻量的,q得它非常便于发布。主要是没有商业用户的很好的界面Q没有其太多的功能。不q对于我们用数据库、研I数据库q是极其有用的。对于中型的企业说老实话你也不要用什么Oracle、SqlServer了,用Derby可以了Q何冉|开源的?只要能发挥其长处也不Ҏ(gu)?下蝲地址Qhttp://incubator.apache.org/derby?/span>
不过在没有够的能力前,不要试图L?注释和源代码15000左叻I我一q的阅读?能读下来q且能真正领?x)它Q绝寚w?你能dDerby的源代码只有两种可能Q?.你成为顶的高手――至是数据库这部分; 2.你疯了。选择?!!!作ؓ(f)我自己我先选择Hypersonic SQLq样的数据库先研IӞ能过q一养I再l研IDerby!不就是一q的阅读量吗!我可以化3q去研究如何做一个数据库其实q是很值得?有的人搞IT一辈子自己什么都没有做,也根本没有研I别人的东西!
作ؓ(f)一个IT落后于别国若q年的、从事IT的下?#8220;外包”的国家的IT从业人员Q我认ؓ(f)q是先研I别人的优秀的东西比较好!可以先研I别人的Q然后消化,学ؓ(f)q!一心闭门造R实在遗憾!
三、JMS方向
JMS可能对大家来说是一个比较陌生的方向!其实JMS是一个比较容易理解,Ҏ(gu)上手的方向。主要是Java消息服务QAPI也是相当单的。不q在企业应用中相当广泛。下面就介绍几个?
1. MOM4J
MOM4J是一个完全实现JMS1.1规范的消息中间gq且向下兼容JMS1.0?.02。它提供了自q消息处理存储使它独立于关pL据与语言Q它的客L(fng)可以用Q何语a开发。它可以是一个小麻雀Q很全实C比较?它包含一个命名服务器Q一个消息服务器Q同时提供自q持箋层。设计也相当的y妙,完全利用操作pȝ中文件系l设计的观念。代码也很少Q?50左叻I最q我在写该实现的源代码阅L面的书,希望明年q中能与大家见面!下蝲地址Qhttp://mom4j.sourceforge.net/index.html?/span>
2. OpenJMS
OpenJMS是一个开源的Java Message Service API 1.0.2 规范的实玎ͼ它包含有以下Ҏ(gu):(x)
1. 它既支持点到?point-to-point)(PTP)模型和发?订阅(Pub/Sub)模型?/span>
2. 支持同步与异步消息发??/span>
3. JDBC持久性管理用数据库表来存储消息 ?/span>
4. 可视化管理界面?/span>
5. Applet支持?/span>
6. 能够与Jakarta Tomcatq样的Servlet容器l合?/span>
7. 支持RMI, TCP, HTTP 与SSL协议?/span>
8. 客户端验??/span>
9. 提供可靠消息传输、事务和消息qo(h)?/span>
很好的JMS方向的开源项?我目前也在研I它的源代码!学习(fn)它可以顺便研IJNDI的实现、以?qing)网l通信的细节。这是我JMS方向研究的第二个开源项目。代码量1600左叛_!下蝲地址Qhttp://openjms.sourceforge.net/index.html
3. ActiveMQ
ActiveMQ是一个开放源码基于Apache 2.0 licenced 发布q实CJMS 1.1。它能够与GeronimoQ轻量容器和QJava应用E序无缝的给合。主要是Apache的可以Q意的使用和发布哦!个h比较喜欢Apache的源代码!下蝲地址Qhttp://activemq.codehaus.org/
4. JORAM
JORAM一个类gopenJMS分布在ObjectWeb之下的JMS消息中间件。ObjectWeb的品也是非常值得研究?下面我还?x)给大家另外一个ObjectWeb的品。下载地址Qhttp://joram.objectweb.org/
我个人推荐:(x)OpenJMS和ActiveMQ!
四、EJB方向
EJB一个比?#8220;高”的方向。Sun公司曄以此在分布式计算领域重拳出击。不q自从出CSpring、Hibernation……后似乎没落了!q个方向单独开源的也比较少Q主要EJB是和JNDI、JDBC、JMS、JTS、JTAl合在一L(fng)是以很少有单独的。下面推荐两个不q好像也要下载其它类库?/span>
1. EasyBeans
ObjectWeb的一个新的项目,一个轻量的EJB3容器Q虽然还没有正式发布Q但是已l可以从它们的subversion仓库中检Z码。代码量比较?yu)?00左叻I熟读它可以对|络~程、架构、RMI、容器的状态设计比较了解了!卛_?x)EJB又能学习(fn)其它设计Ҏ(gu)何乐而不为哦!下蝲地址Qhttp://easybeans.objectweb.org/
2. OpenEJB
OpenEJB是一个预生成的、自包含的、可UL的EJB容器pȝQ可以被插入CQ意的服务器环境,包括应用E序服务器,W(xu)eb服务器,J2EEq_Q?CORBA ORB和数据库{等。OpenEJB 被用?Apple的WebObjects。听h很好Q我目前没有研究q。不知道我就不推荐了。下载地址Qhttp://www.openejb.org/
五、J2EE容器
上面谈了q么多,都是J2EE的各个方向的。其实J2EE是一个规范,J2EE的品一般要求专业提供商必须提供它们的实现。这些实现本w就是J2EE容器。市Z行的J2EE容器很多Q在开源领域流行的只有很少Q很。其中最著名的是JBoss?/span>
1. JBoss
在J2EE应用服务器领域,Jboss是发展最速的应用服务器。由于Jboss遵@商业友好的LGPL授权分发Qƈ且由开源社区开发,q得Jbossqؓ(f)行。另外,Jboss应用服务器还h许多优秀的特质?/span>
其一Q它?yu)具有革命性的JMX微内核服务作为其ȝl构;
其二Q它本n是面向服务的架?Service-Oriented ArchitectureQSOA);
其三Q它q具有统一的类装蝲器,从而能够实现应用的热部|和热卸载能力。因此,它是高度模块化的和松耦合的。Jboss用户的积极反馈告诉我们,Jboss应用服务器是健壮的、高质量的,而且q具有良好的性能。ؓ(f)满企业U市场日益增长的需求,Jboss公司?003q开始就推出?4*7、专业产品支持服务。同Ӟ为拓展Jboss的企业市场QJboss公司q签订了许多渠道合作伙伴。比如,Jboss公司同HP、Novell、Computer Associates、Unisys{都是合作伙伴?/span>
?004q?月,Jboss公司宣布QJboss应用服务器通过了Sun公司的J2EE认证。这是Jboss应用服务器发展史上至今ؓ(f)止最重要的里E碑。与此同ӞJboss一直在紧跟最新的J2EE规范Q而且在某些技术领域引领J2EE规范的开发。因此,无论在商业领域,q是在开源社区,Jboss成ؓ(f)了第一个通过J2EE 1.4认证的主应用服务器。现在,Jboss应用服务器已l真正发展成h企业强度(卻I支持关键UQ务的应用)的应用服务器?/span>
Jboss 4.0作ؓ(f)J2EE认证的重要成果之一Q已l于2004q?月顺利发布了。同ӞJboss 4.0q提供了Jboss AOP(Aspect-Oriented ProgrammingQ面向方面编E?lg。近来,AOP吸引了大量开发者的x。它提供的新的编E模式得用戯够将斚w(比如Q事?从底层业务逻辑中分d来,从而能够羃短Y件开发周期。用戯够单独用Jboss AOPQ即能够在Jboss应用服务器外部用它。或者,用户也可以在应用服务器环境中使用它。Jboss AOP 1.0已经?004q?0月发布了?很有名吧!可以下蝲一个用一下,下蝲地址Qhttp://www.jboss.org/
关于JBoss的用资料也非常多,甚至比商业Y件的q多。有Z(x)研究?
2. JOnAS
JOnAS是一个开放源代码的J2EE实现Q在ObjectWeb协会(x)中开发。整合了Tomcat或Jetty成ؓ(f)它的Web容器Q以保W合Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java APIQJCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。下载地址Qhttp://jonas.objectweb.org/
3.Apache Geronimo
Apache Geronimo ?Apache 软g基金?x)的开放源码J2EE服务器,它集成了众多先进技术和设计理念?q些技术和理念大多源自独立的项目,配置和部|模型也各不相同?Geronimo能将q些目和方法的配置?qing)部|完全整合到一个统一、易用的模型中。作为符合J2EE标准的服务器QGeronimo提供了丰富的功能集和无责?Apache 许可Q具?#8220;立即部v”式J2EE 1.4容器的各U优点,其中包括Q?/span>
1. W合J2EE1.4标准的服务器 ?/span>
2. 预集成的开放源码项??/span>
3. l一的集成模??/span>
4. 可~性、可理性和配置理功能?/span>
我一直比较推荐Apache的品。主要是可以L自由C用。下载地址Qhttp://incubator.apache.org/projects/geronimo/
六、其?/span>
讲了q么多大家可能很厌烦?是不是很多很多啊!其实不然Q我们不?x)的太多太多?不会(x)的太多太多了。不你是不是J2EE高手Q还是J2SE高手Q有些东西你要绝对很_明的。例如:(x)1.Java的Collections Framework是java的数据结构了Q不仅要吃透它Q还要能按照需要扩展它Q利用其思想创徏一个自q数据l构?.|络~程肯定要会(x)吧,现在以及(qing)以后很多E序都是不在同一台机器上的,不会(x)|络怎么行哦!3.IO肯定要会(x)的吧!你的E序N不用输入输出数据?整个IO包加NIO也有600多页的源代码?4.JDBC你要?x)?数据库都不会(x)Q在你的企业应用中你的数据又保存到哪里啊!文g中――太落后了吧!典型的没有学qJ2EE。尽数据库背后也是采用文g保存的?.Serverlet、JSp你要是做|页做网站,肯定要做到。问你一个简单的问题Q网中如何实现分页?有具体方法的在本文章后发言?6. Ant要会(x)?java语言中发布的工具Q类gc中的make工具?.JUnit用过?单元试软g。你不要?你的软g没有bug!你牛!(大家研究研究其源代码Q很有用的框Ӟ包含大量的设计模式,源代码不?00?看了只能感叹――高手就是高?/strong>)l心的朋友可以看到在你用的很多IDE工具中都有JUnit?是它?/span>
一切的一切才刚刚开?有兴,有需要你可以研究数据库连接池的框Ӟ如:(x)C3P0、Jakarta DBCP?DBPool….可以研究J2EE框架Spring……. Web框架Struts……持久层框架Hibernate…..甚至开发工具Eclipse…..Sun领导的点对点通信的JXTA…..报表工具JFreeChart、JasperReports…..分布式网l编E的CORBA、网l通信的JGROUPS、XML解析的xerces…..(在不l意间开源已l步入你的电(sh)脑,不信?你JDK的安装目录jdk1.6.0 src com sun org apache是XercesQ一个XML解析的著名的开?目)
不管怎么hq是从基本的做vQ学_J2SEQ熟d的源码,准确了解其设计理念,然后分头ȝJ2EE――一口吃不成一个胖?不要贪多贪广!脚踏实地可以了!
摘自CSDNQ?a >《J2EE值得学习(fn)的开源项目?/a>
2、命令:(x)必须熟?zhn)JDK带的一些常用命令及(qing)其常用选项Q命令至需要熟(zhn):(x)appletviewer?HtmlConverter、jar?java、javac、javadoc、javap、javaw、native2ascii、serialverQ如果这些命令你没有全部使用q,那么你对java实际上还很不了解?/span>
3、工P(x)必须臛_熟练使用一UIDE的开发工P例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者WorkshopQ包括进行工E管理、常用选项的设|、插件的安装配置以及(qing)q行调试?/span>
4、APIQJava的核心API是非常庞大的Q但是有一些内容笔者认为是必须熟?zhn)的,否则不可能熟l的q用JavaQ包括:(x)
◆java.lang包下?0Q以上的cȝ功能的灵z运用?/span>
◆java.util包下?0Q以上的cȝ灉|q用Q特别是集合cMpR规则表辑ּ、zip、以?qing)时间、随机数、属性、资源和Timer.
◆java.io包下?0Q以上的cȝ使用Q理解IO体系的基于管道模型的设计思\以及(qing)常用IOcȝҎ(gu)和使用场合?/span>
◆java.math包下?00Q的内容?/span>
◆java.net包下?0Q以上的内容Q对各个cȝ功能比较熟?zhn)?/span>
◆java.text包下?0Q以上的内容Q特别是各种格式化类?/span>
◆熟l运用JDBC. 8Q、java.security包下40Q以上的内容Q如果对于安全没有接触的话根本就不可能掌握java.
◆AWT的基本内容,包括各种lg事g、监听器、布局理器、常用组件、打印?/span>
◆Swing的基本内容,和AWT的要求类伹{?/span>
◆XML处理Q熟(zhn)SAX、DOM以及(qing)JDOM的优~点q且能够使用其中的一U完成XML的解析及(qing)内容处理?/span>
5、测试:(x)必须熟?zhn)使用junit~写试用例完成代码的自动测试?/span>
6、管理:(x)必须熟?zhn)使用ant完成工程理的常用Q务,例如工程~译、生成javadoc、生成jar、版本控制、自动测试?/span>
7、排错:(x)应该可以Ҏ(gu)异常信息比较快速的定位问题的原因和大致位置?/span>
8、思想Q必L握OOP的主要要求,q样使用Java开发的pȝ才能是真正的Javapȝ?/span>
9、规范:(x)~写的代码必ȝ合流行的~码规范Q例如类名首字母大写Q成员和Ҏ(gu)名首字母写Q方法名的第一个单词一般是动词Q包名全部小写等Q这L(fng)序的可读性才比较好?/span>
10、博学:(x)掌握J2EE 、Oracle 、WebLogic、Jboss、Spring、Struts、Hibernate {流行技术,掌握软g架构设计思想、搜索引擎优化、缓存系l设计、网站负载均衡、系l性能调优{实用技术?br />
摘录自CSDNQ?/span>《一个javaE序员的10Ҏ(gu)能?/a>
1.你需要精通面向对象分析与设计(OOA/OOD)、涉?qing)模?GOFQJ2EEDP)以及(qing)l合模式。你应该了解UMLQ尤其是classQobjectQinteraction以及(qing)statediagrams?
2.你需要学?fn)Java语言的基知识以及(qing)它的核心cd (collectionsQserializationQstreamsQnetworkingQ?multithreadingQreflectionQeventQhandlingQNIOQlocalizationQ以?qing)其?。 3.你应该了解JVMQclassloadersQclassreflectQ以?qing)垃圑֛收的基本工作机制{。你应该有能力反~译一个类文gq且明白一些基本的汇编指o(h)?
4.如果你将要写客户端程序,你需要学?fn)Web的小应用E序(applet)Q必需掌握 GUI设计的思想和方法,以及(qing)桌面E序的SWINGQAWTQ?SWT。你q应该对UI部g的JavaBEANlg模式有所了解。JavaBEANS也被应用在JSP中以把业务逻辑从表现层中分d来?
5.你需要学?fn)Java数据库技术,q且?x)用至一Upersistence/ORM构架Q例如HibernateQJDOQ?CocoBaseQTopLinkQInsideLiberator(国JDOU工厂Y?或者iBatis?
6.你还应该了解对象关系的阻抗失配的含义Q以?qing)它是如何媄响业务对象的与关pd数据库的交互Q和它的q行l果Q还需要掌握不同的数据库品运用,比如racleQmysqlQmssqlserver?
7.你需要学?fn)ServletsQJSPQ以?qing)JSTL(StandardTagLibraries)和可以选择的第三方TagLibraries?
8.你需要熟(zhn)主的|页框架Q例如JSFQStrutsQTapestryQCocoonQW(xu)ebWorkQ以?qing)他们下面的涉?qing)模式Q如MVC/MODEL2?
9.你需要学?fn)如何用?qing)理Web服务器,例如tomcatQresinQJrunQƈ且知道如何在其基上扩展和l护WebE序?
10.你需要学?fn)分布式对象以?qing)q程APIQ例如RMI和RMI/IIOP?
11.你需要掌握各U流行中间g技术标准和与Javal合实现Q比如Tuxedo、CROBAQ当然也包括JavaEE本n?
12.你需要学?fn)最一U的XMLAPIQ例如JAXP(JavaAPIforXMLProcessing)QJDOM(JavaforXMLDocumentObjectModel)QDOM4JQ或JAXR(JavaAPIforXMLRegistries)?
13.你应该学?fn)如何利用Java的API和工h构徏WebService。例如JAX- RPC(JavaAPIforXML/RPC)QSAAJ? (SOAPwithAttachmentsAPIforJava)QJAXB(JavaArchitectureforXMLBinding)QJAXM(JavaAPIforXMLMessaging)Q?JAXR(JavaAPIforXMLRegistries)Q或者JWSDP(JavaWebServicesDeveloperPack)?
14.你需要学?fn)一门轻量应用E序框架Q例如SpringQPicoContainerQAvalonQ以?qing)它们的IoC/DI风格(setterQconstructorQinterfaceinjection)?
15.你需要熟(zhn)不同的J2EE技术,例如 JNDI(JavaNamingandDirectoryInterface)QJMS? (JavaMessageService)QJTA/JTS(JavaTransactionAPI /JavaTransactionService)QJMX?(JavaManagementeXtensions)Q以?qing)JavaMail。 16. 你需要学?fn)企业JavaBeans(EJB)以及(qing)它们的不同组件模式:(x)Stateless/StatefulSessionBeansQEntityBeans(包含 Bean-?ManagedPersistence[BMP]或者Container-ManagedPersistence[CMP]和它的EJB- QL)Q或?Message-DrivenBeans(MDB)?
17.你需要学?fn)如何管理与配置一个J2EE应用E序服务器,如WebLogicQJBoss{,q且利用它的附加服务Q例如簇c,q接池以?qing)分布式处理支援。你q需要了解如何在它上面封装和配置应用E序q且能够监控、调整它的性能?
18.你需要熟(zhn)面向方面的E序设计以及(qing)面向属性的E序设计(q两个都被很Ҏ(gu)h的羃写ؓ(f)AOP)Q以?qing)他们的LJava规格和执行。例如AspectJ和AspectWerkz?
19.你需要熟(zhn)对不同有用的API和framework{来Z服务。例?Log4J(logging/tracing)QQuartz? (scheduling)QJGroups(networkgroupcommunication)QJCache(distributedcaching)Q?Lucene(full- textsearch)QJakartaCommons{等?
20.你应该熟l掌握一UJavaIDE例如sunOneQnetBeansQIntelliJIDEA或者Eclipse?有些人更喜欢VI或EMACS来编写文件。随便你用什么了Q?
21.Java(_的说是有些配|?是冗长的Q它需要很多的人工代码(例如EJB)Q所以你需要熟(zhn)代码生成工P例如XDoclet?
22.你需要熟(zhn)一U单元测试体p?JNunit)Qƈ且学?fn)不同的生成、部|工?AntQMaven)?
23.你需要熟(zhn)一些在Java开发中l常用到的Y件工E过E。例如RUP(RationalUnifiedProcess)andAgilemethodologies?
24.你还需要紧跟Java发展的步伐,比如现在可以深入的学?fn)Webwork2.0
25.你必需要对实际目的开发流E有所了解Q至要有两个有实际应用价值的目Q而不是练?fn)项?因ؓ(f)现在企业看重的是你有没有实际的开发经验,真正开发经验的体现是你做的项目,也就是有实际应用的项?
本文来自CSDN博客Q{载请标明出处Qhttp://blog.csdn.net/Vanessa219/archive/2009/02/20/3913112.aspx
当前的经Ş势下Q很多程序员目光聚焦在短期内的工作形式上,但是你仍然要抽出旉和精力学?fn)新的技能。以下是作ؓ(f)E序员应当即d?fn)的十项技能,以确保在未来五年内你的简历上有真材实料。当然这个名单很隑ց到详而没有遗漏,有些领域没有涉及(qing)刎ͼ比如大型机开发者)。然而,对于一般的L开发而言Q你臛_要学?x)以下十条中的七条,而且掌握的程度不是那U你在工作面试上能够夸夸其谈Q而是真正能够用于实际开发?/p>
1Q三大主开发体pM一(.NET, Java, PHP)
除非软g开发领域发生巨大的变革Q这机率好比行星撞击地球Q,不然E序员至需要知道三大开发系l中Q?NET (VB.NET or C#), Java, PHPQ的一U。而且仅仅了解核心语言是不够的Q因为现在的目拥有来多的不同功能,q也qɽE序员对相关的框架和库了解得更深?/p>
2Q富客户端应用(Rich Internet ApplicationsQ?/strong>
无论你对Flash是爱q是恨,我们都不得不承认在过ȝ几年里Flash的发展壮大已q不仅是应用于动d作。Flash以及(qing)Flex和AIR都具备越来越多的功能。而Flash的竞争者,如JavaFX和Silverlight{也在不断提升自w的性能和表现。让富互联网应用更加z跃的是QHTML 5正整合进所有种cȝRIA功能Q包括数据库q接、将W3C|于AJAX上等。在不远的将来,作ؓ(f)一名RIA领域的专家无疑将l你的简历添上浓重的一W?/p>
3QW(xu)eb面开?/strong>
Web开发恐怕在未来的很长时间内都是L技术之一。许多程序员往往满于构建后台、或者只是专注于框架基础而忽略了Web。但是越来越多的企业需要如何在交互代码Qhand codeQ别处理Web技术的人员Q所以掌握JavaScript、CSS和HTML必将在未来五q内的职Z无往不胜?/p>
4QW(xu)eb服务端开?/strong>
REST q是SOAP? JSON q是XML?当然选择{案得依据项目来定,但如果一名程序员不会(x)创徏Web服务Q尽这个程序员也许不用写Web应用Q,那么他在工作岗位上一定倍感艰难。因为即便是q去那些被ODBC, COM或?RPCd的领域现在也转到了一些Ş式的Web服务上了?/p>
5QY性技?/strong>
一D|间以来就有这样一U趋势即Q无论在企业内部q是企业外部提高I(y)T的能见度。程序员被越来越多地带去参加非开发性会(x)议来提供技术支持。例如,没有IT升pȝQ首席胦务官不可能改变收支细则;没有IT升CRM工作,q营ȝ不可能改变一个中心呼叫进E。同P客户l常直接与开发团队沟通以保他们的需求被完成。是否每个程序员都应该回d?fn)礼仪课来与别h更好的交往呢?那倒不必,但是E序员的要提高待h接物的Y性能力,以在职场上获得更大的价倹{?/p>
6Q一U动态或者函数式E序设计语言(Functional Programming Language)
cdRuby, Python, F#和Groovy{的语言虽然不完全主,但是语言内部包含的思想却是开发界的主。比如,微Y.NET中的LINQpȝ是函数式程序设计语a的一个直接派生。得益于Rails框架和Silverlight的发展,Ruby和Python语言在一些领域变得很热门。学?fn)这样一门语a不仅丰富了你的简历,而且?x)开阔你的开发视野。我所遇到的顶U开发者几乎都曑֜演讲中提到学?fn)一门动态语a或者函数式E序设计语言的重要性,我的个人经历而言Q这实很有用?/p>
7Q敏捷开?/strong>
当敏捷开发第一ơ冲M的开发意识时Q我跟许多开发者一h怀疑的观点。因为它抛弃了控制、标准等Q看h是一U完全与传统Ҏ(gu)相?zhn)的开发方法。但随着旉的发展,敏捷背后的思想被定义的来好Q应用得也越来越。许多开发或者采用敏P或者在敏捷开发的实验阶段。尽敏捷不是失败项目的万灵药,但它实在Y件开发中有一席之地。那些对敏捷有很好的理解q且有应用经历的开发者必在未来五年内成为抢手货?/p>
8Q业务领域知?/strong>
开发团队越来越被看做是目的合作者,q意味着了解该领域的开发者将对该目的A(ch)献更大。有了敏P开发者可以说我们可以在这儿很单地增加q个功能Q而这让我们的品更具h(hun)倹{或者这个要求不W合我们日志昄的常用类型。由于越来越多的E序员反对必M解该领域内的所有问题(实际上也不可能做刎ͼQ所以不可否认的是越来越多的企业希望开发者v码了解该领域内的基础知识Q越多越好?/p>
9Q质量控?/strong>
几年前的时候,很多企业和品没有bug跟踪pȝ、没有版本控制和其他cM的工P所写出的代码和产品都只是跟E序员和他所用的IDE有关。幸而开发领域有了新的、集成的工具如Microsoft Visual Studio Team SystemQ而且产品、代码高质量?qing)可用性的透明度提高,开源环境等Q现在没有这U工L(fng)企业已经来少E。开发者除了知道如何源代码控制、如何用VMpȝ构徏试环境之外Q还要做更多的质量控制工作,q具备很好的清洁意识来确保他与他的团队协调一致。那些将代码处存在个人硬盘中Q没有记录代码变更、Q务目录等的开发者,不但在传l的开发环境中不受Ƣ迎Q在敏捷的开发环境中也不受欢q?/p>
10Q移动开?/strong>
在上世纪90q代末,W(xu)eb开发一跃成Zƈ且将原来传统的桌面应用开发边~化。在2008Q移动开发大肆进入h们的视野Q而且臛_在五q内Ud开发都是开发领域的重中之重。当然移动开发的方式有很多种Q但无论你选择哪一U都o(h)你成为未来的抢手货?br />
源引Q?font style="background-color: #cce8cf">http://news.csdn.net/a/20090408/210278.html