博学,审问、慎思、明辨、笃行
读实用书时要提出的四个问题:
(1)整体来说,这本书到底在谈些什么?big what? 并没有改变多少。
(2)作者细部说了什么,怎么说的? small what? how?
(3)这本书说得有道理吗? 是全部有道理,还是部分有道理?why?
作者最终的目标,加上他建议的达成目标的方法--这要看你认为追求的是什么,以及什么才是最好的追求方法而定。
在什么范围,什么条件下适用,在什么范围,什么条件下不适用。要知道它能做什么,它不能做什么
(4)这本书跟你有什么关系? 理论联系实际
赞同一本实用性的书,确实需要你采取行动。 照着作者希望你做的方式来行动。How
行动:为达到某种目的而进行的活动。行动目标,行动方法,行动开始时间,结束时间,行动人,行动地点,行动方式。
学车/骑自行车:理论就是要做题,实践:就是要上车操练。
武术:主要是实践
厨艺:理论就是看菜谱,实践:按菜谱买菜,配菜,实际炒菜,品尝,调整
木匠/铁匠/建筑师:设计、实践,调整,在设计,在实践。
美容美发:
装修
裁剪
编程/软件工程/建筑工程在道的层次上很相近
最忌讳:1 没有目标/提不出问题,没有时间和资源限制,自己太放松,要有适当的紧迫感和压力感
2 重“看书”,轻“提问题,思考,讨论,实践” 有没有收获 关键看思考的深度是否能够表达出来,实践出的东西是否是可见的,并基于这个一个原型反馈不断改进
1 什么是容器?容器做什么用的? java容器放在内存中还是放在外存中呢?java如何使用内存的或内存管理?java有几种类型的容器,每一种容器主要做什么用途呢?
2 每一节说了什么,怎么说的?
3 这一章说的有道理吗? 是全部有道理,还是部分有道理? why要用容器?
4 这一章跟自己有什么关系?
赞同一本实用性的书,确实需要你采取行动。 照着作者希望你做的方式来行动。How
连接网络、连接数据库、读写文件、Spring、Hibernate、Struts启动过程中如何读写文件的呢?
计算机启动顺序及原理是什么?OS(Linux/Windows)启动加载原理是什么? DB(Oracle/Mysql)启动加载原理是什么? 应用服务器(Tomcat)启动原理?JVM启动原理?应用程序启动原理是什么?
实际操作(编写代码),做实验。
编程与开车,厨艺 有想通的地方,理论指导,以实践为主。
没做练习题:(3)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)(17)-(26)(27)(28)(29)(30)(31)()
本章涉及到得算法和数据结构:数据结构 数组、栈、队列、链表、递归、红黑-树、哈希表(但没包括图,串结构在String中):Array/List/Set/Queue/Map/......
(内存的)排序、查找:Arrays和Collections(但没包含外存排序、查找) 理清数据结构特性和算法思想从而可以帮助较好的使用
本章涉及到得编程思想及设计模式: 迭代器模式Iterator、适配器模式
本章涉及到比较好的工具:net.mindview.util.Stack
本章设计到得计算机理论知识:java内存管理
能力级别:不会(了解)——领会(理解)——熟练——精——通(融汇贯通)
第11章持有对象(容器基础研究) (研习:1 掌握层次:熟练)P252 练习参考P199
容器(数据结构):数组、List(按着插入的顺序保持元素)、Set(对于每个值只保留一个对象)、Queue(队列)和Map(某些对象与其他一些对象关联起来的关联数组)
11.1 泛型和类型安全的容器(研习:1 掌握层次:)P252
通过使用泛型,不仅知道编译器将会检查你放置到容器中的对象类型,而且在使用容器中的对象时,可以使用更加清晰的语法。
11.2 基本概念(研习:1 掌握层次:熟练)P255
Java容器类按用途划分两个不同的概念:
1)Collection:一个独立元素的序列,包含List(ArrayListLinkedList)、Set、Queue
2) Map: 键值对
11.3 添加一组元素(研习:1 掌握层次:熟练)P256
11.4 容器的打印(研习:1 掌握层次:熟练)P257
List(ArrayListLinkedList)、
Set(HashSet(最快的查找技术)TreeSet(按着结果升序排序)和LinkedHashSet(按着插入的顺序保持对象))、
Map(HashMap(最快的查找技术)TreeMap(按着结果升序排序)和LinkedHashMap(按着插入顺序保存键)同时还保留了HashMap的查询速度),就像一个简单的数据库。
11.5 ListP259
ArrayList:擅长随机访问元素,但在ArrayList的中间插入和删除元素时较慢。
LinkedList:在中间插入和删除元素快,顺序访问快,但随机访问相对比较慢。
11.6 迭代器P262
11.7 LinkedListP264
11.8 StackP266
11.9 Set P267
Set不保存重复的元素,Set具有与Collection完全一样的接口,没有任何额外的功能。实际上Set就是Collection只是行为不同。
Set是基于对象的值来确定归属性的。
HashSet 哈希算法,查询时间时间复杂度为:O(1)
TreeSet 将元素存储在红-黑树数据结构中,而HashSet是用的是散列函数。LinkedHashList也用了散列,维护了元素的插入顺序。
11.10Map P269
11.11QueueP272
LinkedList支持队列的行为,并且它实现了Queue接口。
11.11.1 PriorityQueue 队列规则
11.12Collection和IteratorP275
11.13Foreach与迭代器P277
11.14总结P281
第11章持有对象--java编程思想中文第四版
《Thinking in Java》热门书评
-
《Java编程思想》阅读指南
223有用 8无用 Yuguo 2008-09-23
文:@yuguo//08年9月26日更新终于决定为这本心目中五星的书籍写一篇评论,因为目前的普遍舆论对这本书有一些误读,这些误读可能会误导初学者。我只想尽量客观的提出自己的观点,也许这不太可能,因为我认为这本书是五星的,那么多少我会作者持有偏好。那么请花一些时间阅读本书,也许你也会喜欢上Bruce ...
-
写给没有基础却想干JAVA的学弟学妹
72有用 0无用 BAY 2014-04-27
如题。。先分享三句话。“《Java编程思想》这本书很好,但还不适合你们现在去读,在合适的时候做合适的事,OK?”一心想速成的我并没有把教学视频中的这句小插曲放在心上,只是依稀记住了这本书。。然后快乐地学着速成JAVA。“你学这些框架,做这种项目有什么用?你知道大连软件园(外包公司居多)里有多少人写得...
-
基础?
54有用 16无用 学习机器人 2010-09-18
我it行业工作10年,这本书我读了8遍,对于那些一遍都读不下来的,一张口要8K-15K的程序员来说,你真的认为你值那么多,坑爹呢吧Update:以上是过去的一些评论,那时的认知还存在偏差,而且有些激进。其实,读书是为了超越自己,而非凌驾于某人之上,更没有资格对任何人、任何现象妄加评论。如果重新评论应...
-
不适合初学者
44有用 10无用 oya.aya 2006-04-07
很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识...
-
初级程序员读书方法论
33有用 1无用 hossN 2011-05-13
这本书购于去年七月,八百多页。纸张大,印刷密度大,不到600页的《C++ Primer》就够厚了,这本更是让人望而生畏。我本专业并不是软件开发,属于半道出家,一提程序就头疼,去年买了这本书后就束之高阁,直到今年年初认为本来程序就烂,买了书还不读,再这么下去就是自取灭亡,于是制定了详细的读书计划,每天...
书名: Thinking in Java
作者: [美] Bruce Eckel
出版社: Prentice Hall
出版年: 2006-2-20
页数: 1150
定价: USD 74.99
装帧: Paperback
ISBN: 9780131872486