Loading...
墨滴

楼仔

2021/07/03  阅读:82  主题:橙心

3个月Java速成记,一文记录Java学习过程

3个月时间掌握Java基础知识,分享楼主的学习心路历程。

前言

我是4月25日开始确定要好好学习Java,上周6月26日完成Java的第二阶段学习,总共学习Java共计64天,加上之前对基本知识的30天学习,共计约90天,算下来刚好3个月。下面简单记录一下我的Java学习轨迹,如何从Java小白,到基本掌握Java技术栈的常用基础知识。

温馨提示:本文中的所有文章,都可以进入我的公众号“楼仔进阶之路”获取。

JAVA基础知识

我是于今年3月,将JAVA的基础知识整体初步学习了一遍,主要是结合书籍《JAVA疯狂讲义》,包括Java的基本语法、集合、泛型、并发编程等基本知识。

因为项目需要,也简单学习了Spring、Spring Boost、Maven和Mybatis,只是很粗略的学习那种,比如说@Service注解是干啥用的,Mybatis是怎么操作DB等(其实主要是因为看不懂项目代码,用来扫盲用的。)

学习时间:3月1日 - 3月30日

设计模式

这个其实和Java没有太大关系,但是我还是把它列进来,因为在开发Java的过程中,不可避免会用到各种设计模式,所以希望尽快把这块的坑填完。

学习时间:4月25日 - 5月8日

学习内容:

  • 《设计模式系列1 - 模板模式&策略模式》
  • 《设计模式系列2 - 工厂模式》
  • 《设计模式系列3 - builder模式》
  • 《设计模式系列4 - 组合模式》
  • 《设计模式系列5 - 单例模式》
  • 《设计模式系列6 - 代理模式》
  • 《设计模式系列7 - 装饰器模式》
  • 《设计模式系列8 - 门面模式》

学习资料:菜鸟教程

学习心得:

  • 不建议大家拿一本书,从第一个设计模式看到最后一个设计模式,如果这样的话,我保证你记住的,永远是最后一个设计模式。
  • 设计模式需要结合实际的项目,才能体会的更加深刻;
  • 如果当下没有实际的项目,可以回顾一下之前做的项目,然后再结合某个具体的设计模式进行学习;
  • 设计模式不建议一次性学成,我是先结合当下和之前的项目,通过前6篇文章,将自己遇到的设计模式进行总结,最后两篇是项目中遇到该设计模式,然后才去学习。

总结:建议大家先结合之前的项目,对自己用到的设计模式进行总结学习,然后后面项目遇到相关设计模式,再进行该设计模式的学习,这样才能学以致用。千万不要抱着一本书,或网上的某个教程,去啃设计模式!!!

------- 真正的系统学习,是从下面开始的!!!-------

------- 真正的系统学习,是从下面开始的!!!-------

------- 真正的系统学习,是从下面开始的!!!-------

JAVA并发编程

这个是JAVA语法中非常核心的知识,学习这个的前提,是大家先掌握JAVA的基本语法,建议大家可以花一周时间快速看完一本讲解JAVA基础语法的书籍。

学习时间:5月9日 - 5月24日

学习内容:

  • 《Java并发编程系列1 - 基础知识》
  • 《Java并发编程系列2 - volatile》
  • 《Java并发编程系列3 - synchronized》
  • 《Java并发编程系列4 - final》
  • 《Java并发编程系列5 - 对象的共享》
  • 《Java并发编程系列6 - 同步工具类》
  • 《Java并发编程系列7 - 线程池基本知识》
  • 《Java并发编程系列8 - 多线程实战》
  • 《Java并发编程系列9 - 锁》

