我们在学习的时候,经常会遇到这样一个问题:

「学完就忘」

这个问题大部分人都会遇到,那么我们今天就来聊聊,为啥会学了就忘呢?

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

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内存泄漏的,有让写出会造成堆内存,栈内存和方法区溢出的程序,这个不就可以敲起来了嘛,然后就会牵涉到性能调优,像类加载这块,也可以敲起来啊,这不都是“用”?

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

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

好了,就到这了,个人的一点小经验,希望对你有用!


【END】

关注下方二维码,订阅更多精彩内容

从JVM入手,聊聊Java的学习和复习!相关推荐

  1. 【week5】JAVA语言学习及复习

    目录 JAVA语言复习 一.JAVA语言的历史及特点 二.JAVA开发环境配置 三.JAVA语言基本语法 四.JAVA变量类型 五.方法.类.对象.接口和函数 JAVA语言复习 常常听到前辈们和许多大 ...

  2. 密码锁 java接口_从synchronized和lock区别入手聊聊java锁机制

    写这篇文章之前,我去百度了一下啥叫锁,百度百科上写道:置于可启闭的器物上,以钥匙或暗码开启.确实我们一般理解的锁就是门锁,密码锁,但是在计算机科学中,锁又是啥,说实话,这个问题我也思考了很久,也没法很 ...

  3. Java虚拟机学习(8):查看JVM参数及值的命令行工具

    查看JVM各个参数值方式 1. HotSpot vm中的各个globals.hpp文件  查看jvm初始的默认值及参数 globals.hpp globals_extension.hpp c1_glo ...

  4. java虚拟机学习-JVM调优总结-新一代的垃圾回收算法(11)

    java虚拟机学习-深入理解JVM(1) java虚拟机学习-慢慢琢磨JVM(2) java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制 java虚拟机学习-JVM内存管理:深 ...

  5. 深入理解JAVA虚拟机学习笔记(一)JVM内存模型

    摘要:   上周末搬家后,家里的宽带一直没弄好,跟电信客服反映了N遍了终于约了个师傅明天早上来迁移宽带,可以结束一个多星期没网的痛苦日子了.这段时间也是各种忙,都一个星期没更新博客了,再不写之前那种状 ...

  6. JVM整体知识体系深度学习__JVM与Java体系结构【持续更新】

    JVM整体知识体系深度学习 一.JVM与Java体系结构. 前言 是否遇到过一下问题. 运行的线上系统突然卡死,系统无法访问,甚至直接OOM[OutOfMemory 内存溢出] JVM GC问题 新项 ...

  7. java 获取泛型_聊聊Java泛型擦除那些事

    >版权申明]非商业目的注明出处可自由转载 博文地址:https://blog.csdn.net/ShuSheng0007/article/details/89789849 出自:shushen ...

  8. 敞开心扉,一起聊聊Java多线程

    目录 敞开心扉,一起聊聊Java多线程(结尾有福利~) 一.线程的实现方式 1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法 3.实现Callable接口重写run ...

  9. Java工程师学习指南(2019最新版)

    写过一个Java工程师学习指南,我把它分为了四个部分,第一步是打好Java基础,掌握Java核心技术,第二步是掌握Java Web技术栈,能够做一些项目,第三步是掌握Java方面的进阶技术,包括网络编 ...

最新文章

  1. 2019年上半年收集到的人工智能AutoML干货文章
  2. Python:glob模块
  3. 【Java】Junit、反射和注解的笔记
  4. linux 自动安装系统,cobbler 自动安装linux系统
  5. sqlserver 清除日志
  6. 【Linux】解决Linux上解压jdk报错gzip: stdin: not in gzip format
  7. 在Jenkins平台上运行Jmeter
  8. rest_framework 权限功能
  9. java可不可以写挂_用Java怎么写呀???我怕是java要挂了,太艰难了
  10. 财务报表分析-损益表,资产负债表,现金流,回报率
  11. 宝塔php爬虫无头浏览器,爬虫利器selenium和无头浏览器的使用
  12. big类型和double类型
  13. C1驾照到期更换,驾照异地入迁,摩托驾驶证报名,记录
  14. 航班延误来领钱,信用卡航班延误险最全攻略(2018年版)
  15. 二维码在线生成接口API
  16. 微信小程序特殊效果合集第一期
  17. 两道类似的概率期望题目
  18. java线程报时代码_什么?一个核同时执行两个线程?
  19. kafka-分区重分配及相关源码分析
  20. Python爬虫——爬取股票信息生成csv文件

热门文章

  1. 3090显卡 torch.cuda.is_available()返回false的解决办法
  2. Java并发篇_乐观锁与悲观锁
  3. Frequent values【线段树】
  4. ExtJs 备忘录(4)—— Form表单(四) [ 数据提交 ]
  5. CSS 字体(font)实例
  6. Apache cxf JaxRs基本应用
  7. Ant 风格路径表达式
  8. js中div显示和隐藏钮为什么页面总是跳一下到最上面
  9. Unity3D调用摄像头显示当前拍摄画面
  10. vim高级技巧(split)_小花_新浪博客