黑马程序员技术交流社区

标题: 黑马程序员:轻松精通Java学习路线连载1-基础篇! [打印本页]

作者: 橘子哥    时间: 2016-9-7 17:13
标题: 黑马程序员:轻松精通Java学习路线连载1-基础篇!

黑马程序员:轻松精通Java学习路线连载1-基础篇!

编程语言Java,已经21岁了。从1995年诞生以来,就一直活跃于企业中,名企应用天猫,百度,知乎......都是Java语言编写,就连现在使用广泛的XMind也是Java编写的。Java应用的广泛已经到了“无处不用”的盛世,而且一直在语言排行榜榜首,从未被超越。废话不多说,今天主要是给大家讲讲怎样学习Java,给大家建议一条轻松精通Java的学习路线。有了相对标准的流程,那么你的学习效率一定会倍增。

下面以黑马程序员Java学院的学习路线为例,进行一次史无前例的剖析,我会采取连载的形式,细致的讲解零基础的人怎么学习Java。先看下Java在基础阶段的知识点路线图。



内容多吗?不要被吓到了,知识点剖析的比较细,所以看着比较多。不要害怕学不会,经过下面的详解,你就会明白这些知识点都是干嘛的了。




Java基础

入门阶段,主要是培养Java语言的编程思想。了解Java语言的语法,书写规范等,掌握Eclipse、MyEclipse等开发工具,编写Java代码的能力。学完这个阶段你应该可进行小型应用程序开发并且可以对数据库进行基本的增删改查管理。注意:此阶段知识点的学习,会有真实的项目进行驱动学习,让你轻松理解各知识点。


1.   计算机基础知识

针对零基础学习的人,从对计算机操作等知识的了解,延伸到Java语言的发展与开发工具的使用上。主要是让你知道怎样执行计算机命令,认识Java这门语言,感受编程语言Java怎么开发程序。

1)     计算机基础

让零基础学习的人先了解计算机相关知识,进而再去了解Java语言。

2)     DOS常用命令

了解什么是DOS,并掌握DOS控制台的打开方式,同时熟悉常用的DOS命令,例如:盘符切换、进入指定目录、删除文件等,完成使用DOS命令对计算机进行操作和控制。

3)     Java概述

了解Java语言的发展史、Java语言平台版本、Java语言的特点,以及JRE与JDK。JRE是Java的运行环境,JDK是Java开发工具包,它包含了Java的开发工具以及JRE。所以安装了JDK就不用再单独安装JRE了。

4)     JDK环境安装配置

了解了什么是JDK,以及JDK的重要性,下一步我们就来学习如何安装和配置JDK环境。在安装JDK之前,我们首先需要下载JDK,针对不同的系统,我们需要下载不用版本的JDK。

5)     环境变量配置

了解path、classpath环境变量,理解path变量和classpath变量的作用,并掌握path变量和classpath变量的配置方式。

6)     Java程序入门

当JDK、环境变量配置完毕,我们就可以开始 编写Java程序。编写Java程序可以使用如下几种工具:notepad(微软操作系统自带)、Editplus、Notepad++、Eclipse、MyEclipse。

2.   编程基础

此模块学习是让你了解编程的具体流程,学习Java基础语法的格式等。具体要掌握不同数据类型的变量定义与使用,掌握不同运算符的运算规则,掌握流程控制语句的执行流程,编写方法的声明与调用,创建数组并访问数组元素等知识。

1)     注释

在程序开发工程中,用于解释和说明程序的文字我们称之为注释,Java中的注释分为以下几种:单行注释、多行注释、文档注释。

2)     关键字

了解Java关键字的含义及特点,掌握关键字使用的注意事项。

3)     标识符

了解什么是标识符,标识符的组成规则,以及标识符使用时的注意事项。

4)     常量与变量

理解常量与变量的含义,并掌握常量与变量的区别、变量的定义格式以及变量的赋值。

5)     数据类型

掌握Java语言的数据类型,如基本数据类型:byte、short、int、long、float、double、char、boolean,以及引用类型:类、接口、数组。

6)     运算符

熟练掌握Java中的运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。

7)     流程控制语句

了解什么是流程控制语句,掌握以下流程控制语句:顺序结构、选择结构、循环结构,并能够通过流程控制语句实现特定的功能。