学习资料:

  • volatile:https://blog.csdn.net/u012723673/article/details/80682208
  • 并发编程资料:https://redspider.gitbook.io/concurrent/di-yi-pian-ji-chu-pian/2
  • 内存模型(一般般):https://blog.csdn.net/javazejian/article/details/72772461
  • 陈晓明:http://ifeve.com/java-memory-model-0/
  • spring非常好的文章:https://www.cnblogs.com/szlbm/p/5512931.html
  • 栅栏:https://blog.csdn.net/qq_38293564/article/details/80558157
  • 线程同步工具:https://blog.csdn.net/yjc0403/article/details/84912279
  • 线程池:https://blog.csdn.net/mu_wind/article/details/113806680

学习心得:

  • 学习周期会比较长,我是分2个阶段学习,先学习内存模型部分,再学习并发编程部分;
  • 最好结合书籍《java并发编程实战》来看,可以让你对并发编程有个整体的认识,其实这本书只是补充,对于你需要掌握的并发编程相关知识,里面的知识点可能只覆盖30%-40%;
  • 一定要动手去写Demo,不要只看不写,否则很容易忘记;
  • 最好是每看完一部分内容,能从你的项目中,找到类似的代码进行学习,这个印象更加深刻。(我最后是看完了我同事写的一个并发编程框架,后续如果让我自己写,我应该也能写出来)

Spring

这个不用我多说吧,我刚开始学习Java,感觉最头疼的就是这个Spring,里面一堆注解,看得我头都大了,难怪Java的学习成本比较高。

学习时间:5月25日 - 6月5日

学习内容:

  • 【Spring基础系列1】基于注解装配Bean
  • 【Spring基础系列2】很全的Sping IOC基础知识
  • 【Spring基础系列3】Spring常用的注解
  • 【Spring基础系列4】注解@Transactional
  • 【Spring基础系列5】Spring AOP基础(上)
  • 【Spring基础系列5】Spring AOP基础(下)
  • 【Java基础系列】Lombok常用注解

学习资料:

  • 菜鸟教程
  • 原理篇:https://zhuanlan.zhihu.com/p/29344811
  • 很详细的原理篇:https://www.jianshu.com/p/b60c30fdcc65
  • Configuration注解:https://www.cnblogs.com/cxuanBlog/p/11117039.html#%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5%EF%BC%9Abean-%E5%92%8C-configuration
  • transactional:https://blog.csdn.net/jiangyu1013/article/details/84397366
  • https://blog.csdn.net/mingyundezuoan/article/details/79017659
  • https://www.cnblogs.com/clwydjgs/p/9317849.html
  • Spring IOC知识点一网打尽:https://juejin.cn/post/6844903609067372558#heading-30

学习心得:

  • 先学习注解,将项目中遇到的常用注解全部给扫盲掉,除了Sprin g的注解,还有Lombok常用注解;
  • 主要掌握IOC和AOP知识,所以这个可以分2块来学习;
  • 一定要自己写Demo跑一下,否则就是白学了!!!
  • 学习过程中,比如学习某个注解,或者AOP,看完基础知识后,找项目中用到的地方,看使用姿势。

MyBatis

如果用到MySQL,或者其它DB,这个你是跑不掉的,哎,Java的框架,就是TM的多。

学习时间:6月6日 - 6月12日

学习内容:

  • 【MyBatis系列1】基础知识(上)
  • 【MyBatis系列1】基础知识(下)
  • 【MyBatis系列2】MyBatis与Spring整合
  • 【MyBatis系列3】MyBatis SQL执行流程
  • 【MyBatis系列4】MyBatis与Spring Boost整合

学习资料:主要看的菜鸟教程

学习心得:

  • 这个光看菜鸟教程,其实只能学到一些皮毛,最好是结合菜鸟教程,然后到网络去完善你的知识,比如掘金、知乎等;
  • 八股文部分还是需要掌握,可以让你对MyBatis更了解;
  • 不建议大家上来就看源码,可以稍微初步过一下别人写的博客;
  • 一定要写Demo!一定要写Demo!一定要写Demo!重要的事情说三遍!自己去集成MyBatis和Spring和后面的Spring Boost。
  • 最好的学习方式,当然还是项目啦,我学完基础部分,就开始去趴项目代码了,只要是MyBatis的部分,我都不放过。(小米中台有个地方用到MyBatis,涉及到各种接口的高深操作,我看了一天都没看懂,后面技能提高了,再回过头去看)

