第1讲 Java学习路线怎么学习Java
第1讲 Java学习路线&怎么学习Java
1 概述
学过一段时间的同学一定会觉得Java学习最头疼的不是语法结构的繁杂,而是Java本身体系结构的庞大。以至于自己不知道接下去该学什么,或者什么样的知识才会对后续的学习有帮助。本节内容将让大家对Java学习的路线有个宏观的把握。在与市场接轨的前提下,我们会推荐给各位同学相关学习的方向和技术,以及学习到何种程度才能适应基本的工作。
好多同学可能会有如下的疑问:
l 我已经学完JDBC了,那样参加工作够用了吗?
l Java SE学到什么样的程度算是OK了呢?
l 东西好多啊,我改怎么学啊?我想做项目,不想学原理!
l 我把SSH都学完了,这样出去能找到工作吗?
l 我把SSH都学完了,那接下去我该学什么呢?
l Android我到底要不要学呢?我看好多人都在学啊!
……
下面的内容将会带你理清这些甚至更多疑问。
1.1 Java学习总体方向
对于刚学习Java的同学,应该了解下面这张图1-1,了解Java学习的大致结构。当然你能在OracleJava的主页上看到还有如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/NIOUDP/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) 多关心技术发展。
1.6 关于我们
A2 Studio是由来自行业资深的软件工程师和学院学术代表组成的技术团队。旨在为学习计算机的同学提供更好的帮助。
我们的微博:http://weibo.com/a2studio
我们的CSDN博客:http://blog.csdn.net/a2studio
联系邮箱:ielts0909@gmail.com
第1讲 Java学习路线怎么学习Java相关推荐
- 课工场java新手基础教程_Java新手学习路线,学Java不走弯路
Java新手学习路线,学Java不走弯路 很多人都会有一个疑问,就是学习Java能看懂,但是不会写,所以学习Java一定要掌握一个有效率的学习方法,一个适合自己的学习方法,作为一个新人,千万不要自己瞎 ...
- Java:计算机编程语言Java的简介、安装(编程环境/工具)、学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略
Java:计算机编程语言Java的简介.安装(编程环境/工具).学习路线(如何学习Java以及几十项代码编程案例分析)之详细攻略 目录 Java的简介 1.Java的工作原理--基于Eclipse等编 ...
- Unity3D 之 学习路线与学习经验分享
转自:https://blog.csdn.net/qq_22521529/article/details/83108837 Unity3D学习路线与学习经验分享 该博文出自作者15游02 丁祺,是一篇 ...
- python学习路线-2020年 Python学习路线及学习目标规划 拿走不谢!
找不到完整的学习路线?小编分享2020年Python学习路线及学习目标规划拿走不谢,Python作为今年来特别受欢迎的编程语言,是AI时代头牌语言AI领域的敲门砖,Python已经入驻小学生教材,将来 ...
- 根据SecWIki给出的Web安全工程师的学习路线的学习经历
一直对Web安全问题有很大的兴趣,之前一直不知道该从何学起,就学习了一些自认为基础的知识,比如HTML,JS和PHP,只是大概的看了一遍,并没有亲自动手操作多少,所以还处在萌新的水平. SecWiki ...
- 2020年最新Python学习路线及学习目标规划 拿走不谢!
找不到完整的学习路线?本文分享2020年Python学习路线及学习目标规划拿走不谢,Python作为今年来特别受欢迎的编程语言,是AI时代头牌语言AI领域的敲门砖,Python已经入驻小学生教材,将来 ...
- java学习路线_java学习路线_我的入坑路
java详细路线: 网上有很多学习路线,当初,我就是受这个学习路线的影响入坑的. 既然看到标题为我的java学习路,那就给大家看下我是怎么走过来的. 阶段一_JavaSE 入门推荐书:java开发实战 ...
- 零基础学习前端:学习路线、学习计划、实战项目和面试题简历分享。
前端简单概括就是所有你可见的效果呈现都可囊括到前端范畴,前端是一个没有任何竞争的方向,它的不可替代性是其他方向所没有的,比如后端,你可以用 Java.PHP.C#.Go.Ruby 等语言开发.前端相较 ...
- web后端开发学习路线_学习后端Web开发的最佳方法
web后端开发学习路线 My previous article described how you can get into frontend development. It also discuss ...
最新文章
- python 打印皮卡丘_Python到底是什么?学姐靠它拿了5个offer
- 详解Java8中流(Stream)的使用
- PHP服务器端语言是什么意思,PHP作为服务器端语言,有哪些优点?
- mac安装openjdk
- sql while循环_SQL WHILE循环的简单示例
- OD使用教程10 - 调试篇10|解密系列
- adc 测试软件,ADC芯片参数测试技术解析
- 4.2 Branching Strategies
- ds18b20驱动程序Linux,基于linux下的ds18b20驱动程序的编写
- 游戏开发中常用的设计模式 【game design patterns】
- 从我做起 - 抵制1024程序员节-不要再自黑了
- 台式电脑打不开计算机c盘,电脑打不开显示C盘损坏怎么办
- restapi是什么意思_网上整理的对于Rest和Restful api的理解
- 搭建自己的小程序服务器
- Linux 禁用笔记本触摸板
- 关于word文档受保护的问题,不能编辑,转成能编辑的文档
- 不想做却不得不做某份工作,怎么破?
- 概率与数理统计的发展前景
- UDP实现简单通讯(夕佳佳)
- 常用服务默认用户名字典