8)     方法

掌握方法的定义及格式,并能正确的调用方法,理解方法的调用过程,同时清楚方法的注意事项;掌握方法重载及其特点。

9)     数组

了解数组的概念,掌握数组的定义格式、静态初始化、动态初始化,并能够理解Java中数组的内存图解。熟练掌握数组的遍历、获取最值、数组元素逆序、数组元素查找、数组排序和二分查找,以及二维数组的定义格式及初始化。

3.   面向对象

现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体,如人类、书桌、计算机、高楼大厦等。人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都是由哪些部分组成的。通常都会将对象划分为两个部分,即动态部分与静态部分。静态部分,顾名思义就是不能动的部分,这个部分被称为“属性”,任何对象都会具备其自身属性,如一个人,它包括高矮、胖瘦、性别、年龄等属性。然而具有这些属性的人会执行哪些动作也是一个值得探讨的部分,这个人可以哭泣、微笑、说话、行走,这些是这个人具备的行为(动态部分),人类通过探讨对象的属性和观察对象的行为了解对象。

1)     面向对象思想

了解面向过程编程思想,能够通过案例理解Java的面向对象编程思想,了解面向对象开发、设计、特征。

2)     类与对象

了解什么是类,什么是对象,并理解类与对象之间的关系;熟练掌握类的定义、对象内存图等。

3)     成员变量和局部变量

了解什么是成员变量,什么是局部变量,以及从他们在类中的位置、内存中的位置、生命周期、初始化值等方面掌握他们的区别。

4)     匿名对象

了解什么是匿名对象,掌握匿名对象的两种使用情况。

5)     封装

清楚的了解什么是封装,并能够理解封装的优点与缺点,同时掌握封装的原则。

6)     this关键字

掌握this关键字的含义与使用。

7)     构造方法

了解什么是构造方法,构造方法的作用,以及与构造方法相关的注意事项。

8)     继承

理解什么是继承,继承的好处以及java中继承的特点和注意事项,继承中成员变量的关系、构造方法的关系、成员方法的关系,方法重写与方法重载的区别。

9)     多态

理解什么是多态,掌握多态案例及成员访问的特点,多态的优点和缺点,多态中的转型问题。

10)  抽象类

了解什么是抽象类,抽象类的特点,抽象类成员的特点。

11)  接口

了解什么是接口,接口的特点,接口成员的特点,类与类、类与接口的关系,以及抽象类与接口的区别。

12)  内部类

什么是内部类,内部类的访问特点,内部类的位置,什么是成员内部类、局部内部类、匿名内部类,以及匿名内部类在开发中的使用。

4.   常用类

类库就是Java API(Application Programming Interface,应用程序接口),是系统提供的已实现的标准类的集合。在程序设计中,合理和充分利用类库提供的类和接口,不仅可以完成字符串处理、绘图、网络应用、数学计算等多方面的工作,而且可以大大提高编程效率,使程序简练、易懂。

学习内容:掌握Object类、Scanner类、String类、StringBuffer类、StringBuilder类、Arrays类、基本包装类、正则表达式、Math类、Random类、System类、Date类、DateFormate类、Calendar类,及其常用方法。

5.   集合

集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用。简单一点就是说,集合是存放数据的容器。

学习内容:什么是集合?数组与集合有什么区别,集合类的特点,掌握Collection接口、Iterator接口、List接口、ListIterator接口、ArrayList类、Vector类、LinkedList类、泛型、Set接口、HashSet类、Map接口、HashMap类、LinkedHashMap类等。

6.   IO

IO(Input/Output)是计算机输出/输出的接口。Java的核心库java.io提供了全面的IO接口,包括:文件读写,标准设备输出等等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。

1)     异常

了解什么是异常,异常的由来,常见的异常,异常的分类,掌握jvm对异常的默认处理方案,异常的处理方案:try…catch…finally、throws,什么是编译时异常,什么是运行时异常,掌握它们两的区别,throws关键字、throw关键字,以及这两个关键字的区别,熟练掌握自定义异常,异常注意事项。

2)     File类

了解什么是File类,File类的用途,掌握File类的方法:createNewFile()、mkdir()、mkdirs()、delete()、renameTo(File dest)、isDirectory()、isFile()、exists()、等方法,以及File类的基本获取功能方法和高级获取功能方法。