Spring Boost

又是TM的Java框架,以后谁再告诉我转技术栈影响不大,我要和他拼命。

学习时间:6月13日 - 6月20日

学习内容:

  • 【Spring Boot系列1】一文带你了解Spring Boot(上)
  • 【Spring Boot系列1】一文带你了解Spring Boot(下)
  • 【Spring Boot系列2】还在为配置文件注解头疼?一文带你全部搞定!
  • 【Spring Boot系列3】自动化配置详解
  • 【MyBatis系列4】MyBatis与Spring Boost整合

学习资料:

  • 教程:http://c.biancheng.net/spring_boot/
  • 一篇搞定:https://juejin.cn/post/6844904024286691335#comment
  • 非常好的一篇搞定的文章:https://juejin.cn/post/6844903984780541959#heading-2
  • 面试题:https://juejin.cn/post/6844904125709156359
  • 原理分析:https://juejin.cn/post/6854573218498347022
  • 很好的原理分析文章:https://blog.csdn.net/mnicsm/article/details/93893669
  • 非常全的流程解析:https://blog.csdn.net/hfmbook/article/details/100507083?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242

学习心得:

  • 先掌握框架的八股文知识,主要是框架的加载流程;
  • 实战部分主要掌握Spring Boost的配置部分,然后还有里面常用的注解;
  • 还是需要自己写Demo,MyBatis与Spring Boost整合,已经给你安排上了。
  • 这个就是个更抽象版的框架,建议只先掌握上述知识,后面项目中遇到相关知识,再深入学习。

Maven

这块内容不多,主要是项目管理部分,一周时间绝对够。

学习时间:6月20日 - 6月26日

  • 菜鸟教程
  • 教程:https://www.runoob.com/maven/maven-tutorial.html
  • 一篇搞定:https://juejin.cn/post/6844904021392654350#heading-18
  • 入门教程:https://juejin.cn/post/6844903543711907848#heading-16
  • 水文一篇:https://juejin.cn/post/6844903839435341832#heading-2

学习心得:

  • 先掌握基础知识部分,菜鸟教程足矣;
  • 找几个Java项目,看看pom.xml是怎么写的,然后自己再去研究一下,基本就OK了;
  • 后面还是跟着项目成长。

后续学习

  • 微服务框架:Dubbo + SpringCloud
  • WEB编程:SpringMVC + Servlert/JSP + Tomcat
  • 进阶学习:《JAVA编程思想》 + 《深入理解Java虚拟机》

学完这些,应该才能进入Java的中级水平,下半年估计需要继续在Java中卷了,不过应该不会按照目前的这种学习强度,更多的时间会投入到公司的项目中,虽然目前又回到一线,但还是希望能在公司有更长远的发展,光靠这些其实远远不够,以后还得继续往管理方向发展。

学习时间安排

这个非常重要,可以参考《发一篇水文,对自己的学习做一个总结》,如果你也能每天6点起床,每天坚持学习2个小时左右,无论哪个技术,相信你也能速成。

后记

距离上一篇水文《发一篇水文,对自己的学习做一个总结》,刚好一个月时间,这个算是第二篇水文吧,等我把后续需要学习的知识掌握的差不多了,就是我的第三篇水文了。

这周学习动力有些不足,一方面是因为自己的一些私事,平时比较忙,另一方面是在思考一些问题,希望这个周末能调整好心态,开启新一轮的学习。

欢迎大家多多点赞,更多文章,请关注微信公众号“楼仔进阶之路”,点关注,不迷路~~

楼仔

2021/07/03  阅读:82  主题:橙心

作者介绍

楼仔