黑马程序员技术交流社区

标题: 将近一个月的学习经历 [打印本页]

作者: nicholas_lzg    时间: 2019-3-7 15:18
标题: 将近一个月的学习经历
本帖最后由 nicholas_lzg 于 2019-3-7 15:21 编辑

不知不觉,学习Java已经有快一个月的时间了,在这这段时间里,我复习了自己在大学里学过并且遗忘了的知识,认识了一群新的朋友,感触良多。
  通过这一阶段的复习,有关Java的学习方法,我感悟到了很多学习方法和经验,比如:
1.多敲代码.
我大学四年学到的最珍贵的东西就是代码不敲就是不会,大学代码估计就敲了一两百个小时,游戏倒是打了上万小时,导致现在就快毕业了,对编程仿佛仍然一无所知.有时候看别人的代码能看懂,但是一旦让自己写就写不出,没有思路,每当手放在键盘上时,便会后悔自己为什么没有敲代码.
2.学会模仿.
在没有自己的思路的时候,通过看别人的代码是给自己的最好的思路,比如我想自己实现ArrayList,但是我并不明白底层的代码到底是如何实现的.这个时候老师就让我看源码,通过查看源码,我知道了ArrayList的底层是使用数组实现的,看上去能够无限在末尾添加节点只不过是个假象,每当length==size时,便会执行一个数组扩大50%的操作,当我用调试一步一步的进入ArrayList这个类,并且访问了和这个类相关的其他类,我似乎有点明白了当年的大牛的敲代码的思路,然后记住这个思路,最后再自己实现ArrayList这个代码.通过模仿源码,我对于ArrayList底层产生了比较深刻的理解.
3.细分问题.
一个复杂的问题必然是由一堆非常基础的一个个简单的方法组成的,只要思路清楚的把问题抽丝剥茧,就能一个方法,一个方法的去解决这个问题.比如我有一天看到了一道题,是约瑟夫环.这道题一开始并没有看懂,但是这道题的关键就在于如何形成一个环.只要发现了这一点,这道题就可以使用队列的思想去解决了.其他的问题也无非是具体代码如何实现罢了.
       4.举一反三
       对于编程题来说如何去做一道题,如何去实现一个功能,不同的思路却可能产生出一样的结果,虽然时间复杂度可能并不一样.做完一道题后,需要想想为什么要这样做,这样做有什么效果,这样做用到了什么技术,能不能够优化一下等等.虽然自己现在只是偶尔那么一两道题才会产生这种想法,但我觉得如果能够对题目,对于知识点举一反三,那么不仅能提高对本知识点的记忆的加深,还能够发现其他的思路,锻炼自己的思维,对自己有很多的好处.
       希望在后面的日子里面,能够继续努力学习,和大家共勉.






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2