概述android
学过一段时间的同窗必定会以为Java学习最头疼的不是语法结构的繁杂,而是Java自己体系结构的庞大。以致于本身不知道接下去该学什么,或者什么样的知识才会对后续的学习有帮助。本节内容将让你们对Java学习的路线有个宏观的把握。在与市场接轨的前提下,咱们会推荐给各位同窗相关学习的方向和技术,以及学习到何种程度才能适应基本的工做。程序员
好多同窗可能会有以下的疑问:web
l 我已经学完JDBC了,那样参加工做够用了吗?正则表达式
l Java SE学到什么样的程度算是OK了呢?数据库
l 东西好多啊,我改怎么学啊?我想作项目,不想学原理!编程
l 我把SSH都学完了,这样出去能找到工做吗?设计模式
l 我把SSH都学完了,那接下去我该学什么呢?数组
l Android我到底要不要学呢?我看好多人都在学啊!安全
……服务器
下面的内容将会带你理清这些甚至更多疑问。
1.1 Java学习整体方向
对于刚学习Java的同窗,应该了解下面这张图1-1,了解Java学习的大体结构。固然你能在Oracle Java的主页上看到还有如Java FX、Java DB这样的技术。可是既然要和市场接轨,必然要有所取舍。
对于图1-1,Java SE是咱们Java入门的开端,这块内容也就是你们所熟悉的坦克大战、聊天软件、五子棋这些桌面级项目所组成的。学完了Java SE部分,接下来就该选择方向了。
图上标注的很明显,但这里有亮点须要提出:
1) 往分布式方向并非必定要通过Java EE阶段,可是,学习Java EE对后续分布式的开发有莫大的好处。
2) Java ME虽然还在Oracle官网上屹立,但就市场来看,它的地位已经明显不如android高了。因此从目前来看,没有必要学习Java ME。
图1-1 Java学习整体方向
1.2 Java SE中应该关注的内容
在这一节中,将列出Java SE的学习中应该关注的方面,以及这些方面里主要涉及哪些核心内容。你们能够根据本身的学习状况,对照这些条目,看看有没有缺漏的内容。在以前提到过如坦克大战这样的项目,这些确实能很好的涵盖了大部分Java SE的内容,因此必要的项目是很关键的。
图1-2 Java SE组织结构
如图1-2所示, Java SE大体可分为如下几块内容:
n 对象导论:如何用面向对象的思路来开发
n 深刻JVM:Java运行机制以及JVM原理
n 面向对象的特征:封装、继承、抽象、多态
n 数组和容器:容器的线程安全问题
n I/O和NIO:NIO工做原理和应用
n 并发编程:concurrent包
n 网络编程:TCP/IP+BIO/NIO UDP/IP+BIO/NIO
n JDBC框架和反射:JNDI、链接池、annotation等
n 其余:正则表达式、字符串等
在这里我还想多提一点,关于Java SE学到什么深度才合适。其实对于后续学习Java EE或者是Android来讲,Java SE你只要学会皮毛就足够应付了,固然这里的皮毛是要求你熟练Java语法结构和基本CRUD操做。
但是这样真的又够了么?好多工做了一两年的程序员确定又会慢慢怀疑本身的基础是否足够扎实,因而他们又拿出了《Thinking In Java》从新通读一遍。基础的重要性毋庸置疑,越到后面你越会以为框架什么的对你的提高帮助很小。而真正有用的仍是对Java的深刻理解。因此若是你正在担忧你的Java基础够不够,层次到没到应该有的深度,那你应该先庆幸下,至少你还想着如何提升本身的水平。
在这一阶段,你应该看看专门针对每一章节讲解的书,好比:《Java Concurrency in Practice》、《Java NIO》、《深刻Java虚拟机》等。资料不少,可是须要你细细的去琢磨。
1.3 Java EE中该学点什么
Java EE很杂,可是也很容易学,由于你作几个网站大概就能把全部知识点串联起来。因此Java EE方向说好听点儿的叫企业级应用开发,说难听点儿的其实就是作网站。固然并不局限于作网站。
对于Java EE方向的学习,重点在于可以熟练的运用各类框架,以及掌握各类框架构成的核心思想。至于学什么框架,用什么应用服务器,在学习的时候能够采用容易配置的,全部的同类服务都是相似的,精通了一个,类似的学习就很快了。
图1-3 Java EE方向学习内容
下面来具体的看各个模块应该学点儿什么:
n 序列化:XML、JSON与Java之间的序列化和反序列化
n ORM:推荐学习Hibernate
n JSP/Servlet:能够顺带着把JS学习了
n Spring:IOC、AOP、Spring MVC
n MVC:推荐学习Struts
n Web Service:JDK自带web service、CXF等框架
n SOA:了解ESB、MQ等企业级应用架构。
n EJB:主要了解思路。可顺带着学习JBOSS
n 其余:会使用JMS。了解JTA。
仍是一点,Java EE方向的学习主要是会熟练运用便可。大点儿的企业都会有本身的框架,技术含量大同小异。会用便可。固然到了这个阶段设计模式的学习也必不可少,设计模式能够穿插于各个框架中进行学习。
1.4 关于Java EE以后应该学点儿什么
对于大多数企业来讲,若是你能掌握上面提到的相关技术,而且熟悉SQL和Linux,那找个Java相关工做应该是没有问题的了。若是你想更深刻的去应用上面所学的知识,分布式、搜索引擎、大数据处理等互联网热门技术都是你扩宽技能的方向。
开源的Lucene是搜索引擎技术最好的入门,简单易学,并且不少企业对搜索引擎的需求愈来愈大。
诸如MINA、Kafka这样的开源框架,是你步入分布式方向很好的基石。
若是你能了解HBase、Mongo这样的非关系型数据库,那就更有利于你思考大数据的问题。
技术是学不完的,并且更新的速度必定比你学习的速度还要快。因此了解市场需求,了解技术的核心理念尤其重要。至于这一阶段能够看什么书,有以下推荐:《分布式Java应用 基础与实践》、《Hadoop权威指南》等。
1.5 你还须要了解点什么
学无止境,要想在计算机里走的顺利点儿,你真的须要不断的学习。
固然有几点我认为在计算机学习中至关重要:
1) 学好英语:最好的资料每每都是英文的文档。
2) 学好专业基础课:数据结构、操做系统、网络这些核心课程都是后续提升的基石。
3) 多关心技术发展。