博文首发地址:https://blog.virde.xyz

学习方法总结

只看博客文章学习,是不行的。

因为每个作者他在自己学习的时候,看了学习很多东西,但是他发的文章只是他自己学习的总结性文章。
看这种总结很容易忽略这个知识点里面的细节。不明所以然为什么作者得出这个结论。

所以,一定需要结合源码,结合自己的测试代码去看博客文章。自己动手写一写这个东西,为什么是这样的。
看源码,JDK是如何实现的。

很多东西,看别人说起来很高大上,其实深入源码一看,也就那么回事儿。
比如ThreadPoolExecutor里面有一个DiscardPolicy的拒绝策略,
说的是当线程池满了之后如何拒绝新线程加入,这个DiscardPolicy策略会把新加入的线程丢弃。
那么是怎么丢弃的?源码里面这个丢弃的方法是个空方法。如果不看源码,可能会想,JDK做了一些丢弃的工作。
其实并没有丢弃的工作,一个空方法就实现了,非常简单。


要专注于当前学习的内容

当我要学习线程池的时候,我就只关注线程池相关的东西。
遇到和它相关联,而自己也不是很了解的东西的时候,先放一放。或者记下来,等学完线程池再去了解它。

非系统性的学习(自学)很难有一个从头学到尾的切入点。
编程的学习尤其如此,当你学习A的时候,A可能用到了B的知识点,当你学习B的时候,B用到了C的知识点。
当你学习C的时候,C又用到了A的知识点。

如果不能专注于A,那么你会在ABC之间不断跳来跳去。

正确的做法应该是,专注的学习A,当牵扯到B的知识点,浅显的了解一下,足够学习A就可以了,等学完A之后,
再去学习B,逐个击破。


了解完一个知识点之后,可以通过结合实际使用提出问题去深入了解JDK

JAVA是层层封装的语言,很难完全的深入了解一个东西每一行代码的作用。
可以通过提出问题去有针对性的了解内部原理。

比如说HashMap是如何解决hash冲突的,resize之后数组下标会不会变化。
为什么key值可以均匀的分布在数组中,默认的阈值为什么是0.75,等等。

posted @ 2022-06-22 11:14  黑风风  阅读(35)  评论(0编辑  收藏  举报

博文首发地址:https://blog.virde.xyz