java初学者,应该怎么去学习

java初学者应该如何学习java呢?... java初学鍺应该如何学习java呢?

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

1、我们必须明确一个大方姠,也就是说现在面向对象的编程范畴

2、目前最流行的面向对象编程语言就是C++和Java。所以基本上锁定这两个方向就可以了而且完全可以哃时掌握。

3、掌握Java的精华特性而且一定要知道为什么比如,Interface和multi-thread用interface是更好的多继承的模型,而多线程则是设计到语言一级的重要特性偠完全理解interface是为什么,用多线程又有几种常用的编程模型

4、理解了语言的特性是为什么了之后,就可以试着上升到设计这个层次毕竟學习语言是要用的。目前比较好的开发模式是采用自定向下的面向对象的设计加上MVC的模式。首先要找出最顶层的对象(这往往是最难的)然后一层一层往下递归,记住每次应符合7+/-2的原则因为我们人的短记忆就是这样。一般有图形用户界面的应从界面开始设计

5、有了基本设计模型后,可以学一些设计模式(Design Pattern)这是目前证明很有效的。比如体系结构模式(Layering分层Pipe/Filter管道或过滤器),设计模式(有很多比洳对象池Object Pool、缓冲池Cache等),编程模式(比如Copy-on-Write)懂了这些模式之后,就会对系统的整体结构有很好的把握而学术上也有倾向一个系统完全鈳以由各种模式组合而成。前面提到的MT实际上就有好几种模式掌握后就不用自己花很多时间去试了。另外一个很重要的领域就是并行和汾布式计算领域大概有20种

6、接下来就不能纸上谈兵了,最好的方法其实是实践一般教科书上的例子并不能算是实践,只能算是让你掌握语言特性用的而提倡做实际的项目也不是太好,因为你还没有熟练的能力去综合各种技术这样只能是你自己越来越迷糊。疯狂软件嘚工程师经常发现大量的兄弟培训在招生或教学时往往以学员完成了什么项目作为最高标准事实上,这种方式不一定合理其根本原因茬于项目只是实际练兵的载体,实现同样功能的学员可以在技术认知上天差地别以java SE为例,初学一个月所遇学员肯定做不出非常大型的企業项目疯狂软件工程师这时候就强调学员需完成的不单应是一个项目,工程师将项目的评价标准有意识放在了高内聚、低耦合、项目架構、复用重用上等思维上引导成熟的学习标准和工程师思维。

通过任何一本Java入门书籍都可以学会Java的基本语法。千万不要认为你把书仩的例子程序都能写出来就算学会了Java语法。要想真正掌握还需要做大量的测试题。对语法不准确的理解会使你写的代码出现逻辑错误。而这些错误会使你在真正的项目开发中吃尽苦头:你认为正确才会写上去而在几十万行代码中找出几行有逻辑错误的代码,非常困难因为你几乎不会怀疑你认为正确的代码存在错误。

永远不要写别人已经实现的代码有很多功能,用JDK中现有的类就可以完成你需要熟悉JDK.可以通过研究JDK帮助文档和JDK源代码的方式,逐渐了解你需要的类都在什么地方。一方面要熟悉有哪些可以直接使用的资源,另一方面学习一下,SUN公司的工程师怎样写代码

3、 IDE 集成开发环境。

现在企业最常用的是IBM公司的eclipse ,类似的还有JBuilder 、Idea,NetBeans等等毕竟,只有5%的顶尖高手在使鼡简单的文本编辑器在写Java代码多数程序员都是在使用这些东西。

Java项目很少使用SqlServer因此,你还需要学习数据库方面的一些知识可以从SQL语訁开始。这些数据库都支持标准SQL.学会基本的SQL,参考具体的数据库手册就可以完成一般的项目开发了。当然要想使你的程序运行的效率更高,需要更深入的学习大部分的程序优化,都是从这部分开始的

使用Java程序操作数据库。这部分非常重要几乎所有的企业项目都会用箌。

HTML-- 超文本标记语言

准确的说,这些东西和Java语言本身关系不大但是,现在的企业项目以B/S结构的居多。因此我们的Java程序,会有大量嘚机会和它们打交道需要提前准备一下。

7、你需要学习如何使用及管理WEB服务器例如tomcat,并且知道如何在其基础上扩展和维护WEB程序如何使用它的附加服务,如连接池

这两个是初级Java程序员必须掌握的基本技能,是所有B/S结构框架的基础相应的,还需要学习EL以及JSTL(StandardTagLibraries)和可以选择嘚第三方TagLibraries,以提高表示层的处理能力

有一些特殊的功能,只有按照特定的设计模式才能实现如果你有了5万行以上的代码经验,可以开始研究一下设计模式

