Java学习步骤

咱们为何选择Java

大多数人选择Java可能只是由于据说Java前景好、Java比较好找工做、Java语言在TIOBE排行榜上一直位于前三等等之类的缘由,可是Java具体好在哪里,内心倒是没有什么概念的。其实我选择Java也是出于以上的缘由,可是如今确实真正地爱上了Java。java

那么如今咱们来分析下Java的好处究竟在哪里。node

简单易学jquery

首先Java是一个面向对象的编程语言,容易理解。并且略去了多重加载、指针等难以理解的概念。而且实现了自动垃圾回收,大大简化了程序设计。android

其次Java学习资料较多,从CSDN学院或其余在线学院中就能够找到不少Java学习视频,另外也有一些培训机构提供的有免费的Java视频课程。有这些学习资料,入门足矣。git

跨平台程序员

跨平台是Java最大的优点。Java运行在JVM(Java虚拟机)上,在任何平台只要安装了JVM。Java就能够运行。它架构在操做系统之上,屏蔽了底层的差别。真正实现了“Write once,run anywhere”。web

安全数据库

Java中没有指针,这样就没有办法直接访问内存了。另外Java也不容易出现内存泄露。编程

多线程设计模式

Java内置对多线程的支持,能够方便地在程序中实现多线程的功能。不像其余不支持多线程的语言,须要调用操做系统的多线程功能才能完成多线程的实现。

有丰富的类库

Java从出道至今已有10多年的历史,通过10多年的积累和沉淀,出现了不少优秀的开源社区,如Apache和Spring。这些优秀的社区提供了不少很是好的框架,借助这些框架可使咱们不用去关注Java底层的开发,而只需关注业务的实现。

使用普遍

不得不认可上面有一点是对的,Java确实有不少企业在用,并且都是用在大项目上。这就意味着Java方面的工做比较好找,另外一点是在作Java开发时若是遇到问题,能够很容易从网上找到解决办法。

职业篇

图片描述

Java初级程序员是最底层的,只须要掌握Java的基础知识就可以成为一名初级程序员。

Java程序员能够有三个进阶方向,分别是Android移动端开发(如下简称Android)、Web开发(如下简称Web)和通信开发。这时目前主流的三大方向。其中最多的是Android和Web。下面分别介绍这三个方向。如下三个方向都须要有扎实的Java基础。

Android开发,主攻移动端应用的开发。移动端包括搭载Android系统的手机、平板、电视盒子等设备。

Web开发方向,主要有HTML5开发、B/S应用开发、微信开发。这里的HTML5开发是指移动端的HTML5开发。

通信方向,主要是通信服务器的开发,如游戏服务器、腾讯的QQ服务器等。

因为我从事Web开发方向,仅仅对其余方向略有了解,因此这里主要介绍Web方向。要进行Web开发须要达到中级程序员的水平,可以熟练使用SSH等框架。

而Java高级程序员则须要了解更多的框架和一些经常使用的应用服务器,如工做流、搜索引擎、缓存、JTA、JBoss、WebLogic等。

达到高级程序员水平后,不少人在这个阶段选择了不一样的方向。有的人厌倦了编码和设计而转向了需求分析和产品经理,而有的人继续执着于技术这条路,成为了系统架构师。

工具篇

子曰“工欲善其事,必先利其器”,有一把顺手的“兵器”,能让咱们的学习和工做达到事半功倍的效果,那么下面咱们来看看有哪些好用的工具能够助咱们开发。
文本编辑器(适合初学者)

这里咱们只说Windows平台下的文本编辑器。

有人可能说Windows下的记事本不就能够用 吗,咱们为何还要用其余的文本编辑器呢?缘由吗,首先记事本确实很差用,修改代码极为不便,并且有些换行标识不识别;其次效率低,使用记事本打开一个几 K的文件可能没有什么感觉,可是打开一个超过10M的文件的时候就能明显的感受到卡了,好比咱们的日志文件;最后容易出现问题,用记事本编辑过UTF-8 格式的文件后,会给文件加上BOM头,这有时致使程序出现莫名的错误,因此做为程序员,最好不要使用记事本。

比较好用的文本编辑器有Editplus、UltraEdit、Notepad。其中Notepad是开源免费的,其余两个都是收费的。

IDE(适合入门后和项目研发)