3)     IO流

了解什么是IO流,IO流的用途;熟练掌握输入流、输出流、字符流、字节流、IO流的常用基类;如何使用字节流读写数据、复制数据;什么是字节缓冲流,如何使用字节缓冲流读写数据;什么是转换流,如何使用转换流更加高效的读写数据,内存操作流、打印流、标准输入输出流、序列化流、Properties集合。

4)     IO流练习

(1) 复制文本文件;

(2) 复制图片;

(3) 把ArrayList集合中的字符串数据存储到文本文件;

(4) 从文本文件中读取数据(每一行为一个字符串数据)到集合中,并遍历集合;

(5) 复制单极文件夹;

(6) 复制单极文件夹中指定文件并修改文件名称;

(7) 复制多极文件夹;

(8) 已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl”;

(9) 请编写程序读取数据内容,把数据排序后写入ss.txt中;

(10) 获取每次读取数据的行号;

(11) 登录注册IO版。

7.   多线程

是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multithreading)或同时多线程(Simultaneousmultithreading)处理器。在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理(Multithreading)”。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程(台湾译作“执行绪”),进而提升整体处理性能。

1)     多线程

了解什么是线程,什么是多线程,理解java程序的运行原理,掌握多线程的实现方案,如何获取和设置线程名称、线程的生命周期、如何解决线程安全问题、线程同步、Lock锁、死锁问题、线程间通信、线程的状态及状态转换、线程池。

2)     多线程面试题

(1) 多线程有几种实现方案,分别是哪几种?

(2) 同步有几种方式,分别是什么?

(3) 启动一个线程是run()还是start()?它们的区别?

(4) sleep()和wait()方法的区别;

(5) 为什么wait(),notify(),notifyAll()等方法都定义在Object类中;

(6) 线程的生命周期图。

3)     设计模式

了解什么是设计模式,设计模式的分类,熟练掌握单例设计模式(懒汉式、饿汉式)。

8.   网络编程

网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。

9.   反射

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

10.         Mysql及JDBC开发

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational DatabaseManagement System,关系数据库管理系统) 应用软件之一。

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC执行SQL语句操作数据库。


1)     Mysql数据库

数据库使用、mysql的安装与卸载、mysql账号管理,SQL语句介绍、数据库增删改操作DDL语句使用、表增删改操作DML语句使用、表查询操作DQL语句使用、以及查询语句条件、排序、聚合、分组操作。

2)     JDBC开发

JDBC介绍、驱动的原理及使用、JDBC核心使用、DriverManager、Connection、Statement、ResultSet详细使用,JDBC的CURD操作、防止SQL注入及PrepareStatement使用、大数据处理、批处理。

3)     DBUtils开发

连接池介绍、DBCP连接池使用。DBUtils介绍、DbUtils类的使用、QueryRunner类的使用、ResultSetHandler详解。



成为一名Java开发工程师,上面的内容是首要必学的知识点。认真的讲,基础知识学好了,后面的知识点学习会非常容易,都是在基础上或添加或者变化的。想要更全面的了解Java,欢迎你咨询黑马程序员官网,黑马程序员十年Java教学,坚守“为莘莘学子改变命运而讲课”这份情怀,不忘初心。最后一张图看看黑马程序员Java学员各阶段市场价值!

感谢阅读,更多精彩在下一期哦!......





