《Thinkig in Java》学习笔记.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Thinkig in Java》学习笔记

《Thinking in Java》学习笔记 1、程序设计就是对复杂度的管理,复杂度包括:待解决问题的复杂度和所依赖的机器的复杂度。正是这种复杂度的存在,导致了大多数项目的失败。并且据我所知,还没有哪个程序设计语言将主要设计目标放在“征服程序开发和维护过程中的种种复杂度”上。 (下面开始列举了其他语言的种种不足,几乎每本技术书的开篇就是王婆卖瓜的形式出现的,给读者点鼓励嘛,不要被厚厚的砖头般的书吓到。搞计算机的女生的好处是,晚上在你回宿舍的路上,不幸遇见歹人拦路打劫,你只需随便抄起一本书就能把他打个半死。好的技术书不仅能丰富知识,也是居家旅游、贴身自卫的最佳工具。C++本身就很复杂,用复杂的语言描述复杂的问题,对设计者和程序员的要求都很高。) 2、最令我印象深刻的是sun公司在设计Java时的目标:为程序员降低复杂度。好像是在说“我们关注于减少编写出健壮代码的开发时间和难度。”同等功能的C++程序,java只需要一半或者更少的时间。只凭这一点,就能省下大量的时间和金钱。 (这点确实是事实,Java的开发效率比别的语言高不少。我学过一段时间的C++,大概是世界上最复杂的语言吧,很痛苦。初学java时,感觉那个hello world 怎么这么复杂,后来就好了很多,并且不打算再学C++了。simple is good!听说硅谷那边java很热,因为稍微有点规模的公司都有自己的系统,java的跨平台特性导致了这帮家伙玩命地学java。) 3、我们不应该将java仅仅看作是一组特性的集合---有一些特性在孤立状态下没有任何意义。只有在考虑设计,而不仅仅是编码时,才能完整地运用Java的各个部分。而且要按照这种方式来理解Java,必须理解它所涉及的问题以及在程序设计时所伴随的问题。……按照这种方式,直到Java思想意识称为你最自然不过的语言。你需要在头脑中创建一个模型,以加强你对这种语言的深入理解;如果你遇到了疑问,就将它反馈到头脑中的模型并推断出答案。 (为什么这本书是很多人推荐的,学Java的首选教材?就是编程思想!也是我打算重温此书的原因之一。简言之:不仅要知其然,还要知其所以然。汉语比鸟语精炼得多。) 读书笔记《Thinking in Java》-第一章-07/10/13 1、所有编程语言都提供抽象机制。可以认为,人们所能解决的问题的复杂性直接取决于抽象的类型和质量。……汇编、C等所做的抽象仍要求在解决问题时要基于计算机的结构,而不是基于所要解决的问题的结构来考量。程序员必须建立起在机器模型和实际解决问题的模型之间的关联。建立这种映射是费力的,而且这不属于编程语言所固有的功能。 (早期的程序员都是很强的……) 2、面向对象方式使得程序员不再受限于任何特定类型的问题。这种思想的实质是:程序可以通过添加新类型的对象,使得自身适用于某个特定问题。因此,在阅读描述解决方案的代码的同时,也是在阅读问题的表述。所以OOP允许根据问题来描述问题。每个对象看起来像一台微型计算计---他有状态,也有操作…… (创建一个学生管理程序,首先最重要的类是Student,他可以有名字、学号、院系、班级等属性,并且可以计算每个学生的综合素质评分、打印各科成绩等等。一旦这些都描述好了,你就可以创建学生Student实例,对学生执行操作了。这就是OOP吧。) 3、面向对象的五个基本特征: A、万物皆对象。(Java中的原始数据类型就不是对象,但是这是出于对效率的权衡。再者说了,每个原始数据类型都有相应的包装器类型,这就把原始类型对象化了。) B、程序是对象的集合,它们通过发送消息来告知彼此所要做的。(通过“.”操作符。) C、每个对象都有自己由其他对象所构成的存储。(楼对象是由钢筋、水泥、砖头等等这些对象构成。) D、每个对象都有其类型。(可以通过反射机制实现动态的类型检查。) E、某一特定类型的所有对象都可以接收同样的消息。(传说中的多态了,通过父类的引用操作子类。) 4、面向对象程序设计的挑战之一就是,在问题空间的元素和解空间的对象之间创建一对一的映射。建立类,创建对象,然后操纵它们,这就是OOP的全部了。 (问题描述出来了,也就解决了。) 5、每个对象都有一个接口,也就是都只能满足某些要求,这些要求就是对象的接口定义的。 (听说有的java架构师只给出接口,然后程序员就开工了……没亲眼见到,不知是不是这样的。) 6、当试图开发或理解一个程序设计时,最好的方法是将对象想象为“服务提供者”,程序本身向用户提供服务,它通过调用其他对象提供的服务来实现这一目的。你可以创建,也可以从现成的代码库中寻找能够提供理想服务的对象。 (Java有一个几乎无所不包的类库,这个库还在不断地增大、改进。Java水平的高低指标之一就是你能否熟练地使用类库,快速地查找,并且正确地

文档评论(0)

书是爱的奉献 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档