如何系统地学习Java
1、概述整个学习Java的过程一共分为三个阶段:初级->中级->高级。其中初级阶段是整个学习的基础,中级阶段是基于初级阶段的进一步扩展,在初级阶段需要花费很多精力完成的工作,其实中级阶段只需几行代码就实现了,在初级阶段不能完成的事情,中级阶段就能够完成了,而高级阶段则是对中级阶段的进一步优化和补充。下图是三个阶段的划分:

4、2、初级阶段的学习方法在初级阶段,对于基础为0的同学,我建议找网上的免费公开课看,比如我要自学网这样的网站。对于有基础的同学,可以看看比较经典的书,比如下面这本


7、2、网络流的学习网络流的学习,对于基础薄弱的同学来说,可以通过看教学视频熟悉怎么用,然后可以看《java tcp/ip socket编程》这本书,这本书中包含了大量的例子,很适合刚学会用的新手来练手,对于有一定基础的同学来说,建议通读上面提到的《Java网络编程》这本书,顺便可以翻一翻JDK中网络相关类的源代码。

8、3、多线程的学习多线程的学习,对于基础薄弱的同学来说建议看视频,视频中有很多例子可以帮助你快速掌握多线程的概念,对于有一定实践经验的同学,可以看下面这本书。



15、4、注解/反射/动态代理对于注解/反射/动态代理这些高级功能,一般我们在编程的时候很少会遇到,我建议对于初级程序员了解即可。
16、总结通过以上三个阶段的学习,我相信大家能够对Java自身的体系有个系统的认识,而不仅仅是停留在只会用的地步。在学完这三个阶段后,我强烈推荐再看两本书:《effective java》和《深入理解java虚拟机》,前者在Java实践层面给出了很多很好的建议,后者则是带我们进入了Java的底层--虚拟机的世界,从而进一步扩展我们队Java的认识。