作者: 孙洪勇    时间: 2016-9-7 19:04
基础已学完,想了解下就业的一些东西,求指教啊
作者: LLL_LLL    时间: 2016-9-11 12:46
非常有用,感谢分享
作者: lipengwei    时间: 2016-9-11 15:47
支持支持,黑马加油
作者: 18333601807    时间: 2016-9-11 15:57
图画的不错,总结的很好
作者: 疯狂的麦克斯    时间: 2016-9-15 11:04
好牛逼的样子
作者: fiendGG    时间: 2016-9-15 19:35
很有用,感谢分享
作者: 天河边吃紫英    时间: 2016-9-15 19:39
很好的教程,受益匪浅
作者: huang01    时间: 2016-9-15 22:18
感谢分享..
作者: LoneRan9er    时间: 2016-9-15 23:17
要学的东西还很多    只能脚踏实地一步一步慢慢前进
作者: a953558401    时间: 2016-9-16 00:17
Java学习路线连载1-基础篇!
作者: tliangl928    时间: 2016-9-16 11:44
黑马,我来了……
作者: hjr490150385    时间: 2016-9-16 13:36
加油,黑马
作者: 刘永川    时间: 2016-9-16 14:49
感谢橘子哥地分享,又一次收藏了,加油,共勉
作者: lzs    时间: 2016-9-16 16:12
面向对象的东西也不好理解啊
作者: 晨星1    时间: 2016-9-16 18:03
java比我小2岁
作者: yonghu    时间: 2016-9-16 18:24
谢谢橘子哥,赞。。。。。。
作者: HMSK    时间: 2016-9-16 21:30
public class Praise{
    public static void main(String[]  args){
        while(true){
            System.out.println("赞"):
        }
    }
}
作者: 胡eason    时间: 2016-9-16 21:44
加油!加油!加油!加油!
作者: yigezhifu    时间: 2016-9-16 21:50
还有5天,基础学完了,一起加油。
作者: 18001105207    时间: 2016-9-16 21:50
补补漏洞,很好
作者: 等待未来    时间: 2016-9-16 21:54
加油加油加油加油加油加油加油加油加油加油加油加油加油加油加油加油加油加油加油加油
作者: yigezhifu    时间: 2016-9-16 21:59
抱歉,您的 IP 地址不在允许范围内,或您的账号被禁用,无法访问本站点
作者: EdwardWuang    时间: 2016-9-16 22:03
非常有用,马上点招,值得一看!!!!
作者: 松松    时间: 2016-9-16 22:20
java确实强大 没办法
作者: Fate_stay    时间: 2016-9-16 22:45
好叼的样子,谢谢
作者: Jerry007    时间: 2016-9-16 22:51
对于我们这种0基础的人来说很有用啊
作者: 山雨欲来风满楼    时间: 2016-9-16 23:03
看看。。。。
作者: seedseed555    时间: 2016-9-16 23:14
666666666666666666
作者: 时间虽漫长    时间: 2016-9-16 23:14
看起来不错不错~!~!
作者: 孙阳超    时间: 2016-9-16 23:44
加油,黑马
作者: 磊哥哥    时间: 2016-9-16 23:50
加油加油
作者: im_hao    时间: 2016-9-17 00:11
加油!加油!加油
作者: 汪方玉    时间: 2016-9-17 00:17
加油,我一定会学好java的
作者: HeJundong    时间: 2016-9-17 00:19
这贴真心不错。但是我就想知道我们学了javaee出来具体能找到哪些工作岗位?上班大概要做啥?求教
作者: 我就是那匹黑黑    时间: 2016-9-17 00:26
支持支持,黑马加油
作者: 山雨欲来风满楼    时间: 2016-9-17 00:49
支持黑马!!!
作者: 荔荔舟    时间: 2016-9-17 01:09
不错不错,加油~
作者: 松松2016    时间: 2016-9-17 01:59
JSP中动态INCLUDE与静态INCLUDE的区别
作者: jueze    时间: 2016-9-17 07:33
表示刚开始学MySQL,期待中
作者: zhoubinjian    时间: 2016-9-17 08:16
不错的帖
作者: 胡龙彬    时间: 2016-9-17 12:01
总结的很好
作者: 山雨欲来风满楼    时间: 2016-9-17 12:30
很好,收藏一下
作者: a290741206    时间: 2016-9-17 13:14
基础点的都会,但是一问深就不行.....
作者: zjy9399    时间: 2016-9-17 14:14
java基础一定要扎实吗?
作者: 迷路兵    时间: 2016-9-17 16:12
每天学一点忘一点
作者: 时间虽漫长    时间: 2016-9-17 16:52
是个复习的思路~!
作者: hgd5201314    时间: 2016-9-17 16:59
好帖子,支持一个
作者: liuhongbo    时间: 2016-9-17 20:59
哎 努把力 攒攒分
作者: 332597171    时间: 2016-9-17 21:26
基础相当重要 学习了
作者: 松松    时间: 2016-9-17 21:50
嗯 是呀基础非常重要 学习喽
作者: 等待未来    时间: 2016-9-17 22:04
很好很好啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
作者: 春天de小微风    时间: 2016-9-17 22:06
赞赞赞赞赞在哪赞助那种咱
作者: 江月念华    时间: 2016-9-17 22:50
很好的啊 啊啊啊 啊啊啊啊啊啊 啊
作者: 流空有痕    时间: 2016-9-17 22:58
明天复习,后天点招
作者: 磊哥哥    时间: 2016-9-17 23:03
赞赞赞赞
作者: zhengguanyann    时间: 2016-9-17 23:29
学一天忘一天!!
作者: 芳燚乐乐    时间: 2016-9-17 23:33
能否详细的谈谈关于学习JAVA的方法和基本的思想思路,知识的总结点蛮好的,希望掌握的是更好的学习方法?谢谢!
作者: 山雨欲来风满楼    时间: 2016-9-18 00:50
学习中。。。。。。