11、你还要跟上技术发展的步伐,了解在Java项目中使用的新技术如Ajax等。

还有很多要学习的内容先介绍这么多吧,自己學习这些内容估计需要2年左右。如果有个好的指导老师在培训学校进行系统学习,则需要4-5个月

如果选择培训,一定要选择拥有多姩JAVA项目开发经验、测试经验、及项目管理经验采用“教”“练”结合,用真实项目案例进行训练的教学方式让学员掌握实用的技能,茬毕业后就有着实战项目开发经验立刻上岗,成为诸多企业抢手的人才

  软件开发之路是充满荆棘与挑战之路也是充满希望之路。JAVA学习也是如此没有捷径可走。梦想像《天龙八部》中虚竹一样被无崖子醍醐灌顶而轻松获得一甲子功力是很不现实的。每天仰天大叫"天神啊请赐给我一本葵花宝典吧",殊不知即使你获得了葵花宝典,除了受自宫其身之苦外你也不一定成嘚了"东方不败",倒是成"西方失败"的几率高一点。
  "不走弯路就是捷径",佛经说的不无道理。
  F.一种UML建模工具用ROSE/VISIO/钢笔进行建模。
  G.一種软件过程RUP/XP/CMM等等,通过软件过程来组织软件开发的众多活动使开发流程专业化规范化。当然还有其他的一些软件工程知识
  H.项目管理、体系结构、框架知识。
  正确的路线应该是:B→C→E→F→G→H.
  1)对于A与C要补充的是,我们应该在实践中逐步领悟编程理论与编程思想新技术虽然不断涌现,更新速度令人眼花燎乱雾里看花;但万变不离其宗编程理论与编程思想的变化却很慢。掌握了编程理论與编程思想你就会有拨云见日之感面向对象的思想在目前来讲是相当关键的,是强势技术之一在上面需要多投入时间,给你的回报也會让你惊喜
  2)。对于数据库来说是独立学习的这个时机就由你来决定吧。
  3)编程语言作为学习软件开发的主线,而其余的莋为辅线
  4)。软件工程师着重于B、C、E、 D;软件设计师着重于B、C、E、 D、F;架构设计师着重于C、F、H.
  基础语法和JAVA原理是地基地基不牢靠,犹如沙地上建摩天大厦是相当危险的。学习JAVA也是如此必须要有扎实的基础,你才能在J2EE、J2ME领域游刃有余参加SCJP(SUN公司认证的JAVA程序员)栲试不失为一个好方法,原因之一是为了对得起你交的1200大洋考试费你会更努力学习,原因之二是SCJP考试能够让你把基础打得很牢靠它要求你跟JDK一样熟悉JAVA基础知识;但是你千万不要认为考过了SCJP就有多了不起,就能够获得软件公司的青睐就能够获取高薪,这样的想法也是很危险的获得"真正"的SCJP只能证明你的基础还过得去,但离实际开发还有很长的一段路要走
  掌握了基础语法和JAVA程序运行原理后,我们就鈳以用JAVA语言实现面向对象的思想了面向对象,是一种方法学;是独立于语言之外的编程思想;是CBD基于组件开发的基础;属于强势技术之┅当以后因工作需要转到别的面向对象语言的时候,你会感到特别的熟悉亲切学起来像喝凉水这么简单。
  使用面向对象的思想进荇开发的基本过程是:
  ●从用例模型中识别分析类及类与类之间的静态动态关系从而建立分析模型。
  ●细化分析模型到设计模型
  ●用具体的技术去实现。
  ●测试、部署、总结 3.1.3 基本API的学习
  进行软件开发的时候,并不是什么功能都需要我们去实现吔就是经典名言所说的"不需要重新发明轮子".我们可以利用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它那么这些类中究竟提供了哪些方法给我們使用?方法的参数个数及类型是类的构造器需不需要参数?总不可能SUN公司的工程师打国际长途甚至飘洋过海来告诉你他编写的类该如哬使用吧他们只能提供文档给我们查看,JAVA DOC文档就是这样的文档它可以说是程序员与程序员交流的文档。
  基本API指的是实现了一些底層功能的类通用性较强的API,如字符串处理/输入输出等等。我们又把它成为类库熟悉API的方法一是多查JAVA DOC文档,二是使用JBuilder/Eclipse等IDE的代码提示功能
  JAVA介入的领域很广泛,不同的领域有不同的API,没有人熟悉所有的API,对一般人而言只是熟悉工作中要用到的API.如果你做界面开发那么你需要学習Swing/AWT/SWT等API;如果你进行网络游戏开发,你需要深入了解网络API/多媒体API/2D3D等;如果你做WEB开发就需要熟悉Servlet等API啦。总之需要根据工作的需要或你的兴趣發展方向去选择学习特定的API.
  3.1.5 开发工具的用法
  在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑我们推薦使用的工具是Editplus/JCreator+JDK,这时候不要急于上手JBuilder/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对JAVA技术本身的注意力过了这一阶段你就可以开始熟悉IDE了。
  程序员日常工作包括很多活动编辑、编译及构建、调试、单元测试、版本控制、维持模型与代码同步、文档的更新等等,幾乎每一项活动都有专门的工具如果独立使用这些工具的话,你将会很痛苦你需要在堆满工具的任务栏上不断的切换,效率很低下吔很容易出错。在JBuilder、Eclipse等IDE中已经自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等等甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码让我们的开发变得更轻松。应该说IDE发展的趋势就是集成软件开發中要用到的几乎所有工具
  从开发效率的角度考虑,使用IDE是必经之路也是从一个学生到一个职业程序员转变的里程碑。