IDE是集成开发环境的简称,使用IDE的目的是为了能让咱们更快地构建项目、更方便地写代码,同时屏蔽了代码编译的动做。IDE都有代码高亮、代码提示以及错误提示等功能,同时咱们能够借助IDE的插件实现代码管理、代码审查和其余一些好用的功能。

经常使用的IDE有Eclipse、NetBeans和IntelliJ IDEA。前二者都是免费的,后者提供有社区版本,也是免费的,可是企业版是收费的。其中Eclipse是用的最多的IDE。

在 Eclipse上扩展的有两款优秀的IDE,Spring Tool Suite(STS)和大名鼎鼎的MyEclipse。前者免费后者收费,后者集成了前者的全部功能。这里我建议你们使用STS,由于STS添加了不少对 Spring的相关支持,若是项目中用到了Spring,使用起来会很是方便。也能够在Eclipse上安装STS插件,可以达到一样的效 果,Spring官网上有插件的安装方法,这里再也不赘述。

技术图谱

图片描述

Java职业图谱

以 上图谱详细描绘了每一个级别都须要掌握哪些知识,此图仅供参考。在实际工做期间,通常是根据公司须要或项目须要来学习不一样的技术。但仍是建议多去学习些知 识,我以为有句话说的很对,“不少东西不是你以为有用才去学,而是学了才知道它有用”,我一直信奉这句话,由于我就是这句话真正的受益者。

入门篇

俗话说“师傅领进门,修行靠我的”,因此说只要入门了,后面学习起来是很快的,并且比较容易。那么学习Java应该如何入门呢?

首先要理解面向对象的概念,这个很重要。但也不是说必须彻底理解概念才能去学Java。而是先接触Java的基础知识,如类、属性、方法等。而后在学习的过程当中理解面向对象的概念。

在 大概理解了面向对象的概念后,这时你应该学会了一些Java的语法和一些API的使用。这时须要继续深刻地去学习这些。同时要养成本身良好的编码习 惯,Java有本身对包名、类名、方法名等的命名规范。这个时候要尝试按照规范写代码,同时甩掉之前写代码时养成的不良习惯。

在熟悉了经常使用的API及语法后要去学习I/O和流(Stream)以及多线程编程和网络编程。I/O和输入输出流,要熟练掌握。而在这个阶段暂时不须要深刻了解多线程编程和网络编程。

在系列基础完成以后就须要去接触下数据库和JDBC,对于数据库不须要深刻了解,可以建立表、查询表数据便可。而后尝试使用JDBC链接数据库,并对数据库中的数据作CURD操做。

在学习Java初期,我建议你们使用文本编辑器来写代码,一是有助于记忆Java中的一些关键字和经常使用类及方法,二是能够熟悉Java的经常使用命令。在使用了一段时间的文本编辑器后就可使用IDE来开发了,使用IDE将使你写代码写得更快,也不容易出错。

基础是很重要的,虽然简单,可是也马虎不得。这里推荐几本书《Thinking in Java》、《Java 8编程参考官方教程》等图书(图书资源推荐)。

中级篇

入门后就能够选择主攻方向了,几个方向在职业篇中已有介绍。通信开发方向其实在这个时候就能够转了,可是仍是建议学习下Java中级的内容,这些内容也有助于你从此在通信开发的路上走得更容易。由于我是主攻Web方向,因此这里咱们只讨论Web方向。

在这个阶段你接触的知识面将更广,在学习Web开发以前首先须要学习HTML和CSS,而后再学习JS以及jQuery。在有必定基础以后就能够开始学习JSP和Servlet了,重点学习下JSP的内置对象及EL表达式,并试着去作一些页面。而后学习下Ajax,要可以熟练的使用JSON和XML来作数据交互。

以上内容学习完以后Java的基础部分就算是基本掌握了,下面就该学习一些框架了。建议先从Spring学起,Spring将成为你从此开发项目的核心框架。Spring也是如今项目中最经常使用的框架。能够深刻的学习,试着去理解Spring的一些实现原理,这将有助于你更好的使用Spring。

学完Spring以后能够学习下ORM框架,好比Hibernate和MyBatis,这些相对于Spring来讲要简单的多。主要学习与Spring的整合和Spring中的事务管理。必定要深刻的了解数据库事务,这将对你从此的项目开发很是有帮助。

