大家好, 这篇文章主要是讲解下如何自学 Java, 这个问题有很多粉丝私信问过, 今天又有直系学妹问我如何学习 Java?
我就以我的经历, 总结下分享给大家, 有不当指出或者有更好的方法建议也欢迎留言指出, 大家一起交流进步.
首先给出一张思维导图, 图片和思维导图源文件可以在公众号武培轩后台回复 java 即可.
首先第一步就是学习 Java 基础:
Java 基础
Java 是一门面向对象的编程语言, 所以在了解基础语法之后, 还要搞懂它的面向对象编程思想 (比如涉及到的封装, 继承, 多态, 类, 对象, 接口等), 除此之外还有泛型, 反射等知识也需要学习, 因为反射在许多框架中都有所应用.
除上述外, IO, 集合, 异常等也需要去了解下, 不仅在面试中会问到, 工作中也会用到.
有精力的可以去了解下 Java 8 的新特性, 比如 Lambda 表达式, Stream 流操作以及新的 Date API.
关于书籍的话, 我推荐 《Java 核心技术卷 1: 基础知识》 和 《Java 核心技术卷 2: 高级特性》, 这两本书都比较适合入门, 另外 《码出高效: Java 开发手册》 这本书也挺好的, 还不是非常厚, 可以阅读下.
如果觉得看书看不进去的话可以看视频学习 (尚硅谷, 黑马, 达内等), 另外我觉得在学习完一些知识后, 可以自己动手去敲代码玩玩, 兴趣不一定是最好的老师, 但成就感一定是.
再分享一个我学习新知识的方法 - 闭环式学习: 再学习完之后, 通过思考对知识进行总结 (可以使用思维导图), 然后和其他人进行讲解分享, 若身边没有这个环境的话, 也可以在技术交流群里进行分享.
在了解了 Java 基础知识后, 可以去学习下并发相关的知识:
并发
并发相对于 Java 基础可能会有些难以理解, 可以通过 《Java 并发编程实战》 和 《Java 并发编程之美》 等书籍进行学习, 主要包括如下内容:
并发理论基础: 线程安全, 锁, 线程等
并发工具类: Lock,Condition,Semaphore,ReadWriteLock,CountDownLatch 等
并发设计模式: Future,Master/Salve,Copy-on-Write,Balking 等
在你了解完并发相关知识后, 你可能会发现它很多与 JVM 有关, 因此来了解下 JVM:
JVM
对于 JVM 的学习, 我这里推荐的书籍是 《深入理解 Java 虚拟机: JVM 高级特性与最佳实践》(第三版可以在微信读书上阅读), 虽然在开发中很少用到, 但是我们不光要知其然, 还要知其所以然, 因为在学习 JVM 后, 才能更深刻了解到 Java 程序是如何被执行以及优化的, 况且在面试中也是必考点, JVM 方面内容主要包含: JMM,GC 以及调优等.
数据结构与算法
算法能力不是短时间内可以迅速提高的, 因此可以在学习完 Java 基础之后就可以着手学习了, 许多大厂对于算法的要求还是蛮高的, 推荐刚开始可以刷剑指 Offer, 然后刷 LeetCode, 做完题一定要分类总结.
算法方面的书籍, 入门级别的我推荐 《大话数据结构》,《算法图解》,《我的第一本算法书》, 图文并茂, 很适合入门, 针对面试的话, 我推荐 《编程之美》,《剑指 offer》,《编程珠玑》,《程序员面试代码指南》, 这几本书的题刷完完全足够应付面试了.
同时一定要对基本的数据结构了如指掌 (链表, 数组, 栈, 队列, 哈希表, 树等), 还有常见的算法也要了解, 能够手撕代码, 比如: 二分搜索, 分治, 快排, 动态规划, 回溯法, 双指针等.
操作系统
来源: https://www.cnblogs.com/wupeixuan/p/12731338.html