学习java问题思考——怎样学好java
最近开始学习Java,但总是感觉不得其道,让我很迷惑,之前,我认为能熟练写出各种算法,如八种排序,就能很开学好Java,但结果不然,仍寸步难行。昨天无意中阅读了《Thinking in java》获益匪浅(虽然未读完)。以下是我体会:
第一、在态度上,过于浮躁,想尽快做项目,缺乏一个长期的规划,虽然每天也制定当天的学习计划,但作为自学,很多想法都是不科学的。另外,总是不自信,喜欢与他人类比,如,为什么我同学和我同样基础,就能边做项目,边学编程,很快就能上手,而我现在看jdk_api帮助文档还存在问题。思来想去,过于急功近利。
第二、正如《Thinking in java》所说,作为java新手来说,如果能理解每一个细节,那么一般会产生更大的学习兴趣。而假如他们一开始就被要解决的
问题的深度和广度所震惊,那么一般都不会收到很好的学习效果。而我恰恰相反,很不屑于简短实例,一直想解决现实问题,不太在意刚开始对每个细节的理解,期望在以后的编程中边用边查看。
第三,编程思想未能很好的转变成oop,未能真正深刻理解“一切事物皆对象”,还错误地认为编程就是编程,无法做到自顶向下的组织框架,然后自下而上的实现各个方法。看待问题时一个问题,永远还是一个问题,不会还是不会。欠缺庖丁解牛的战略眼光,一上来就是编程。无法感受到面向对象编程的巧妙之处,也未能享受到oop的事半功倍的易用性。具体说构建一个新类,首先不是编程,而是如何组织“对象”。
第四,具体方面,通过《Thinking in java》让我明白什么是iterator迭代器,其实汉语迭代我就不是很懂,一直以来都未能对iterator达到全面认识和理解,如书中所说,
单选定函数的功能是非常有限的。如果想对集合中的
一系列元素进行操纵或比较,而不是仅仅面向一个,这时又该怎么办呢?
办法就是使用一个“继续器”(Iterator),它属于一种对象,负责选择集合内的元素,并把它们提供给继
承器的用户。作为一个类,它也提供了一级抽象。利用这一级抽象,可将集合细节与用于访问那个集合的代
码隔离开。通过继承器的作用,集合被抽象成一个简单的序列。继承器允许我们遍历那个序列,同时毋需关
心基础结构是什么——换言之,不管它是一个矢量、一个链接列表、一个堆栈,还是其他什么东西。这样一
来,我们就可以灵活地改变基础数据,不会对程序里的代码造成干扰。
最后,我希望我的体会能对大家有所帮助。