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

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

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

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


【END】

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Activity和Service交互

2019独角兽企业重金招聘Python工程师标准>>> As discussed in the Services document, you can create a service that is both started and bound. That is, the service can be started by calling startService(), which allows the service to run indefinitely…

Redis从入门到精通|干货篇

点击上方“Java中文社群”,选择“设为星标”终身学习者,以编程为乐!来源:http://rrd.me/eDY9S常用的 SQL 数据库的数据都是存在磁盘中的,虽然在数据库底层也做了对应的缓存来减少数据库的 IO 压力。由于数据库的缓存一…

最重要的7个Drupal内核模板文件

Drupal内核拥有40多个模板文件&#xff0c;其中最重要的有7个。它们组成了页面的主要部分&#xff0c;在定制Drupal主题时经常要用到。因此列表如下供大家参考。 模板名原始位置用途html.tpl.phpmodules/system打印HTML文档的结构。包括了<head>标记中的内容&#xff0c;…

Java中的13个原子操作类

点击上方“Java中文社群”&#xff0c;选择“设为星标”终身学习者&#xff0c;以编程为乐&#xff01;来源&#xff1a;https://www.iteye.com/blog/xiaoheng-2509522atomic 包中的 13 个类&#xff0c;属于 4 中类型的原子更新方式.原子更新基本类型原子更新数组原子更新引用…

Redis中的键值过期操作

1.过期设置 Redis 中设置过期时间主要通过以下四种方式&#xff1a; expire key seconds&#xff1a;设置 key 在 n 秒后过期&#xff1b;pexpire key milliseconds&#xff1a;设置 key 在 n 毫秒后过期&#xff1b;expireat key timestamp&#xff1a;设置 key 在某个时间戳…

天意PE维护系统 V2021.7.16版

天意PE U盘维护系统是一款用于系统维护和装机的U盘PE系统&#xff08;U盘启动盘&#xff09;&#xff0c;采用双PE模式,支持UEFI双启动&#xff0c;集成常用工具的维护软件&#xff0c;集成SRS驱动&#xff0c;新版更加上了NVME硬盘的支持&#xff0c;天意U盘维护系统纯净、稳定…

Redis持久化的几种方式——深入解析RDB

Redis 的读写都是在内存中&#xff0c;所以它的性能较高&#xff0c;但在内存中的数据会随着服务器的重启而丢失&#xff0c;为了保证数据不丢失&#xff0c;我们需要将内存中的数据存储到磁盘&#xff0c;以便 Redis 重启时能够从磁盘中恢复原有的数据&#xff0c;而整个过程就…

【LeetCode】148. Sort List

Sort List Sort a linked list in O(n log n) time using constant space complexity. 要求时间复杂度为O(nlogn)&#xff0c;那么不能用quickSort了&#xff08;最坏O(n^2)&#xff09;&#xff0c;所以使用mergeSort. 通常写排序算法都是基于数组的&#xff0c;这题要求基于链…

WordPress网站搬家教程(根目录程序+ MySQL数据库)

WordPress博客网站怎么搬家到新的服务器上&#xff1f;WordPress搬家无非是两点&#xff0c;即WP程序文件和数据库&#xff0c;具体什么系统不用考虑&#xff1a; 3分钟详解WordPress搬家教程 本文新手站长网关于WordPress搬家教程是帮大家缕清思路&#xff08;参考&#xff1…

Redis持久化的几种方式——RDB深入解析

点击上方“Java中文社群”&#xff0c;选择“设为星标”终身学习者&#xff0c;以编程为乐&#xff01;Redis 的读写都是在内存中&#xff0c;所以它的性能较高&#xff0c;但在内存中的数据会随着服务器的重启而丢失&#xff0c;为了保证数据不丢失&#xff0c;我们需要将内存…

配置Debian11服务器允许root用户远程SSH登录

全新安装系统后&#xff0c;默认情况下将禁用Debian Linux上的root登录。当您尝试以root用户身份登录Debian11 Linux服务器时&#xff0c;访问将被拒绝。要在Debian Linux系统上为root用户启用SSH登录&#xff0c;您需要首先配置SSH服务器。 0.首先安装SSH 注意&#xff1a;如…

