Start from the JVM, Java learning to talk and review!

When we learn, more or less you will encounter such a problem:

"Learn to forget."

Before also talked this problem, in my opinion, the problem is a common problem, especially for beginners, is at a loss, been hit, then why would learn to forget it?

According to my own learning experience, roughly summarizes the following three reasons:

1, with no knowledge of them

2, there is no timely review

3, no feedback output

Of course, lead us to learn to forget the reason more than that, and according to each person's different learning situation, may be far more than that, but as this problem is a common problem, as we say here only universal reason, many people may because of the emergence top three causes of learning is not ideal.

Prior to this, you may have heard someone tell you that learning programming to more practice, you can not just read a book or listen to the video, to practical action, moving hands, knocked on the code, many beginners know, you see, hear or understand can you understand now knock themselves out of the machine is totally different, at a later stage may well have to tell you, a lot of combat, in fact, these are'll tell you:

"Learn the knowledge, if not to use them, over time will forget about it, I want to remember firmly, put the key knowledge with them."

Here, some people may say, this I know, for example, like intellectual framework classes, Spring Take for instance, the framework is very important, I learned to know better after what will be real science, facts on what I did, but it seems like some other knowledge is not the case, for example, the Java virtual machine it, the higher-order knowledge of it belongs to Java, beginners more difficult to chew, and such knowledge to find a job the interview is a frequent visitor ah, this really is to learn to forget, learn to forget, when I learned also want to be able to find a project under actual practice, so learn more firmly, but this knowledge beginner feel a lot of things are conceptual can not find practical application ah.

Do have this problem, then knowledge like how to learn it? Learn forgetting how to do it?

I also have this confusion, but such an approach by myself, I found that the actual situation improved a lot, what methods?

Let me talk about the context, I learned JVM, but a long time, I felt myself did not learn the same, almost forgotten, I believe many people have such feelings, then how to do it?

First, I will create a new blank mind map, and then began to think, straining to recall knowledge of the Java virtual machine, because the school had this knowledge before, though suddenly I thought, feeling almost forgotten, but calm down, carefully recall or can think of a lot of key words, so I started to create a mind map.

Such a step would recall, first of all, from the simplest, encountered Java virtual machine that first wants to understand what is the Java virtual machine, well, create a node, write "What is the JVM?", Has been after this question, I will try to answer this question, the answer to my question of process, I suddenly thought of the principle of cross-platform Java, and was followed by another thought in solving this, and its own compiler explain more confused, these are the knowledge, all the new node down.

Then I continued to recall, remember these few concepts before their own very vague:

1, Java Memory Architecture

2, Java object model

3, jvm memory structure

4, jvm memory model

So they write down the new node, these few have the impression that she was more jvm memory model, then spent a lot of effort to learn, through their continuous efforts, but it is thought some knowledge about the memory model, such as volatile keyword, reordering and locks and the like.

Along the way it is, a knowledge lead to another knowledge, can find themselves more and more in retrospect, such as follow-up of a stack problem, there is a very important mechanism for garbage collection, which is GC, GC will involve the algorithm and the collector knowledge, and then there is the issue of class loading, right, as well as virtual machine performance tuning and so on.

In this way, through their continuous recall, slowly, a mind map appeared

640?wx_fmt=png

See the maps, I was surprised, and had felt almost forgotten, I did not expect to think of it so much, of course, these are just tip of the iceberg with respect to the knowledge of the Java virtual machine, but these for me to learn it enough, looked at the map, I will try to recall the answer to every problem or knowledge, you can still find some say 1234, but some are more blurred, and thus, for this of knowledge, and that they found a blind spot or the difficulties of their own.

Pathwalker, fear is not know what went wrong, because they do not want to know even if efforts do not know which direction hard ah, now that the JVM know the weaknesses of the piece, it would take the time to make up , to learn it.

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

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

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

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

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

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

1、知识没有及时复习

2、没有反馈输出

3、知识没有用起来

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

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

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

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

One final remark, in fact, sometimes you will find that learning is not difficult, you just lack a good way and your action!

Well, this, and a little personal experience, I hope useful to you! Forwarding share is true love!

Guess you like

Origin blog.csdn.net/qq_36903042/article/details/102752081