zoukankan      html  css  js  c++  java
  • 学习方法分享 | 从JVM说起,聊聊Java的学习和复习!

    我们在学习的时候,多多少少都会遇到这么一个问题:

    “学了就忘”

    之前也聊过这个问题,在我看来,这个问题是个共性问题,尤其初学者,更是不知所措,倍受打击,那么,为啥会学了就忘呢?

    我根据自己的学习经验,大致总结以下三点原因:

    1. 知识没有用起来
    2. 没有及时复习
    3. 没有反馈输出

    当然,导致我们学了就忘的原因不止如此,而且根据每个人的学习状况不同,可能远远不止如此,但是正如这个问题是个共性问题一样,我们在这里只说普遍性原因,可能很多人会因为出现上面三个原因导致学习效果不理想。

    在此之前,你可能听过别人跟你说,学习编程要多实践,不能只是看书或者听视频,要实际行动起来,动动手,敲敲代码,很多初学者也都知道,你看明白或者听明白跟你能上机自己敲出来完全是两码事,到了后期可能又会有跟你说,多多实战,其实这些都是再告诉你:

    “学了知识,如果不及时用起来,时间久了就会忘得差不多了,想要记得牢固,关键要把知识用起来”

    说到这里,可能有人会说了,这个我知道,比如说像框架类的知识,就拿Spring来说吧,这个框架很重要,我学了之后知道要实战一下才会学的更好,事实上我也正是这么做的,不过像一些其他的知识好像就不这么回事,比如说Java虚拟机吧,这个属于Java高阶知识吧,初学者比较难啃,而且这类知识点找工作面试是常客啊,这个真的是学了忘,忘了学,我学的时候也想能不能找个实战项目练习下,这样学的更加牢固,可是这些知识初学感觉很多都是概念性的东西,找不到实际应用啊。

    确实有这方面的问题,那么像这样的知识该怎么学呢?学了总忘怎么办呢?

    我也有这样的困惑,但是通过我自己这样的做法,我发现实际情况改善了很多,什么方法呢?

    先说下背景,我学过JVM,但是时间长了,自己感觉跟没学一样,忘得差不多了,相信很多人都有这样的感受,那该怎么做呢?

    首先,我会新建一个空白思维导图,然后就开始想,使劲的去回想关于Java虚拟机的知识,因为之前学过这方面的知识,虽然猛地一想,感觉自己忘得差不多了,但是冷静下来,细细回想还是能想起来很多的关键词的,于是,我开始了思维导图的创建。

    就这样的一步步的回想,首先从最简单的,遇到Java虚拟机,那就是首先要搞明白什么是Java虚拟机了,好,新建一个节点,写上“什么是JVM?”,有了这个问题之后,我就试着去回答这个问题,在去回答这个我问题的过程中,我突然又想到了Java的跨平台的原理,紧接着又想到当时在解决这块时,自己对编译和解释比较困惑,这些都是知识点,统统新建节点记下来。

    然后我继续回想,记得之前自己对这几个概念很模糊:

    1、Java内存结构
    2、Java对象模型
    3、jvm内存结构
    4、jvm内存模型

    于是又记下新的节点,对这几个自己比较有印象的是jvm内存模型,当时花了很多力气学习,经过自己的不断努力,自己又想到了关于内存模型的一些知识点,比如说volatile关键字,重排序和锁之类的。

    就顺着这个思路,一个知识点引起另外一个知识点,发现自己能够回想起来的越来越多了,比如后续的堆栈问题,还有很重要的垃圾回收机制,也就是GC,GC又会牵涉出算法和收集器这些知识,然后还有类加载的问题,对,还有虚拟机的性能调优等等。

    就这样,经过自己的不断回想,慢慢的,一张思维导图就出现了

    在这里插入图片描述

    看到这个导图,我自己都惊讶了,本来觉得自己忘得差不多了,没想到还能想起来那么多,当然,这些只是关于Java虚拟机知识的冰山一角,不过,这些对我学习来说就足够了,看着这个图,我再试着去回想每一个知识点或者问题的答案,发现有些自己还能说出来个一二三四,但是有些就比较模糊了,于是乎,对于这块的知识点,自己就发现了属于自己的盲点或者难点。

    人呐,最怕的就是不知道自己哪里出了问题,因为不知道所以即使想努力也不知道朝哪个方向使劲啊,既然现在知道自己在JVM这块的薄弱之处,那就花时间去弥补,去学习吧。

    当然,自己这样回想出来的肯定是缺胳膊少腿的,不过我们可以找一些专业书籍来对照,或者网上搜搜相关面试题可别人的总结,把那些是jvm的重点但是咱们没想起来的添加上去,然后再重点去学习这些之前没有想起来的。

    这既是查漏补缺,也是强化记忆!

    当你完成了上面的学习之后你就可以歇歇了,等过个几天,有空了,再新建一个思维导图,继续来,你要相信,你回想的思维导图会越来越好的。

    这样的方法好吗?实际上现在很大一部分人的做法是觉得自己忘了,就拿出自己之前的笔记,翻翻看看,这就是很多人的复习,也算是学习吧!

    倒也不是说这样不好,只是效果偏差,在《知识大迁移》和《学习之道》中都有提过,不要过多的在书上标记内容,因为很多人都是标记了重点,然后回过头来看这些标记复习,经研究发现,这样的效果并不好,在《学习之道》中花了很大的篇幅去解释一个概念**“提取练习”**,它的核心就是推荐我们去回想内容,这样的学习效率是比较高的,感兴趣的可以去看看这两本书。

    以上就是我现在对Java的学习和复习采用的一个方法,灵感大多来源《学习之道》,其实不单单是Java虚拟机这类的知识,我发现很多知识的学习和复习都可以这样来干,如果你仔细想想,你会发现,它很好的间接的解决了以下的问题:

    1、知识没有及时复习
    2、没有反馈输出
    3、知识没有用起来

    可能有些人不明白了,这怎么解决“没有反馈输出”这个问题了,当然啦,当你了解到自己的盲点和难点,你肯点会花时间去学习,然后会自己思考,会记笔记,说不定还会写一些博客分享出去,这不就是你的输出嘛。

    那有些人又不明白了,“知识没有用起来”呢?

    大家可以看我回想的导图左上角有一个关于Java内存泄漏的,有让写出会造成堆内存,栈内存和方法区溢出的程序,这个不就可以敲起来了嘛,然后就会牵涉到性能调优,像类加载这块,也可以敲起来啊,这不都是“用”?

    那么,你再想,这不就是解决了我们“学了就忘”这个大问题嘛?

    最后再说一句,其实有的时候你会发现,学习不难,你只是缺少一个好的方法和你的实际行动!

    好了,就到这了,个人的一点小经验,希望对你有用!转发分享都是真爱!

    欢迎关注我的公众号,原创经验大分享!

    在这里插入图片描述

  • 相关阅读:
    uva 408 Uniform Generator
    Java实现 蓝桥杯VIP 算法提高 栅格打印问题
    Java实现 蓝桥杯VIP 算法提高 栅格打印问题
    Java实现 蓝桥杯VIP 算法提高 栅格打印问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 打水问题
    Java实现 蓝桥杯VIP 算法提高 不同单词个数统计
    Java实现 蓝桥杯VIP 算法提高 不同单词个数统计
  • 原文地址:https://www.cnblogs.com/ithuangqing/p/12113612.html
Copyright © 2011-2022 走看看