JAVAselfstudy.docx
- 文档编号:9099581
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:19
- 大小:36.02KB
JAVAselfstudy.docx
《JAVAselfstudy.docx》由会员分享,可在线阅读,更多相关《JAVAselfstudy.docx(19页珍藏版)》请在冰豆网上搜索。
JAVAselfstudy
我学习java是从写一个叫Linker的聊天软件开始的。
我描述下我的java学习过程,可以给初学者做个参考。
虽然在很多人眼里我也还是初学者。
我是去年6月份期末考试完才开始学java的,当时看到Gtalk采用的XMPP协议有java库支持,就产生了写java的xmpp聊天软件的想法。
暑假大致翻了一遍《JavaHowtoprogram》,个人感觉还很适合初学者。
但暑假后半段有其他事就没继续看。
开学后开始着手研究xmpp的java库,叫smack,官方地址是http:
//www.igniterealtime.org/projects/smack/index.jsp。
说是研究,也只是弄懂了发送消息和包的几个函数,一些群聊和文件传输功能到现在还没看。
不过做个最简单的聊天软件是完全可以了。
九月底十月初搞定了消息发送。
而这个时候的java基础还只是前面那本《Javahowtoprogram》,讲的很简单,基本和很普通的java教程差不多。
到十月底开始写GUI代码,然后就有了界面。
:
)这个时候开始翻《Corejava2》两卷,但没打算阅读,只是需要用的时候看一下。
十一月份全力写GUI。
在javaapi文档里把最基本的界面控件看了好几遍,因为是边用边看,学习的效果个人很满意。
这个时候开始看《Thinkinginjava》第四版英文版,到现在还没看完。
1500页可不是闹着玩的。
十二月份开始整理布局,和以及代码的优化,基本不是效率上的优化,而是代码可阅读性,和代码结构。
期间看的书是《程序设计实践》和《代码大全》,都只是抽阅,没有通看。
今年一月份,开始看《设计模式》(前段时间有翻同学的《Headfirst设计模式》但没看进去多少),感觉非常不错,比如我曾经为用户列表的显示方式头疼过,总不能每个用户都作为一个对象显示对吧,有的好友狂人上千个好友,这软件就根本启动不了,而这种问题在设计模式里找的解决方法是装饰模式。
为了给程序加上mail功能,开始翻《java网络编程》。
列一下书籍:
《Javahowtoprogram》
《Corejava2》
《Thinkinginjava》
《程序设计实践》
《代码大全》
《设计模式》
《java网络编程》
感觉以这样的次序接触应该不会给你带来太大的困惑,起码我没有。
找书的方式基本就是看各个购书网站和豆瓣的评价星级,也到图书馆具体翻阅,感觉不错的就直接借了。
总结:
感觉计算机语言学习实践非常重要,在实践中遇到的问题,你用语言的某种特性解决了,那么这种特性就已经到你脑海里成为你的能力的一部分了。
那时你看java语言,就像看一把剪刀,再也不用研究它的工作原理和使用方法,拿在手里就知道怎么用了。
:
)
祝你学习java过程愉快。
有什么问题需要帮助,可以直接豆邮我。
很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。
但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!
要想学好Java,首先要知道Java的大致分类。
我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:
J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。
J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
J2SE开发桌面应用软件比起VC,VB,DELPHI这些传统开发语言来说,优势好象并不明显。
J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
所以现在应用最广泛又最好学的就是J2EE了。
J2EE又包括许多组件,如JSP,Servlet,JavaBean,EJB,JDBC,JavaMail等。
要学习起来可不是一两天的事。
那么又该如何学习J2EE呢?
当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?
然后再从JSP学起。
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。
其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
然后你就该学一学Servlet了。
Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。
JSP在执行时,也是先转换成Servlet再运行的。
虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。
接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
还好,SUN提供了Javabean可以把你的JSP中的Java代码封装起来,便于调用也便于重用。
接着就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean还是有区别的。
它是一个体系结构,你可以搭建更安全、更稳定的企业应用。
它的大量代码已由中间件(也就是我们常听到的Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。
还有,如果你要用Java编发送电子邮件的程序,你就得看看JavaMail了。
好了,对Java和J2EE有了一些基本概念之后,你就应该编一些程序了,千万不要纸上谈兵哦。
最好找一些有实例且带光盘的书来看,这样看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用劳您老大架再亲自把它 再输一遍吧,再说直接复制还不用怕出错,何乐而不为呢!
还有就是要经常上一些好的Java编程文章,有好的文章要Cut下来,有问题尽管问,只要问题不是太傻,一般高手都会回答你的。
下面介绍几个好的Java方面的编程网站:
CSDN论坛 中国最有名的技术论坛,《程序员》杂志就是他们出版的,你可以在上面提出问题,马上就有人回答你,如果你觉得好,你可以给那人加分;
Java研究组织 http:
//www.javaresearch.org/ 上面有很多原创文章,高手还是挺多的;
Java开发者 那里Java资料比较全;
看这域名就知道有多牛,注册用户快接近一万了,同时在线人数也在一千左右,人气很旺的;
IBM的开发者网络 IBM永远的蓝色巨人;
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?
当然没那么简单,这只是万里长征走完了第一步。
不信?
那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?
你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
所以你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。
不过你得祈祷在公司里碰到一个高手,而且他还愿意不厌其烦地教你,这样好象有点难哦!
∙2007-4-1721:
10
∙回复
∙
∙ez行孑
∙3位粉丝
∙
2楼
还有一个办法就是读开放源码的程序了。
我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
学Java必读的两个开源程序就是Jive和Pet Store。
Jive是国外一个非常著名的BBS程序,完全开放源码。
论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。
论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
Jive的资料在很多网站上都有,大家可以找来研究一下。
相信你读完代码后,会有脱胎换骨的感觉。
遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。
不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?
这里向大家推荐一个汉化的Jive版本?
J道。
Jive(J道版)是由中国Java界大名鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。
你可以访问banq的网站 去下载,或到同济技术论坛的服务器上 ftp:
// 去下,安装上有什么问题,可以到论坛上去提问。
Pet Store(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要错过了。
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!
记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。
不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。
接下来你得研究设计模式了。
设计模式是高级程序员真正掌握面向对象核心思想的必修课。
设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:
要让你的程序尽可能的可重用。
关于设计模式的资料,还是向大家推荐banq的网站 ,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)吧,现在很流行的Struts就是它的一种实现方式,不过Struts用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。
然后你再研究一下软件Refactoring(重整)和极限XP编程,相信你又会上一个台阶。
做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。
你再找几个志同道合的朋友成立一个工作室吧,你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的来了。
。
。
。
。
。
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!
开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
下面介绍两个好的开源项目网站:
湖北省软件公共开发平台 http:
//gro.clinux.org/
共创联盟
哇,好高兴哦,我终于成为高手了!
非也,非也。
古人云:
“识时务者为俊杰”。
你知道计算机界现在的发展形势吗?
你知道微软的.NET蓝图和SUN ONE计划之间的明争暗斗吗?
你知道计算机技术将向何处发展吗?
其实从各大计算机厂商最近的动作,都可以看出来“Web服务将是下一代互联网应用的制高点”,而微软的.NET蓝图和SUN ONE计划的斗争焦点,也就是Web服务。
Web服务就是一个崭新的分布式计算模型,它是一系列标准的综合(XML,SOAP,UDDI,WSDL和WSFL等)。
它使得不同语言编写的软件能够轻易的集成起来,使网络资源和Web站点变成一种服务而不是混乱的垃圾场。
不远的将来,我们就可以在家里点击一下鼠标,就可以完成出门旅游的全部准备工作,包括定飞机票,定旅游线路,定好房间等。
请注意,这所有的一切都是Web站点间自动完成的,再也不用象现在一样,表面上是电子商务,实际上很多环节都是人工操作。
也许你会觉得这是天方夜谈,不过就近的说,你也很有可能承接一个项目,要集成两个企业的ERP系统。
很有可能上游企业的系统是用Delphi编的,而下游企业的系统是用Java编的。
你说你是Java高手,大家都看者你怎么做呢。
所以啊,你还得学习新技术,如Web服务,而且你Delphi也要懂一点吧(Delphi6现在已经提供Web服务的控件了)。
你编的Java系统,可能要和.NET集成,所以你.NET要懂一点吧?
到最后,你可能发现你已经成为Java高手了,但很多时间却在搞别的技术。
太极张三丰里说,最厉害的招式就是没有招式,可能就是这个道理吧!
因为刚刚兴起,所以网上Web服务的资料不是很多,我还是给大家推荐几个网站吧:
中国UDDI技术联盟 http:
//www.uddi-china.org/
CSDN的柴晓路专栏 (注:
柴晓路也是互联网上一个有名的人物,他发表过很多关于Web服务的文章,还出了一书,应该称的上是中国Web服务技术的先行者)
IBM的开发者网络的XML&Web Service专栏:
IBM可是Web服务的力推者
∙2007-4-1721:
10
∙回复
∙
∙ez行孑
∙3位粉丝
∙
3楼
书籍
每个程序员都会有一些由于经常被当作专业资料参阅而磨坏的书。
下列书籍应该是 Java 语言程序员的书架上必备的。
书很贵,所以我有意将这份列表弄得很短,仅限于重要书籍。
Thinking in Java (Bruce Eckel)
Thinking in Java, 3rd edition (Bruce Eckel; Prentice Hall PTR,2002 年)
Java 编程思想:
第3版 (陈昊鹏 等译; 机械工业出版社,2005 年)
Eckel 的书对于学习如何在 Java 语言环境中使用好面向对象技术极其实用。
书中大量的代码样例解释了他所介绍的概念。
文字出自一个并不认为 Java 技术总是正确答案的人,所以相当地实用。
Eckel 具有多种语言的大量经验,还有用面向对象方式进行思考的扎实技能。
本书将这些技能放到实用的 Java 语言环境中。
他还在写一本新书,名为 Thinking in Enterprise Java。
Effective Java (Joshua Bloch)
Effective Java:
Programming Language Guide (Joshua Bloch; Addison-Wesley,2001 年)
Effective Java 中文版 (潘爱民 译; 机械工业出版社,2003 年)
本书是理解优秀 Java 程序设计原则的最佳书籍。
大多数材料从其他的 “学习 Java ” 的书中根本找不到。
例如,Bloch 书中关于覆盖 equals() 这一章是我读过的最好的参考资料之一。
他也在书中包括了很实用的建议:
用接口替代抽象类和灵活使用异常。
Bloch 是 Sun 公司 Java 平台库的架构师,所以他透彻地了解这门语言。
事实上,他编写了该语言中大量有用的库。
本书必读!
The Java Programming Language (Ken Arnold, James Gosling, David Holmes)
The Java Programming Language (Ken Arnold,James Gosling,David Holmes; Addison-Wesley,2000 年)
Java 编程语言(第 3 版) (虞万荣 等译,中国电力出版社,2003 年)
这也许是能弄到的最好的 Java 入门读物。
它并不是一个标准规范,而是一本介绍每门语言特性的可读书籍。
这本书在严谨性和教育性方面权衡得很好,能够让懂编程的人迅速被 Java 语言(和其丰富的类库)所吸引。
Concurrent Programming in Java:
Design Principles and Patterns (Doug Lea)
Concurrent Programming in Java:
Design Principles and Patterns, 2nd edition (Doug Lea; Addison-Wesley,1999 年)
Java 并发编程—设计原则与模式(第二版) (赵涌 等译,中国电力出版社,2004 年)
不是每个开发人员都需要如此细致地了解并发性,也不是每个工程师都能达到本书的水准,但却没有比本书更好的关于并发性编程的概述了。
如果您对此感兴趣,请从这里开始。
Lea 是 SUNY 的一名专业程序员,他的和并发性有关的作品和想法都包含在了 JDK 5.0 规范(引自 JSR166)中,所以您大可放心,他所说的关于有效使用 Java 语言的建议是值得一听的。
他是一个很善于沟通的人。
Expert One-On-One J2EE Design and Development (Rod Johnson)
Expert One-On-One J2EE Design and Development (Rod Johnson)
WROX:
J2EE 设计开发编程指南 (魏海萍 译,电子工业出版社,2003 年)
对于刚接触 J2EE 的人来说,这是唯一的一本如实反映这项技术的书。
本书收录了多年的成功经验和失败经验,不同于其他许多作者,Johnson 乐于将失败的经验公诸于众。
J2EE 常常都被过度使用。
Johnson 的书能帮您避免这一点。
Refactoring (Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts)
Refactoring:
Improving the Design of Existing Code (Martin Fowler,Kent Beck,John Brant,William Opdyke,Don Roberts; Addison-Wesley,1999 年)
重构:
改善既有代码的设计(中文版) (侯捷 等译,中国电力出版社 ,2003 年)
Fowler 写了几本现已出版的最流行的编程书,包括 Analysis Patterns。
他的关于重构 的书是这一主题的基本书籍。
重构代码是被程序员忽略的训练,但却是程序员最直观的想法。
重构是在不改变代码结果的前提下改进现有代码的设计。
这是保持代码整洁的最佳方式,用这种方法设计的代码总是很容易修改。
什么时候进行重构呢?
当代码“散发出味道”时。
Fowler 的书里满是 Java 语言代码的例子。
许多 Java 语言集成开发环境(IDE)(包括了 IBM 的 Eclipse)都将 Fowler 的重构包含了进去,每一个都使用他的重构名命名,所以熟悉如extract method 等重构方法还是很值得的。
∙2007-4-1721:
12
∙回复
∙
∙ez行孑
∙3位粉丝
∙
4楼
Design Patterns (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides)
Design Patterns:
Elements of Reusable Object Oriented Software (Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides; Addison-Wesley,1997 年)
设计模式:
可复用面向对象软件的基础 (李英军 等译,机械工业出版社 ,2005 年)
这是一本在专业程序员圈子里更为有名的书,基于作者共同的绰号,这本书被认为是 “四人帮(GOF)之书”。
模式是思考和解决普通编程问题时可以重用的方式。
学习模式是一门学科。
使用好模式(或知道什么时候不 使用模式)是一项技能。
忽略模式则是错误的。
书中所有的例子都以 C++ 表示,但 Java 语言是从那里诞生的,让 Java 语言程序员由此联系到如何在 Java 语言中实现这些模式相对简单一些。
熟悉模式并了解如何使用好模式使编程更加简单。
这使得和其他程序员交流也更简单,因为在针对通用问题的通用解决方案中,模式是描述解决方案中彼此协作的大量相关编程概念的快捷方式。
一些更为通用的方式,如工厂方法 则是普便存在的,甚至存在于 Java 语言本身。
关于明智使用模式的这个主题,也可以阅读 Joshua Kerievsky 的 Refactoring to Patterns,该书称可以让代码来告诉您何时实现模式。
Patterns of Enterprise Application Architecture (Martin Fowler)
Patterns of Enterprise Application Architecture (Martin Fowler; Addison-Wesley,2002 年)
企业应用架构模式 (王怀民 等译,机械工业出版社 ,2004 年)
比起小型、一次性项目来说,企业开发当然代表了更大的挑战。
那并不意味着企业开发带来的所有挑战都是新挑战。
事实上有些时候,这项开发已经 是以前完成过的了。
Fowler 做了很多个这样的项目。
他的书提到了一些通用解决方案,并提供了关于使用、折中和可选方案的指导。
Fowler 在书中包含了一些熟悉的模式,如模型视图控制器(MVC),他也提供了一些您也许不了解的模式,如处理 Web 站点上特定页面请求或行为请求的 Page Controller 模式。
正如您对待大多数模式一样,一旦您读过许多模式,您就会认为 “我已经知道那个模式了” 。
也许是这样,但有一个用来引用模式的通用表达方式还是很有帮助的。
在有多个组件(由不同人开发)的大型项目中,该类引用是一项很好的帮助。
UML Distilled (Martin Fowler)
UML Distilled:
A Brief Guide to the Standard Object Modeling Language (Martin Fowler; Addison-Wesley 2003 年)
UML精粹:
标准对象语言简明指南(第3版) (徐家福 译,清华大学出版社 ,2005 年)
对于专业的程序员来说,UML 是一门很重要的通用可视化沟通语言,但是它被过度使用和草率地滥用了。
您无需对使用 UML 沟通了解太多。
Martin 对 UML
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA selfstudy