带你深入浅出的分析 HashTable 源码

Hashtable 一个元老级的集合类&#xff0c;早在 JDK 1.0 就诞生了&#xff0c;今天小编想和大家一起来揭开它的面纱&#xff01;01、摘要在集合系列的第一章&#xff0c;咱们了解到&#xff0c;Map 的实现类有 HashMap、LinkedHashMap、TreeMap、IdentityHashMap、WeakHashMap、…

Debian11服务器系统默认不存在sudo命令的解决办法

1.切换到root用户&#xff0c;安装vim&#xff0c;修改镜像源文件 apt-get install vim vim /etc/apt/sources.list注释掉原有的内容&#xff0c;添加如下阿里云的镜像源 deb http://mirrors.aliyun.com/debian/ bullseye main contrib deb-src http://mirrors.aliyun.com/…

Redis使用不当导致应用卡死

作者&#xff1a;小木来源&#xff1a;http://rrd.me/ezfTj首先说下问题现象&#xff1a;内网sandbox环境API持续1周出现应用卡死&#xff0c;所有api无响应现象刚开始当测试抱怨环境响应慢的时候 &#xff0c;我们重启一下应用&#xff0c;应用恢复正常&#xff0c;于是没做处…

阿里巴巴Linux开源镜像站 华为Linux开源镜像站 Linux宝塔面板

学习Linux系统和用Linux系统作服务器时&#xff0c;推荐Linux从Linux系统开源镜像站下载&#xff0c;国内源下载速度快&#xff0c;Linux系统可选择方案多&#xff01; 1.阿里巴巴开源镜像站&#xff1a; https://developer.aliyun.com/mirror/ 2.华为开源镜像站&#xff1a; …

阿里Java开发手册——如何优化数据库?

作者&#xff1a;杨冠宝/高海慧来自&#xff1a;码出高效 Java 开发手册数据库作为服务器端最为最为昂贵的资源之一&#xff0c;如果使用不当常常会导致系统卡顿或系统崩溃&#xff0c;那如何来优化数据库呢&#xff1f;下面来看阿里巴巴《Java开发手册》给出的优化方案。1 建立…

虚拟机VMware Workstation安装Linux服务器Debian11系统详细教程

虚拟机VMware Workstation安装Linux服务器Debian11系统详细教程如下&#xff1a; 准备好&#xff1a; 1.安装好虚拟机VMware Workstation 2.从Linux开源镜像下载的debian11镜像系统 从创建新的虚拟机开始 安装完系统重启进入系统&#xff0c;首先要做的是更新为阿里云的…

借力 Docker ,三分钟搞定 MySQL 主从复制!

hello 各位小伙伴大家好&#xff0c;今年 5 月份的时候&#xff0c;松哥和大家聊过如何搭建 MySQL 主从复制&#xff1a;提高性能&#xff0c;MySQL 读写分离环境搭建(一)提高性能&#xff0c;MySQL 读写分离环境搭建(二)不过很多小伙伴反映在 Linux 中安装 MySQL 比较费劲&…

阿里云服务器Debian11系统安装Linux宝塔面板 搭建WordPress个人博客

阿里云服务器可以使用Debian11镜像系统&#xff0c;在安装Linux宝塔面板&#xff0c;配置LNMP(LinuxNginxMySQLPHP&#xff09;后&#xff0c;再搭建WordPress个人博客。 一、安装Linux宝塔面板&#xff1a; https://www.bt.cn/ 复制debian安装linux宝塔面板命令&#xff0c…

面试官:聊一下你对MySQL索引的理解?

作者&#xff1a;浪人来源&#xff1a;http://t.cn/AiKmcEefMySQL索引&#xff1f;这玩意儿还能简单聊&#xff1f;明显是在挖坑&#xff0c;幸好老夫早有准备&#xff0c;切听我一一道来。 一、索引是什么?索引是帮助MySQL高效获取数据的数据结构。二、索引能干什么?索引非常…