最后咱们来讲控制层的学习,这里我建议你们重点学习SpringMVC。由于SpringMVC是目前使用最为普遍的控制层,并且简单易学,已经有了要替代Struts的趋势了。可是Struts仍是要学习下,毕竟还有一些公司在用,这将为你找工做加大一点筹码。

在学习这些内容的过程当中必定要学习下代码管理工具SVN和Git,目前SVN在企业中用的较多,而开源社区通常都是用的Git

有了JSP基础和掌握了框架的使用后就能够出去找工做了,在工做过程当中这些知识你将掌握的更加牢固。也可能在工做过程当中会遇到你没有学过的技术,不要怕,有了以前的基础你将很快掌握这些新的技术,加入工做的第一年将是你进步最快的一年。
而加入工做以后你可能也不会有太多的时间来学习,这时候要约束好本身。不要忘了学习,学习是最好的进步方式。

高级篇

当咱们参加了工做以后,开始接触更多的技术。若是有机会就多学习些技术,不求精通,但求会用,而且知道这项技术可以解决什么问题。开始在项目中参与设计文档的编写。可以为本身的项目选择合适的框架,而且能用本身学到的技术去解决项目中遇到的难题。

这时候根据项目和公司的差别用的技术也不尽相同,可是日志框架、项目构建、单元测试、缓存、集群、负责均衡、SOAP等是必定要掌握的。这些是在大型项目中比较经常使用的技术。而后能够根据本身的兴趣及业余时间去学习本身感兴趣的技术。

架构师之路

成为一名架构师一直是个人目标。一名优秀的架构师首先必定是一名卓越的程序员,架构设计不该仅仅是理论,它应当是在实践中产生的经验和结果。架构师也要有灵敏的嗅觉,可以看清将来技术的发展方向,应当避免在项目中使用已过期的技术或没有社区支持的技术。

做为一名架构师要掌握如下技能:

  • SOA:在微服务横行的年代,这项本领是必不可少的。
  • 设计模式:这将有助于你设计出更加优雅的程序。

程序员的区别

一样是程序员,初级、中级与高级的区别在哪里呢?

初级程序员就是传说中的码农,依靠复制粘 贴、比葫芦画瓢的方式完成代码的编写,一般一个方法几百行代码,巴不得一个类将全部的功能都实现,不考虑程序设计原则,也不考虑程序的执行效率,不考虑 SQL注入的问题,更不去想如何能让个人程序质量更好,他们的目的仅仅是个人程序可以运行。不少程序员都会经历这个阶段,而这个阶段是最容易养成毛病的阶 段。可是有的程序员很快就摆脱了这个阶段,也有不少程序员停留在这个阶段很长时间,哪怕是掌握了更多的技术,可是这个阶段造成的思惟模式却没有改变,养成 的毛病也没有改掉。

咱们就能听到这样的声音“这是哪一个傻X写的代码,写的太乱了,尚未注释”、“我去!这代码彻底不敢动啊,逻辑太混乱 了,牵一发而动全身啊”。这些基本上都是初级程序员写的代码。中级程序员更喜欢优雅的代码,而本身写出优雅的代码,封装、继承、抽象运用自如,可以独立完 成系统中模块的开发。

高级程序员可以完成系统的设计,可以使用已掌握的技能解决问题。而且可以考虑到系统的扩展性、安全性、稳定性等问题。

至于架构师吗,首先要具有中大型项目的整体规划和设计经验,一般架构师考虑的要比高级程序员更多,有时须要考虑到项目的成本、工期、部署环境甚至一些商业因素等,不只仅是技术上的问题。其次架构师一样须要有很好的沟通能力,一是与客户的沟通,二是与团队内部纯技术的沟通。

很 多程序员都止步于中级级别,靠一手SSH技术行天下,而身处初级时养成的毛病仍然存在,有的甚至已经工做5年却一直是这样,可塑性极差,因为工做时间长也 学会了一手掩盖问题的好本事,这类人绝不客气的说就是项目的祸害。也有一些人达到中级或高级级别后厌倦了编码,从而转作需求分析、产品经理或项目经理,在 国内作技术确实也很难拿到高工资,这也是不少技术人员转型的缘由。而我依然坚持个人技术之路,既然选择了就要坚决的走下去。

转载:http://geek.csdn.net/news/detail/86516

相关文章
相关标签/搜索