Java学习路径(持续更新)

近期在系统地梳理、重新学习Java的基础知识,发现很多东西值得记录下来,不仅是给自己提供一个思考备忘录,或许也可以帮到准备开始的你(希望如此)。

一,基础介绍

先介绍自己的学习基础吧。我的Java主要是从数据结构的课上习得的,读过 Head first Java,做过几个project。工作之后主要语言是Java,这也是为什么自己开始系地统学习Java。侠客行走江湖的时候都会有那么几件趁手的兵器或者是功夫,我想Java就是我行走代码江湖的兵器。所以,基础已经很好的同学就别浪费时间继续阅读了。

二, 学习路径介绍

说是路径,其实也不全是自己的原创,参考了很多资料,尤其是Hollis的Java成神之路。这篇文章基本上是基于我自己的情况对Hollis给出的学习路径的一个“继承”。Hollis的文章只给了一个学习的列表,并没有相应的学习材料。因此在Hollis文章的基础上,我添加了自己觉得必要的主题;同时在相应的主题下加入了我自己阅读的材料,包括书籍和他人的博客,同时给出了相应的链接。如果你打算全面学习Java的话,不妨先看看Hollis的这篇文章,一定能获得一些线索。同时,Hollis还有一系列的文章讲Java的基本知识,请点击博客链接拜读他的大作。学习的过程中,我主要是按照主题进行梳理,每次集中阅读一个主题,理解之后进入下一主题。参考的书主要有:

  • Thinking in Java, 4th Edition (以下简称TIJ)
  • Effective Java, 3rd Edition(以下简称EJ)
  • 深入理解Java虚拟机 第二版

如果有人需要英文原版的TIJ和EJ的话,可以在评论里留下你的邮箱。

三,学习路径 (持续更新中)

1. Java对象

面向对象程序设计可以说是一种解决问题的方式,上升到哲学层面也不为过。个人认为在学习Java的时候理解OOP的基本概念是有非常大的帮助的。

  • TIJ: Introduction to Objects
  • TIJ: Everything Is an Object
  • TIJ: Initialization & Clean Up
  • TIJ: Reusing Classes
  • TIJ: Polymorphism

TIJ这几章对Java OOP做了比较全面的介绍。之后我开始读EJ的第二章。

  • EJ: Creating and Destroying Objects

EJ的第二章集中讲了如何创建对象、如何销毁对象,对下来获益匪浅,有时间应该会写一篇文章总结以下其中种种好的编程方法。可惜的是EJ的很多建议里边都没有相关的例子,很多时候要自己去找例子帮助理解消化。

2. 异常处理

异常处理看似无足轻重,实则不然。正确的异常处理不仅可以保持代码整洁,提高代码可读性,还可以提高大型软件系统的稳定性,同时为Debug提供log,便于锁定问题。

  • TIJ: Error Handling with Exceptions
  • Chained Exceptions in Java

还是把TIJ对每个主题的介绍当作入门了解,之后又继续阅读了EJ的第10章。

  • EJ: Exceptions

EJ的第十章几乎提供了Java异常的所有用法,也提醒并列出了很多值得注意的不合理用法。当然问题还是一样:没有例子来佐证相应的建议。阅读的时候遇到了很多迷惑的地方,这里也列出一些解决自己疑惑的博客和StackOverflow上的解答。

  • 什么是Unchecked Exception和Checked Exception
    • Checked vs Unchecked Exception
  • 为什么直接抛出Exception是个不好的习惯(这里指的是Exception类本身,而不是其他异常,比如KeyException)?
    • Beware the dangers of generic Exceptions
    • StackOverflow

3. Java String

4. Java IO

  • TIJ: I/O

5. 枚举

  • EJ: Chpater 6: Enums and Annotations

6. 泛型

  • TIJ: Type Information
  • TIJ: Generics

7. 序列化

8. 反射

9. Java Lambda

10. Java Stream

11. Java多线程

12. Java编码方式

13. Java正则表达式

14. Java反编译


四,共勉

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

你可能感兴趣的:(Java学习路径(持续更新))