??xml version="1.0" encoding="utf-8" standalone="yes"?>
pȝ提示了错误号“0x8ffe2740”Q百度一下,{案是:IIS要用的80端口被程序占用,只需要更改IIS所使用的端口即可解决问题。改了端口后问题果然解决?/font>
但是Q在调试E序或在览器中览本地E序ӞL要在地址后面增加端口P很不方便。再是以前已经做了N个Web应用E序Q再逐个攚w目文Ӟ太麻烦。还是希望用80作IIS端口?/font>
于是用netstat -an -p tcp -o命o查看本地所开攄端口Q以及进E号PIDQ命令详l意思可以查看帮助)。得到本地确实是有一?.0.0.0:80的连接PID?48Q不知道q是什么进E)Q知道进E号后于是用tskill 848杀掉此q程Q再ơ重启IISQƈ且以80作ؓ其端口,启动成功Q问题解冟?br>
Q注Q摘?font face=宋体>http://hi.baidu.com/key8086/blog/item/759232092380b9ad2fddd452.html Q?/font>
netstat 命o参数说明Q?/font>
-n 是查端口L关的q程
-o 是查出相兌E的ID
netstat -an -o 可以查出端口及进EID
查到对应ID 后,可以?"d理? 中,在查看菜单中Q选择 "选择? 选中 PID 列项Q?可以查出哪个E序Q对应这个ID 占着哪个端口?/p>
1..$ORACLE_HOME/rdbms/admin/dbmslm.sql 2. $ORACLE_HOME/rdbms/admin/dbmslmd.sql.
SQL> @d:\oracle\product\10.2.0\db_2\RDBMS\ADMIN\dbmslm.sql
E序包已创徏?/p>
授权成功?/p>
SQL> @d:\oracle\product\10.2.0\db_2\RDBMS\ADMIN\dbmslmd.sql
E序包已创徏?/p>
使用LogMiner工具
1、创建数据字典文Ӟdata-dictionaryQ?/p>
数据字典文g是一个文本文Ӟ使用包DBMS_LOGMNR_D来创建。如果我们要分析的数据库中的表有变化Q媄响到库的数据字典也发生变化,q时需要重新创字典文g。另外一U情冉|在分析另外一个数据库文g的重作日志时Q也必须要重新生成一遍被分析数据库的数据字典文g?/p>
在ORACLE8I的时候,首先在init.ora初始化参数文件中Q指定数据字典文件的位置Q也是d一个参数UTL_FILE_DIRQ该参数gؓ服务器中攄数据字典文g的目录。如Q?
UTL_FILE_DIR = (e:\Oracle\logs)
ORACLE9I后,推荐使用SPFILE启动Q可以动态调整参敎ͼ
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string D:\ORACLE\PRODUCT\10.2.0\DB_2\
DATABASE\SPFILESGTEST2.ORA
SQL> alter system set utl_file_dir='d:\oracle\logs' scope=spfile;
pȝ已更攏V?/p>
SQL> startup force
ORACLE 例程已经启动?/p>
Total System Global Area 289406976 bytes
Fixed Size 1248600 bytes
Variable Size 96469672 bytes
Database Buffers 188743680 bytes
Redo Buffers 2945024 bytes
数据库装载完毕?/p>
数据库已l打开?/p>
SQL> show parameter utl_file_dir
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string d:\oracle\logs
然后创徏数据字典文g
SQL> @d:\dbms_logmnr_d.build.txt
PL/SQL q程已成功完成?/p>
脚本dbms_logmnr_d.build.txt
BEGIN
dbms_logmnr_d.build(
dictionary_filename => 'logminer_dict.dat',
dictionary_location => 'd:\oracle\logs');
END;
/
2、创分析的日志文件列?/p>
Oracle的重作日志分ZU,在线QonlineQ和ȝQofflineQ归档日志文Ӟ我这里主要分析归档日志,在线日志原理一栗?/p>
A.创徏列表
SQL>execute dbms_logmnr.add_logfile(options =>dbms_logmnr.new,logfilename =>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO01.LOG');
B.d另外的日志文件到列表
SQL>execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename=>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO02.LOG');
SQL> execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename=>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO03.LOG');
删除
SQL> execute dbms_logmnr.add_logfile(options =>dbms_logmnr.removefile,logfilenam
e =>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO03.LOG');
8.启动LogMinerq行分析
BEGIN
dbms_logmnr.start_logmnr(
dictfilename => 'd:\oracle\logs\logminer_dict.dat');
END;
/
4、观察分析结果(v$logmnr_contentsQ?/p>
到现在ؓ止,我们已经分析得到了重作日志文件中的内宏V动态性能视图v$logmnr_contents包含LogMiner分析得到的所有的信息?
SELECT sql_redo FROM v$logmnr_contents;
理论上提高,那么计算机学院是唯一选择。因机学院才能让你在理Z更上一层楼
。Y件学院从教学计划上就没有把你往q方面带。当然能不能更上一层楼最l还是完全取
决于你自己。需要特别说明的是,工作l验q不一定等于开发经验,我见q很多工?-3q?/p>
的hQ但是没有一点开发经验?br />
你说Q“他们都有很强的开发能?只是不太喜欢M,也只是希望个学历对今后?/p>
岗位上晋升有好处”,我可以向你保证,你所说的人绝对不是开发能力很强的人。因为,
1Q高手不可能不喜Ƣ读书;2Q高手不可能惛_混一个学历;3Q高手不可能认ؓ晋升是因
为学历的原因?br />
q需要说明的是,考计机的h未必个个都是高手Q严格来_大部分都不会~程?/p>
。也是_庸庸碌之辈仍然占绝大多数。研I生毕业的师兄只?500元左右的比比?/p>
是,所以不要寄希望于拿一张研I生文凭出去赚高薪。但是,对于有实际开发工作经验的
人,要想自己?q之中有一个真正的提高的话Q计机学院提供了广阔的q_。就我所?/p>
Q每一个月?万以上的也有Q上,囑ŞҎ(gu)法设计Q。所以,同ؓ研究生毕业,
能力的差距是极大的。所以,不要去问“研I生毕业能拿多少Q”,要问“像我这U水q?/p>
的hQ研I生毕业能拿多少钱?”这样h家才能够准确地回{你?br />
所谓“有实际开发工作经验”是指你目前已经具备下列能力Q?Q你已经认ؓC++和汇
~语a都是很简单的语言Qƈ能够自如地运用;2Q你能够?0分钟之内惛_正确的五子棋
AI法设计思\和方向;3Q你完全理解STLZ么这么重要;4Q你能够独立地解x有的
~译与链接问题,哪怕你从来没有遇到的问题,你也不需要询问Q何hQ?Q英文网站是?/p>
的首要信息来源;6Q能够读懂英语写成的国际标准Q比如NTFS盘格式标准?Q你l常
站在集合论的角度思考算法问题;8Q能够理解一个简单的驱动E序Q能够理解一个简?
D交互E序Q?Q你能够认识到线性代数和概率论在实际~程工作中的极端重要性;10Q你
完全理解COM的设计思想Q尤其能够理解COMZ么要设计成这P11Q当我说到虚函数?/p>
重要作用Ӟ你不会急着L书来;12Q你能够说出C++Z么比其他语言优秀的理由,
Cq种理由应该来自于你的开发体会,而不是因为其他h都这么说。此外还有很多判?/p>
标准Q但如果你同时具?条以上,可以认ؓ你已l具备相应的开发经验了。在q种状态下
ȝQ你取得读研效益的最大倹{?br />
ȝ最重要的是要明白你自己要干什么,不能{导师来告诉你你应该q什么。研I生
的优势在于理论功底深厚,思维hIK力Q当然编E能力首先要q关Q不要读完研I生
q不知道MFCE序的WinMain函数在哪里。所以,研究生期_你一定要做有理论深度的算
法设计,比如大规模数据的搜烦法Q性能是首要考虑因素Q不要奢望SQL函数能够帮你?/p>
决问题,所有的问题你都必须自己解决Q你必须解决内外存交换的性能瓉。再比如极品
飞R?D场景生成Q图形变换,撞,物性模拟,U理映射Q灯光模型等{,q些?/p>
是可以保证你能拿?万以上月薪的技术。如果你认ؓq些东西太难Q不可能做得出来的话
Q那么你׃适合ȝ。真的,要是你认研之后还是要L一般的E序设计Q如信息
理pȝ之类的YӞ那么你读研的价值就完全不会得到体现Q因些工作根本就不需
要读研?br />
软g学院宣称培养软g开发h才,恕我直言Q我从来没有看见那个高手是培训成功的
。成Y件开发高手的路只有一条:自学QY件开发中需要大量的~程实践和独立思考,
只有在此q程中,你才能够逐步成长h。Y件学院宣U培养Y仉目经理,q更是搞W?/p>
Q在某种意义上这是欺骗行为。学院里面能够培d软g开发经理更是十的谎言QY?/p>
目l理必须Q或者说更强调从战争中学会战争。没有实늻验的目l理是l花枕头
一个?br />
M一句话Q如果你只想成ؓ软g开发高手(比如认ؓ会编驱动E序或杀毒Y件就?/p>
高手的那U)Q徏议工作,不要考研Q完全没有工作经验的Q也不徏议考研Q你q来了只
有瞎混一通。如果你有上q工作经验且x为高UY件工E师Q能够独立理解ƈ设计出快
速傅立叶变换法的那UY件工E师Q的话,那么强烈考研。考研让你?q放松思?/p>
的机会,也有3q让你思想和技术积累沉淀(wn)的机会。非帔R得的Z。不考研的话Q这U机
会就是一U奢侈,可望而不可即的那么一U奢侈?br />
1Q关于读书的Z成本问题。读研的Z成本的确是很高。Q何h都可以简单地计算
出来。所以,我也不赞成所有的人都去读研。读研只适合那些痛感数学在编E中的极端重
要性的人。如果对理论工具和理论思维的极端重要性没有切肤的认识Q那么读研的价值几
乎ؓ0Q读研的好处在于QAQ把你自己放在一个学术和工程的交叉点上;BQ让你具备了q?/p>
入微软等世界软g研发机构的可能性;C只是可能性。但是不ȝq种可能性ؓ0Q?/p>
CQ如前所qͼ如果没有ȝ的机会,你也没有静下心来好好钻研几q理论的ZQ一?/p>
工作拉K薪,一Ҏ(gu)入地学习各种理论Q诸位认可能吗?我反正认Z可能Q我觉得
学习ȝ理论最需要的是一个长期安静独处的环境Q一边工作一边读书是不可能有q样
的环境的Q你会觉得每天都在疲于奔命。而读研正好可以提供这样一个环境。我同时q反
Ҏ(gu)天跟着导师的屁股后面跑Q这样会费很多旉。读计算机的研究生,主要依靠自己
L阅最新文献,自己ȝL献,和导师的口头交流一个月一ơ就_了,前提q需?/p>
导师的水q够牛。如果导师的水^不牛Q这也没关系Q不理他是了,自己做好自己?/p>
事情卛_?br />
2Q关于研I生教学质量问题。坦白地_全国都是“洪桐县中无好h”,其在计?/p>
U学领域Q大牛极。那Z么还要去ȝQ大哉问Q把ȝ的收获寄托在名校或名师的
名我认ؓ气上Q是注定要失败的。读研全靠自学,研究生之间的差距全部体现在自学能?/p>
上面。又有h问,既然是自学,Z么非要读研?回答是:因ؓȝ是ZC份保?/p>
Q就是买一份你自学三年之后不会׃的保险。这份保险主要是一U心理上的后盾,让你
在自学过E中l得赯惑,能够从容镇定地去q寻计算机理论发展的坚实Q从Ƨ拉Q?/p>
贚wQ高斯,hQ图늭巨匠那里LҎ(gu)论的珠宝。倘若没有q䆾保证Q你在家里面
自学3个月Q保证你会被׃的压力压得喘不过气来Q何谈安心学习?
3Q关于实战经验与理论学习的优劣问题。这没有定论Q如前所qͼ理信息pȝQ设
备驱动开发,工具软g开发,软g病毒剖析{等q些工作不太需要创造性,需要的是耐心
和经验,需要的是对既有规范的准理解,q类开发工作最适合在实战中提高Q理论学?/p>
没什么作用。但是在人工Q模式识别,囑փ压羃Q虚拟现实,巨量数据索,自然?/p>
a理解Q计机囑Ş学等{领域,理论学习占据着l对的统d位!q些领域的突破对
人类的生zȝ影响是极其巨大而深ȝ。某些领域处于一个极其快速发展的态势之中Q比
如计机囑Ş学,怿诸君能够从众?D游戏的灿烂辉煌中体认到我的这U说法。在q些
领域Q如果没有扎实的理论功底Q一切都是那么遥q,不管你花了多时间在~程上面?/p>
4Q关于高U研发h员的知识l构问题。首先声明,我不是一个纯_理论激q分子,?/p>
认ؓ除了理论之外Q一切都不重要。我认ؓQ纯熟的~程技能是最基本但也是最必不可少
的技能。没有这个基Q一切计机理论是IQ研I图灵可计算性理论的研究者除?/p>
Q。有了这个基之后Q下列理论学习方向必重点突_
1Q科学哲学。这是核心中的核心!可惜国内不开q门课。不但不开课,而且q作为批
判对象来引用Q实在是遗憾xQ这是一门教你如何“钓鱼”的学科Q在一切科学研I中
居于最核心的地位。它是古今科研方法和思维Ҏ(gu)的集大成者,很难惌一个成熟的研究
者没有一套自qҎ(gu)ZpR科学哲学最需要的是领会与ȝQ它的思想与启CZ伴随
我们的一生?br />
2Q康托集合论Q矩阉|法,Ll构Q图论方法,论Ҏ(gu)之间的紧密关pR最重要
的认识这些理论对实践的重要启C和Ҏ(gu)引导。我始终认ؓQ如果你学了一门理Z后,
却不知道q门理论有什么作用,那么你的理论q学了Q你什么东襉K没有捞着。所以,
学习M理论之前Q先问自己:它有什么用Q在哪里用?如何用?带着q些问题d习理
论,你才会真正地学到东西。用q三个问题去问你的理老师Q他的回{就是判断其?/p>
际水q的最x准?br />
3Q思维要有极强的穿透力Q学会看透文献作者没有写出来的动机。绝大部分大师都?/p>
隐瞒自己最hҎ(gu)论启C意义的思考环节的习惯。牛和华罗庚先生都有这个坏习惯?/p>
q让大家认ؓ他们是天才,因ؓ很多问题他想CQ我们想不到。但是ؓ什么他们能惛_
Q我们想不到Q他们是怎样惛_的?没有人告诉我们牛发C有引力定律时的思考过E?/p>
Q当Ӟ牛顿可以h地把他的思考结果告诉我们,但是Q他那可以点x金的“金手指
”却没有教给我们。我们的d是要培养透过文章看穿作者背后意囑֒动机的能力,?/p>
q方面,台湾的侯捷和国的Donbox是绝?jng)_范。这两只老狐狸(呵呵Q是qQ凭着?/p>
猎犬一般的嗅觉Q抽丝剥茧,一个把COM背后的幕后设计动机揭开q暴露到了光天化日之?/p>
Q另一个把MFC的宏观架构做了一ơ完的外科手术。其非凡的思维IK力令h惊叹?br />
4Q英语。英语本w不重要Q但是用p写成的文献就极其重要了。所以,专门把英?/p>
作ؓ一个重头戏列出来。大家不要相信英语无用论的鬼话。对于搞计算机的而言Q英语就
是你的母语!
5Q其它的具体理论q有很多Q但是都不如q三个方面重要,因ؓ我觉得这三个斚w?/p>
最hҎ(gu)性,全局性的能力培养环节。需要指出的是,很多高深理论对你的工作是无意
义的Q当心时间陷q去。一定要把效率最高的旉D는在最h军_性意义的理论学习?/p>
?br />
5Q关于读研之后的\是否光明的问题。我们应该承认,ȝ之后Q你的工作机会不
是变多了Q而是变少了。而且是高手Q他的工作机会和工作范围p。这是因为,?/p>
是搞前沿研发的公司,其数量越,在这个圈子的Zp。你扑ַ作的范围p,
试问Q如果微软的OS设计专家出来扑ַ作,能够让他选择的公司能有几Ӟ但是Q这U公
司数量的减少是以工资待遇的急剧上升偿的Q同Ӟ你在工作中所受到的充分尊重也
是在一般公怸体会不到的。所以不要担心学了高U技用不上,呵呵Q你只会来感?/p>
自己学的不够用。相信接到过猎头公司?sh)话的h会体会得到。真正的高手从来׃会担?/p>
工作的问题,也从来不会到人才市场上去扑ַ作。既焉择了理论深入,那么应该把?/p>
光放得更q?/p>
在开始之前有必要再讨Z下J2MEQJ2SEQJ2EEq些概念。J2MEQThe Micro Edition of the Java 2 Platform。主要用于嵌入式JavaQ如手机QPDA{等。J2SEQJava 2 PlatformQStandard EditionQ我们通常所说的JDK(Java Development Kit)包含在此Q是J2EE的基。J2EEQJava 2 PlatformQEnterprise EditionQ就是所谓的企业UJava。这些只是从APIU别上的划分Q实际上SunlJ2EE的定义是Q开发基于组件的多层的企业应用的规范。也是为各U不同的技术定义一个Java的规范,使这些不同的技术结合v来,在Javaq_上构建强壮的企业U应用。从q一Ҏ(gu)看,J2EEq个概念应该是涵盖J2MEQJ2SE的。比如一个典型的J2EE应用Q网上商店,它支持web方式下订单,也支持手Z订单。显然必ȝ到J2SEQJ2ME。所以也׃存在所谓的从J2SE转向J2EE的问题了Q只是后者包含的范围更广而已?/p>
来看看Sunl出的J2EE 相关技术主要分为几大块?/p>
1. Web Service技?/p>
- Java API for XML Processing (JAXP)
- Java API for XML Registries (JAXR)
- Java API for XML-based RPC (JAX-RPC)
- SOAP with Attachments API for Java (SAAJ)
2. lg模型技术(Component Model TechnologiesQ?/p>
- Java Servlet
- JavaServer Pages
- JavaServer Faces
- Enterprise JavaBeans
- Java Message Service
- J2EE Connector Architecture
3. 理技?Management Technologies)
- J2EE Deployment Specification
- J2EE Management Specification
- J2EE Client Provisioning
- Java Authorization Contract for Containers
4. 其他相关技?Other J2EE Technologies)
- JDBC
- Java Data Objects (JDO)
- CORBA (Java IDL and Java RMI-IIOP)
- JavaMail
- Transactions
如此之多的技术难免初学者无所适从Q望而却步。即使是一位经验丰富的J2EE开发者,又有几个人敢说J2EE相关的技术我都熟l掌握了。不q作Z名普通J2EE应用E序的开发者来_我们只需要重点学习其中的一部分技术就可以了,对于其他部分只要做到心中有数Q哪天需要用C知道跑哪里去扑ֈ资料p了。以我个人的观点Q下面这些技术是一般J2EE应用开发h员所必须熟练掌握的。Java Server PageQJava ServletQEnterprise JavaBeanQJDBCQTransactions。还有JAXP{XML相关技术,Java Message ServiceQJava MailQJDO{等是最好应该掌握的。其他Management TechnologiesQConnector Architecture{等主要是给容器提供商中间g提供商参考的Q应用开发者不需要怎么兛_Q等用到了再d习也不迟?/p>
二、语a学习?/p>
首先是J2SE基础。学习一门新技术,无外乎阅d实践了。而一本好的参考书对于初学者来说显得格外重要。现在市面上?Java书籍可以说是铺天盖地Q质量也是良莠不齐,令初学者无所适从。所以还是先推荐几本书籍吧。目前对于Java基础知识Q大家一般都比较推荐两本?lt;>?lt;< Core Java? 2Q?Volume I: Fundamentals >>。第一本书不必多说了,Bruce Eckel的大作,Jolt获奖书籍。内Ҏ(gu)较全面,基本늛了java语言的方斚w面。这本书提供了相当丰富的例子Q非常有利于对学习内容的了解。另外书中第一部分对于OO基本书籍的介l,我觉得对于刚接触QO的h来说帮助会很大。而且此书是Open Source的,可以从作者网上下?a >http://www.mindview.net/Books/TIJ/而对于习惯于M文版的学习者来_侯捷译的中文版是不错的选择。要说这本说的缺点可能就是对于初学者来说厚了一点,q也是一些hq不推荐此书作ؓ初学者学习用书的原因吧。后面一?lt;< Core Java? 2Q?Volume I: Fundamentals >>。目前已l是W七版了Q单从它出版的次数来看也可以看出此书受欢q的E度Q这本书特点也是讲述比较全面pȝQ基本上一路啃下来的话Java语言基础应该过关了。缺点也是太厚了Q有点像参考手册,前面部分׃不少幅讲Swing和AppletQ可能对初学者不是很有用。还有一些像<< Java in a nutshell>>也是比较不错的基书籍?/p>
学习了基本的语言基础Q别忘了最重要也是最有用的资料还是JDK文档。从你学习java的第一天开始JDK文档应该是常备手头了。如果你到问题首先惛_的是到论坛上L问而不是查阅Jdk文档Q那先别l箋往下学习了Q学会查JDK文档先。不夸张的说在我们的初学者论坛中60%的问题是光查一下JDK文档p解决问题的。最新JDK Documentation下蝲地址http://java.sun.com/j2se/1.4.2/download.html(目前最新版是J2SE5 http://java.sun.com/j2se/1.5.0/download.jsp)不能光说不练Q同一下蝲面把JDKl下载回来。安装完后有一Ҏ(gu)x一下,安装路径下有一个src.zip(有些jdk版本是src.jar)Q好东西?--JDK源代码,老是有h在论坛上问哪里有JDK源代码下载,你说东西放在你安q到处找。有了这个有些问题就需要在论坛上跟人家争来争去了,d源代码瞧一下什么疑问都没有了。几个最重要的命令行工具?/p>
javac: ~译源文件到class文g
java: q行class
jar: 打包工具?/p>
javadoc: 生成java doc的工兗?/p>
对于初学java的h来说Q我不推荐用IDE而直接用文本~辑器,然后用命令行~译q行。这h利于理解CLASSPATHQPATHq些最基本概念。CLASSPATH是初学者比较容易感觉迷惑的地方。现在的IDE太聪明了Q给个名字就l你自动生成java source codeQ自动编译。可能你q行完了你的W一个Hello WorldE序Q还不知道java和javac是用来做什么的。至于实际的目开发,一Ƒ适的IDEq是十分重要的,我们E后再对java开发工具做一些介l?
三、J2EE基础和Java语言q阶
学习完语a基础Q就可以比较自然地{入J2EE实际技术的学习了。J2EE实在是比较庞杂,而EJBQServletQ这些核心技术是作ؓ每一个J2EE开发h员所需要掌握的。关于servletQ我比较推荐<>?lt;>Q第一本是Sun推荐的Servlet教材。第二本是当qAmazon最畅销Java书籍Q五星书籍。这本书机械工业出版C有中文版叫<<与JSP权威指南>>Q感觉翻译得q可以,W二版好像还没有看到有中文版。两本书都全面系l地介绍了JSP和Sevlet知识Q从web服务器配|,JSPQServlet基本~程Q标记库(Tag Lib)Q过滤器Q事件框枉有很好地描述。提供地例子也比较实用。对于EJB学习Q比较著名有两本书,<< Enterprise JavaBeansQ?3nd Edition>>?lt;< Mastering Enterprise Java Beans Third Edition>>Q两位作者Richard MonsonQEd Roman都是属于业界重量Uh物。而Richard Monson本n是EJB规范专家l成员。对我来_两本书难分优劣,W二本书有个好处是可以免费下蝲http://www.theserverside.com/books/wiley/masteringEJB/index.tss?/p>
q是那句话,不能光说不练Q不qJ2EE的练习做h有一炚w烦,应用服务器是不可的Q最好还得准备个轻量U的数据库。下面简单介l一下这些工兗?/p>
web服务?Servlet Container)斚w有:
Tomcat: http://jakarta.apache.org/tomcat/
Jetty: http://jetty.mortbay.org/jetty/
应用服务器常用的有:
Jboss: http://www.jboss.org/products/index
Weblogic: http://www.bea.com/framework.jsp?CNT=index.htm&FP=/content/products/server
WebSphere: http://www-128.ibm.com/developerworks/downloads/ws/was/?S_TACT=105AGX28&S_CMP=DLMAIN?/p>
TomcatQJettyQJboss都是Open Source。Weblogic和WebSphere是J2EE服务器中的老大Uh物,h也不菌Ӏ不q对于开发者有免费的试用版下蝲?/p>
如果单单只是学习ServletQ推荐用TomcatQ它是Sun官方指定的ServletQJSP规范的参考实现。对初学者最重要的是它用比较简单,自带文档比较齐全Q用者众多,有什么问题容易在论坛上面得到帮助。如果学习EJB的话Q推荐用JbossQ不仅仅是因为它是Open Source的,主要是配|比较简单,使用方便。比如说对于q接数据库,对于常用的MySQLQOracleQMS SQL{等都提供了Sample Config文gQ直接拿q来做些改动扔到Deploy目录下就可以用DataSource了,部vJ2EE应用也简单,把整?ear或?war扔到deploy下就可以了。唯一不方便的地方是从Jboss3.0开始,它的文档开始收费了。但是对于一些基本的配置Q在|上q是非常Ҏ(gu)扑ֈ的,毕竟它太行了。至于WeblogicQ也比较Ҏ(gu)使用Q不q比起Jboss来个头大了很多,通过强大的管理界面得一些常用的配置工作变得十分单。和Jboss比v来它的文档就太多了,直是有点|里八嗦Q比如要部v一?ear文gQ一般我们也是直接扔到domain下的applications目录下就会自动deploy了,但是要看它的文档可是长篇大论Q容易吓着初学者,以ؓq又是什么高q学问。至于WebSphereQ个Z推荐初学者用,相比前俩个Server比较难Q而且狂吃内存。不q在企业U市个家伙表C俗,毕竟是出生于IBMq样的豪门?/p>
数据库方面,目前常见的主要有PostgreSQLQMySQLQOracleQMS SQLQDB2{等。前面两个是开源数据库Q后面几个基本上垄断着大部分的数据库市场。对于初学者用来做做EJBQJDBC的练习,我推荐MySQLQ理p是很单,开源Y件不要钱Q个头小使用斚wQ用户众多文档齐全。下载地址http://www.mysql.com/products/mysql/。PostgreSQL也可以考虑Q不q国内用者远不如MySQL多,所以要在论坛上问v问题来就方便一些了Q下载地址http://www.pervasive-postgres.com/downloads/。至于后面那些比较重量的数据库Qؓ了做做练习而言׃用考虑了, ׃׃赯个钱啊?/p>
学习完J2EE的这些具体技术,q个时候进行基本的J2EE开发应该是不成问题了。此时应该考虑提高自己的代码质量了。这里我强烈推荐Martin Fowler?lt;>Q这本书不是一本非常实际的书,作者完全是手把手地教你如何提高代码质量Q从具体C码中告诉你什么是代码的Bad SmellQ如何去掉这些Bad Smell。不书评是q么说的Q这本书对于初Q中U的读者帮助是立杆见媄的。至就我接触到的几个学习编E不久的E序员,~码质量在短期内都有很大提高。当焉?Refactoring)q一概念q不只针对Java语言的,它对所有OO语言都是适用的。重构的概念是如此深入h心,以至于今天几乎所有流行的IDE工具都有寚w构的支持。这里我q想再推荐一?lt;>。从C++q来的程序员都知?lt;>在C++领域的地位,至今q流传着q样的趣话,C++E序员分ZU,一U是读过<>的,另一U是没有读过C++的。虽然这?lt;>在Java领域的媄响也许没有那么大Q但对于JavaE序员绝Ҏ(gu)相当的指gh(hun)倹{作者是Sun公司的Joshua BlochQjava Collection framework的设计者。作者站在JDK设计者的角度向你介绍他的Best PracticeQ应该这样做而不应该那样做,对于JDK中某些API设计的缺陷他也毫不袒护的指出。Java语言之父James Gosling为此书写的前a是这么说的“I sure wish I had had this book ten years ago?Some might think that I don't need any Java booksQ?but I need this one”。这本书会让你觉得原来你对Javaq是有很多东西不了解的。D个例子来_对象的equalsҎ(gu)Q我们认为它很简单,也许你每天都在ؓ你新写的Class重蝲q个Ҏ(gu)Q但是你在重载的时候注意过“自反”,“对U”,“传递”这些必要考虑的因素,你是否同时还心谨慎的重载了hashcodeq个Ҏ(gu)Q如果没有,你要M下这本书。读完这本书Q你会觉得离Java的距Lq了。上面两本书都出q中文版Q后面一?lt;>q有两个版本的中文版Q第一ơ翻译的比较差一点,后来机械工业出版C֏委托潘爱民先生重新翻译了一遍。同一本书在同一个出版社q箋被翻译了两次也说明国内出版界对这本书q是比较重视的?/p>
q个阶段Q在看书的同Ӟ可以l合着学习一些优U的开源项目的源代码。这些开源项目的代码风格Q注释都是值得借鉴的。实在太懒也别忘了手头上q有个Jdk的源代码。其实也不用LL源代码,在实际的J2EE目开发中Q基本上都会用到一些优U的开源项目。Framework可能会用到SpringQStrutsQLog机制基本上都会JarkartaCommons Log或者Log4jQ单元测试会大多会用JunitQ结合项目阅M下其中的一些源代码Q既可以提高自己又对目会有所帮助Q说不定因此而得到PM的赏识呢。一举两得,何乐而不为呢。呵呵,有点扯远了。过了初学者阶D,该学会如何找到适合自己的Java书籍了。历l数十蝲Q今天的Java技术已l变的如此之庞杂Q我怿即ɽI净一个h毕生之精力也不可能把Java所有的相关技术都学通,何况新技术还在层ZI地推出Q?q之前谁会知道Struts会成为Web框架事实上的工业标准?q之前谁会知道Hibernate会在今天独领风骚。既然已l不能指望一ơ性把java技术的Ҏ(gu)面面都学个通,在实际中也只能是需要什么技术再学习什么技术了。而能否选择一本好的参考书c带来的是事半功倍和事倍工半的效果。所以我觉得q旉攑֜选择书籍上面q是很值得的,否则你在后面只会花更多的旉。下面我谈谈自己选择书籍的一些经验,不一定正。首先看作者,像上面提到的那些书的作者,都是业界鼎鼎大名的,选择他们的书一般错不了。大家看的书多了Q自p中自然也会有一个listQ哪些作者是信得q的。二看出版社Q计机书籍斚wQOreillyQAddison-Wesley都是公认比较好的出版C。对于目前比较流行的Java技术,Oreilly?lt;>pd是不错的选择。另外我q会ȝ看Amazon|站(http://www.amazon.com/)的书评,一般小?星的书我都不会考虑。还有一个好dhttp://www.theserverside.com/的书评,q里的书评比较有,往往都有很激烈的争论Q里面经怼看到一些名人在发言。我要向所有Java学习者推荐,如果我的收藏多w面只能存放两个网站,我会选择java.sun和theserverside。在q里你可以了解最新的Java动态,可以学习W一手的Java资料Q可以看到Java高手?里面不乏业界大腕)Ȁ烈辩论?/p>
到此阶段QJava Developer的基本功底应该算是打好了吧,往后就是不断学习喽。结束这一D之前,最后再介绍一本书Oreilly?lt;>Q因为我觉得多线E编E属于Java基本功,每一个想学好Java的h都应该好好掌握?/p>
四、提高篇
在这个阶D应该从软g架构QFramework层次上来学习了。作为面向对象的圣经<>Q?q本书是不得不推荐的。不用再多说了,q本在面向对象领域地位完全是属于教父U别的。不你学习的是什么OO语言Q不你现在是用.Netq是J2EE开发,q本书都是你q阶之\上的必读之书。?lt;>则专门针对于J2EE来讨计模式,书中Sun Java Center的资p计师描述了J2EE关键技术的模式。最?jng)_践,设计{略和经q验证的解决Ҏ(gu)。对于每一个希望成为J2EE 架构师或者设计师Q这本书值得一诅R学习设计模式的时候,是结合实际的源代码来看,比如看看Junit源代码,你可以看到很多设计模式优雅的实现Q作者之一Erich Gamma本n是<>的作者。至于J2EE的设计模式,Sunq开辟了专门的空?a >http://java.sun.com/blueprints/patterns/Q里面有对常用模式的讨论又提供了详细的源代码样例。正如Grady Booch所_模式对于普遍问题提供了通用的解x案,利用模式q于拥有一个强大的专家队伍。如果你q没有学习,现在开始吧。此外对于面向对象方法论Q极限编E的思想也应该有所了解http://www.extremeprogramming.org/。对于J2EE目的具体实施,Rod Johnson?lt;>也很有h(hun)|该书以作者丰富的实战l验向我们展C如何用可能简单的解决Ҏ(gu)构徏J2EE 应用Q书中作者第一ơ提L观点Q很多时候,J2EE应用完全没有必要用到EJBQ对于言必称EJB的广大J2EE开发者来_怎么说也有点惊世咳俗的味道。当Ӟ作ؓServlet和JDO两个专家l的成员Q这可不是作者信口胡驺的。今天风靡Java世界的Spring框架最初便是源于此书,而IOCQAOP{概忉|是被时下的java开发者挂在嘴辏V最后,作ؓ对Java的深入学习,Java技术的各个Specification也有必要一诅R暂时就写到q里吧?/p>
五、结?/p>
怿大家看了q篇文章后会有较大的提高Q如果你想了解更多的关于Java斚w的知识,你可以浏览“Java学习W记”(http://sylan215.bokee.com/Q网站,对于学习JavaQ这是一个相当不错的选择?/p>