前言
上一篇我们简单的说了一下小白如果想以前端为主进行编程学习的话,那么如何规划自己的学习路径,本文我们再来说说以Java为核心进行编程学习的学习路径。Java做为目前使用最多的一种语言来说,功能很强大,面试以来由于可以跨平台所以支持的业务范围也很广,所以一直都很受欢迎,可以说是一支独秀很多年了。Java可以写桌面应用、web前端、分布式系统、嵌入式系统等各种系统,同时还是面向对象编程的典型代表。所以如何学好java还是值得说一说的。
Java
我们先来简单的认识一下Java,Java是1991年SUN公司为了抢占消费类市场而成立的一个项目小组,1992年开发成功了Oak语言起初发展的不怎么好,互联网的到来很多人希望将死板的静态网页搞得更牛些,到1995年的时候SUN又重新拾起了Oak(被注册了)并且更名为Java,正式发布。此后一路在一堆牛掰公司的支持下,一路高歌猛进,成为使用最广泛的编程语言之一。2009年Oracle收购了SUN,目前已经发布了的最高版本是Java 8。
Java编程的学习范围
我们还是先把学习范围说一下,来张脑图先,先有个大致的概念。
介于Java的强大这张图所列的内容其实不算太多,我们列举的需要掌握的技能和这个图会稍微有些差异,大家先可以大致的扫一眼:
1.java基础
2.基本类库
- java.lang
- java.awt
- javax.swing
- java.io
- java.util
- java.net
- java.applet
- java.sql
- java.nio
- java.rmi
3.基础编程知识储备
4.开发工具
- Notepad++/EditPlus
- Eclipse
- netbeans
- IntelliJIDEA
5.版本管理
6.单元测试
- JSUnit
- Mockito
- TestNG
7.服务器端
- Apache/Nginx/Weblogic/WebSphere
- SQL/MySQL/Oracle
- JavaEE
8.第三方类库
- Apache Commons
- log4j/slf4j/logback
9.JVM
- 基础
- Scala
- Groovy
- Clojure
10.框架
- Spring/SpringMVC
- Struts
- Hibernate
- MyBatis
11.项目构建工具
- Maven
- Ant
12.大数据
- Hadoop/MapReduce/HDFS/HBase/Hive
- Spark
13.云端
- OpenStack
- Docker
14.移动开发
- Android
- JavaME
15.WEB开发
内容还真不少,需要学习的东西很多,不过可以有重点的先学起来,重点需要学的内容字体都加重了,其实也不算太多,可以先写一些小的应用试试手,有感觉了再根据自己的兴趣进行选择。
Java可以干的事情很多,几乎无所不能。但是还是需要说,编程不光光只是语言 ,为了使用这些开发语言还需要了解开发工具 ,需要了解写完语言以后如何调试 ,如何测试 你写的那些东西是否正确,然后还需要进行版本控制 ,最终还需要进行部署 ,这样才算完成了一个完整的开发过程,这些都是开发中必须要学习的。
所以我们在做汇智网上的课程时,提供了在线的开发环境和工具,将编程、调试都结合在了一起,我们觉得这很适合小白入门学习。
怎么开始
开始之前我们还是需要了解一下Java语言如何工作:
1.通过编辑器(Notepad++/EditPlus)或者IDE工具(Eclipse)进行程序编写。
2.通过编译器(可以通过javac命令)编译成.class文件(二进制中间码)。
3.通过运行与不同计算机平台的虚拟机即JVM来执行这些字节码。
了解了这个过程就对应的大致就有了基本的学习思路:
1.确定编写代码的开发工具,我们还是推荐使用Notepad++/EditPlus这类编辑工具写一两周似乎更好,这样你可以更清楚的了解Java的工作原理和她的运行机制。使用Eclipse这种集成环境也没有问题,但是很多时候基础环境中的功能太多,容易产生大量需要学习的内容,搞得小白不能集中精力在Java语言上。
2.JDK。JDK是整个java的核心,包括java的运行环境、java工具和java基础类库,自然也就包括了编译器。需要说明一下JDK有三个版本:
- JavaSE,standard edition,标准版,是我们通常用的一个。
- JavaEE,enterpsise edtion,企业版,使用这种JDK开发JavaEE应用程序。
- JavaME,micro edtion,主要用于移动设备、嵌入式设备上的java应用程序。
根选据不同的需要选择相应的版本下载安装。
3.JVM的使用
为什么是JVM的使用而不是JVM的安装?
原因是为了省事,在JDK中已经包括了JVM,就不用再单独的进行了安装了。
这里普及个常识,JDK、JRE、JVM三者间的关系:
上面这张图比较简单的说明了他们之间的关系。如果想更清楚的了解他们间的关系,看下面这张:
不到一定的阶段JVM其实只是一个存在,如果能到了做JVM相关开发的时候,那应该是很精通Java开发了。
了解完这些以后我们就可以开始了,学习java一定要从JavaSE开始。
JavaSE的下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html。
这个过程很简单,需要注意的是安装完成后,要设置一下这几个环境变量:
- JAVA_HOME:安装JDK的目录。
- PATH:指定可执行程序的位置。
- CLASSPATH:指定类文件程序的位置。
通过执行下面的命令可以检验安装是否成功。
1 | java -version |
或者
1 | javac |
掌握JavaSE
JavaSE作为Java的标准版本,包括了足够的内容供我们入门学习。
我们先来看一下Java程序编写、编译、运行的过程。
1.下面是一个最简单的Java程序,这个程序完全可以通过任何一个编辑器来写,不是吗?
1 | class HelloWorldApp { |
保存后假设我们命名为HelloWorldApp.java,记住你保存的目录。
2.只要正确安装了JDK,执行javac命令来编译一下:
1 | javac 目录\HelloWorldApp.java |
3.运行这个程序也很简单,执行java命令就可以:
1 | java -cp 目录\HelloWorldApp |
如果这些都没有问题,那说明开发环境都可以了,那就可以在你自己的计算机上进行最基本的Java语言学习了。如果这也闲麻烦,那就直接到汇智网上在线学习编程:在线java编程学习。
我们可以在按照这个顺序来学习:基本语法、数据变量类型、符号、类、结构、方法、数组、异常处理、流程控制、面向对象编程、文件处理、数据库编程、多线程编程、网络编程、并发编程逐步进行,最终完成大部分基础的Java编程学习,对一些类库也有了基本的认识。
学习过程如果大家有余力,推荐大家去看看Apache的Commons库的源代码,例如lang、dbutils、io等。
数据库和JDBC
Java的开发必须要和数据库打交道,建议大家先用MySQL就好,安装很简单这里就不再多说了,起初的时候,主要是一些基本的SQL语言,能做些建库建表、增删改查的操作即可,如果要深入的数据库就够学一阵子的了,笔者建议还是边练边学,有需要的时候再深入了解。
JDBC(Java Data Base Connectivity,java数据库连接),是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。有了它你就不用为不同的数据库单独写程序了,直接调用它的API就行。
Servlet
Servlet是在服务器上运行的小程序。这个词是在Java applet的环境中创造的,Java applet是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。
服务器上需要一些程序,常常需要根据用户的输入访问数据库,Servlet就是为了完成这个功能而产生的,它可以实现交互式地浏览和修改数据,并且生成动态 Web 内容。这个过程为:
- 客户端发送请求至服务器端;
- 服务器将请求信息发送至Servlet;
- Servlet 生成响应内容并将其传给服务器;
- 服务器将响应返回给客户端。
一个 Servlet 就是 Java 编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然 Servlet 可以对任何类型的请求产生响应,但通常只用来扩展 Web 服务器的应用程序。
JSP
JSP(全称Java Server Pages)是由Sun Microsystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。
学习Servlet和JSP也是必须的,是JAVA开发WEB应用的基础。
Spring、 Struts和Hibernate
Spring、Struts、Hibernate简称SSH是最流行的3种java开源框架。其中:
- Spring是一个分层的JavaSE/EEfull-stack(一站式)开源框架,是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
- Struts是开源框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。它通过采用JavaServlet/JSP技术,实现了基于JavaEE Web应用的MVC设计模式的应用框架。
- Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,与数据库表建立映射关系。Hibernate可以自动生成SQL语句并执行,使得Java程序员可以使用对象编程思维来操纵数据库。Hibernate既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,它甚至可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
再深入
以上内容如果都已经掌握了,那你就真的可以用java干活了,如果希望再深入的话,基于现在最流行的技术路线,你可以学习学习Scala、Groovy、Clojure,感受感受跨语言的编程,这些语言都与Java平台和语言又很紧密的关系;你也可以做做大数据相关的开发学习学习Hadoop、Spark;还可以尝试一下云计算方面的编程如OpenStack;如果你喜欢移动编程你可以试试Android/javaME。
推荐书目
推荐在线课程
http://www.hubwiz.com/course/?type=desktop
Java API
再以后就没有以后了,去改变世界吧。。