自学java?


“这是一篇完整的java程序员学习线路图 。一共分为六个阶段 。
我以java为例 。展示完整的学习步骤 。
希望对于想通过java自学的朋友有帮助 。
java程序员学习线路流程

自学java?

文章插图
第一步:Java语言基础
从最简单的开始 。hello world开始Java之旅
1.编程基础
常量与变量
数据类型
运算符
流程控制语句
方法
数组
2.面向对象
面向对象思想
类与对象
成员变量和局部变量
封装
this关键字
构造方法
3.集合
集合概述
集合特点
ArrayList集合
HashMap集合
常用集合优劣比较
4.输入/输出 IO
字符输入流
字符输出流
字符缓冲输入流
字符缓冲输出流
复制文件
集合与文件中数据相互读写
5.练习阶段
属于你自己的helloword
第二步:java语言高级
自学java?

文章插图
再结合java高级部分 。里面的部分内容 。这个阶段你不一定能理解很彻底 。但有一点 。如果你今后想进入高阶俱乐部 。这些内容你必须掌握牢固 。
举个栗子 。如果你面试通过进入了公司 。我一定会在早期仔细review你的代码 。代码的功力是欺骗不了人的 。不同人写一个接口 。呈现的结果也是千差万别(所以才有了规范) 。
1.面向对象
继承
多态
重写(Override)
重载(Overload)
封装
接口
java包 package
2.异常处理
异常概述
异常分类
异常处理方案
自定义异常
3.多线程
【自学java?】Java线程:概念与原理
Java线程:创建与启动
Java线程:多线程的实现方案
Java线程:线程生命周期
Java线程:线程池
Java线程:线程状态的转换
Java线程:线程的同步与锁
Java线程:线程的交互等等
线程的几个主要概念
在多线程编程时 。你需要了解以下几个概念
线程同步
线程间通信
线程死锁
线程控制:挂起、停止和恢复
4.输入与输出IO
文件和I/O
读写文件
Java 流(Stream)
文件(File)
缓冲流
5.泛型(Generic )
泛型的使用场景
泛型类型
泛型方法
泛型通配符?
6.网络编程
网络机制
Socket原理机制
UDP、TCP传输等
7.反射(reflection)
类加载机制原理
反射构造方法、字段、方法
Properties配置文件
8.注解(annotation)
注解的使用和原理
三种内置annotation
自定义annotation
注解类的反射调用
动态代理类如何处理
9.Java高级特性和类库
java类加载器class loader
java 程序运行的基础知识,java编译后的bytecode的整个运行机制 。这一点对应.net的IL(intermediate language) 。
理解Java nio 。关于这一点网上有非常多的教程 。这一条需要重点掌握 。对于高并发的掌握很重要 。
java juc(java.util.concurrent)等等
10.JVM原理和调优
JVM最重要的三个部分必须要非常清楚 。内存划分、class加载机制以及GC策略 。搞清楚这三部分不仅仅是为了面试 。也是为了让你对于Java有更深刻的理解 。这对于你的Java生涯非常有帮助 。
内存划分简单说分为三个部分 。Young Generation(年轻代)、Old Generation(年老代)以及Perm Generation(永久代) 。其中的Young Generation(年轻代) 。又分为Eden、From和To 。其中From和To又统称为Survivor Spaces(幸存区) 。
关于classloader机制的学习 。可以结合tomcat去学习 。了解清楚tomcat的classloader机制 。看tomcat是如何保证各个APP之间的类隔离的 。如果可能的话 。看一下tomcat中classloader的源码 。当中也包含了与tomcat类加载机制相似的部分 。
至于GC 。需要清楚GC Roots都有哪些 。以及如何判断一个对象可以被回收 。此外 。GC的算法和策略也要有大概的了解 。
第三步:java web阶段
自学java?

文章插图
1.前段技术掌握
html
css
js
jquery
bootstrap
2.动态网页技术
Java Servlet API
Velocity
FreeMarker
JSP等常用模板引擎
比如 。淘宝前端层使用的是velocity模板 。部分公司采用jsp、freemarker等 。基本类似 。
3.linux服务器基本命令
在个阶段 。也可以结合自己的情况 。学习linux系统底层原理 。

推荐阅读