作者: henryjavaee    时间: 2016-9-18 01:25
学了一天又一天,相当累啊
作者: 宝瓶子    时间: 2016-9-18 08:34
早起的鸟儿有虫吃
作者: 宝瓶子    时间: 2016-9-18 08:37
基础班数据库就没有学
作者: Doublek    时间: 2016-9-18 09:09
又是新的一天!
作者: huang01    时间: 2016-9-18 09:31
基础相当重要 学习了
作者: jueze    时间: 2016-9-18 10:30
java如此强悍
作者: zhangjiesss    时间: 2016-9-18 12:43
加油加油
作者: 选择坚持    时间: 2016-9-18 13:03
要学的东西还很多
作者: 超绝可爱曾小野    时间: 2016-9-18 14:05
赞赞哒  现在在学基础~
作者: s952397683    时间: 2016-9-18 16:20
努力奋斗~~~`
作者: kansyoukyou    时间: 2016-9-18 16:42
20个技术积分。。。。。。
作者: 汪方玉    时间: 2016-9-18 16:53
感谢分享,明天会更好
作者: 肖小龙    时间: 2016-9-18 18:13
赞赞赞赞赞赞赞赞.....支持黑马
作者: yiwenbin    时间: 2016-9-18 19:05
学好java
作者: theme890217    时间: 2016-9-18 19:08
基础这块东西比较多,刚学到面向对象就有点迷糊了~~唉,还得努力啊!0基础真的很困难学着
作者: 流空有痕    时间: 2016-9-18 19:53
哎!加油一次过点招,高兴回家
作者: 磊哥哥    时间: 2016-9-18 20:09
唉,还得努力
作者: 郑大仙丶    时间: 2016-9-18 20:37
赞,很需要的说.
作者: 从此学好    时间: 2016-9-18 20:59
谢谢分享。正在学习中
作者: 曹亚辉    时间: 2016-9-18 21:01
我们也快了,加油加油!!!!!!!!1
作者: 松松    时间: 2016-9-18 22:27
学习中 谢谢分享
作者: jackmay    时间: 2016-9-18 23:32
服务器 开鲁
作者: Zadine#    时间: 2016-9-18 23:34
终于更新了\```
作者: zhangliuxian    时间: 2016-9-18 23:46
?什么情况

作者: seedseed555    时间: 2016-9-18 23:50
66666666666666666
作者: taozhihui    时间: 2016-9-19 00:07
好东西,很好啊
作者: Deadline__    时间: 2016-9-19 00:08
感谢分享!
作者: henryjavaee    时间: 2016-9-19 00:10
感谢分享,哈哈哈
作者: henryjavaee    时间: 2016-9-19 00:15
等好久才更新啊
作者: henryjavaee    时间: 2016-9-19 00:20
99996666666666666
作者: 山雨欲来风满楼    时间: 2016-9-19 00:42
感谢分享
作者: qq1474754818    时间: 2016-9-19 01:05
6666666666666666
作者: 山雨欲来风满楼    时间: 2016-9-19 01:16
感谢分享
作者: zhoubinjian    时间: 2016-9-19 08:24
来支持一下
作者: zhangjiesss    时间: 2016-9-19 09:31
加油加油
作者: 宝瓶子    时间: 2016-9-19 11:41
java最好
作者: hgd5201314    时间: 2016-9-23 08:59
支持了,很实用
作者: wu971856966    时间: 2016-11-10 16:01
感谢 分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2