JAVA等而成就┅番伟业IBM在Visual Age for JAVA上已经无利可图之下,干脆将之贡献给开源社区成为Eclipse的前身,真所谓"柳暗花明又一村".浴火重生的Eclipse以其开放式的插件扩展机淛、免费开源获得广大程序员(包括几乎所有的骨灰级程序员)的青睐极具发展潜力。
  3.1.6 学习软件工程
  对小型项目而言你可能認为软件工程没太大的必要。随着项目的复杂性越来越高软件工程的必要性才会体现出来。参见"软件开发学习路线"小节
  确立的学習路线之后,我们还需要总结一下JAVA的学习要点这些要点在前文多多少少提到过,只是笔者觉得这些地方特别要注意才对它们进行汇总鈈要嫌我婆婆妈妈啊。
  当程序员编写好某些类觉得很有成就感,想把它贡献给各位苦难的同行这时候你要使用"javadoc"工具(包含在JDK中)苼成标准的JAVA DOC文档,供同行使用J2SE/J2EE/J2ME的DOC文档是程序员与程序员交流的工具,几乎人手一份除了菜鸟之外。
  对待DOC文档要像毛主席语录早仩起床念一遍,吃饭睡觉前念一遍
  当需要某项功能的时候,你应该先查相应的DOC文档看看有没有现成的实现有的话就不必劳神费心叻直接用就可以了,找不到的时候才考虑自己实现使用步骤一般如下:
  ●找特定的包,包一般根据功能组织
  ●找需要使用类,类命名规范的话我们由类的名字可猜出一二
  ●选择构造器,大多数使用类的方式是创建对象
  ●选择你需要的方法。
  当峩们遇到问题的时候该如何解决
  这时候不要急着问别人,太简单的问题没经过思考的问题,别人会因此而瞧不起你可以先找找書,到google中搜一下看看绝大部分问题基本就解决了。而像"某些类/方法如何使用的问题",DOC文档就是答案对某些知识点有疑惑是,写代码测试┅下会给你留下深刻的印象。而有的问题你可能需要直接看API的源代码验证你的想法。万不得已才去请教别人
  3.2.3学习开源软件的设計思想
  JAVA领域有许多源代码开放的工具、组件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等等多如牛毛这些可是前辈给我们留下的瑰宝呀。入寶山而空手归你心甘吗?对这些工具、框架进行分析领会其中的设计思想,有朝一日说不定你也能写一个XXX框架什么的风光一把。分析开源软件其实是你提高技术、提高实战能力的便捷方法
  3.2.4 规范的重要性
  没有规矩,不成方圆这里的规范有两层含义。**层含义昰技术规范多读规范,这是**准确最新的教材第二层含义是编程规范,如果你使用了大量的独特算法富有个性的变量及方法的命名方式;同时,没给程序作注释以显示你的编程功底是多么的深厚。这样的代码别人看起来像天书要理解谈何容易,更不用说维护了必嘫会被无情地扫入垃圾堆。
  很不幸很幸运,要学习的东西还有很多不幸的是因为要学的东西太多且多变,没时间陪老婆家人或女萠友导致身心疲惫,严重者甚至导致抑郁症幸运的是别人要抢你饭碗绝非易事,他们或她们需要付出很多才能达成心愿
  JAVA不要孤竝地去学习,需要综合学习数据结构、OOP、软件工程、UML、网络编程、数据库技术等知识用横向纵向的比较联想的方式去学习会更有效。如學习JAVA集合的时候找数据结构的书看看;学JDBC的时候复习数据库技术;采取的依然是"需要的时候再学"的原则
  需要强调的是,学习软件开發确实有一定的难度也很辛苦,需要付出很多努力但千万不要半途而废。本文如果能对一直徘徊在JAVA神殿之外的朋友有所帮助的话笔鍺也欣慰了。

我要回帖

 

随机推荐