首页 Java编程思想读书笔记

Java编程思想读书笔记

举报
开通vip

Java编程思想读书笔记Java编程思想读书笔记 (使用时请双击此处删除页眉文字) 豆丁 教育百科为您倾心整理,谢谢使用 Java编程思想读书笔记 这是一份试图提纲挈领的读书笔记,《java编程思想》这本八百多页的书娓娓道来地包含了太多细节,这对读者是非常贴心的,我也强烈建议细细读这本书,如果你希望在短时间内学会java这种语言,那么这本书不是最好的选择,你可以看看谭浩强系列。我把看这本书的过程中,个人觉得每一章中最重要的思想、用整理在这里,希望自己回顾的时候有所参照和提高。也希望大家带着同样的目的来看本篇读书笔记。 第一章 对象...

Java编程思想读书笔记
Java编程思想读书笔记 (使用时请双击此处删除页眉文字) 豆丁 教育百科为您倾心整理,谢谢使用 Java编程思想读书笔记 这是一份试图提纲挈领的读书笔记,《java编程思想》这本八百多页的书娓娓道来地包含了太多细节,这对读者是非常贴心的,我也强烈建议细细读这本书,如果你希望在短时间内学会java这种语言,那么这本书不是最好的选择,你可以看看谭浩强系列。我把看这本书的过程中,个人觉得每一章中最重要的思想、用整理在这里,希望自己回顾的时候有所参照和提高。也希望大家带着同样的目的来看本篇读书笔记。 第一章 对象导论 比起过程型语言编写的程序,用面向对象语言编写的程序更加简单、易于理解、可复用。《c++编程思想》里也有这一章,是一个抛砖引自己的玉的章节,不明白可以跳过,回头再看。 第二章 一切都是对象 java语言里面,一切都是对象,并且程序员是通过引用来操纵对象。一个简单的例子,非常轻松地让读者进入java的世界。需要注意的是java数据会储存在5个不同的地方:寄存器、堆栈、堆、常量存储、非ram存储,用new创建的一般对象都放在堆中,而特殊的基本对象放在堆栈中,如果想把基本对象也放在堆中,需要包装基本类型。 第三章 操作符 java中的操作符语法类似于c,所以学习起来一点困难也没有。要特别注意两个比较大的整数相加或者相乘的时候的溢出问题,用long或者biginteger解决这个问题。 第四章 控制执行流程 我想起《pointer on c》这本书第一章就有这一句话,本书适合那些希望迅速学习一门新语言而不是被“为什么if和for很重要”的弱智问题耽搁进度的读者。呵呵,这一章很不厌其烦地介绍了运算、操作符优先级、类型转换、选择循环等基本特性,有c或者c++编程经验的读者可以大概浏览一下。 (使用时请双击此处删除页眉文字) 豆丁 教育百科为您倾心整理,谢谢使用 第五章 初始化和清理 关于初始化: 1.初始化很重要,一定不要忘记。而且java编译器会很好的防止使用未初始化数据的意外,这是比c和c++更优的地方。 2.编译器初始化的顺序为: a.类首次加载的时候,有关静态初始化的所有动作都会执行。 a1.类的加载包括首次创建该类型的对象,或者该类的静态方法/静态域首次被访问 a2.静态域的初始化在一切初始化之前,即静态变量散布在代码不同的地方,它们也会在任何方法(包括构造器)调用之前被初始化 b.当用new calssname()创建对象的时候,会在堆上开辟足够的存储空间,这块存储空间被清零,然后执行字段的初始化动作。(这里的字段初始化都是非静态的,因为静态的变量已经在a中执行完毕,而且静态变量存储在不同的地方,静态数据只占用一份存储空间) c.执行构造器 关于清理 c++关于清理的部分包含很大不确定性。目前需要知道的事情是,正常情况下,我们是不需要调用finalize方法的,而且垃圾回收区会自动回收不再使用的对象,同时我们需要自己注意一些需要关闭的文件。 需要注意的是,用=对数组进行“赋值”的时候,实际上是引用的传递,就是说,二者指向同一堆。 第六章 访问权限控制 关于包 你应该有一个自己的域名,这样发布你的java程序的时候,就可以将你的包名设置为你的域名倒转。想要正确让包工作,要正确设置classpath,对于新手来说,这的确是一个挑战。我当初就难到了。 关于访问权限修饰词 值得注意的是,如果两个编译单元放在同一个 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 下并且都没有设置 (使用时请双击此处删除页眉文字) 豆丁 教育百科为您倾心整理,谢谢使用 包名的话,他们对于对方都是拥有包访问权限的。访问权限修饰词是修饰方法和数据,而不是类。类只有两种访问权限,包访问权限或public访问权限。默认为包访问权限。如果不希望其它任何人对该类拥有访问权限,可以把所有的构造器设置为private。但是有一个例外,可以通过该类自己的static成员内部创建(于是就有了工厂设计模式和单例设计模式)。 第七章 复用类 有三种方法复用类:组合,继承,代理。 组合即是在新的类里面放上已经定义的类的对象,然后通过调用它的方法来实现自己的功能。 继承是通过extends关键词继承某一父类,这样就能访问父类的所有public方法(因此为了继承,一般的 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf 是将父类的所有数据成员都指定为private,将所有的方法都指定为public)。子类的初始化需要注意的是,(当创建了一个子类的对象时,该对象包含一个基类的子对象)java会在子类的构造器中插入对基类默认构造器的调用。但是如果没有默认的基类构造器,或者想调用一个带参数的基类构造器,就必须用关键词super显式地编写调用基类构造器的语句,并且配上适当的参数列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 。 代理很有意思,(我们姑且使用导出类和基类这样的字眼,但要清楚我们不是在讨论继承里面的关键词)在导出类里保存一个基类的对象,然后用自己的方法对该基类的种种方法进行包装。 如何决定使用哪种方法复用类呢,is-a就继承,has-a就用组合。而且,组合比继承总体上使用更广泛、代价更小。 向上转型 这个就牛逼了,第八章,第九章,第十章都与此密切相关。看完本书之后印象最深的就是向上转型了。 使用final的原因有很多种,一定要弄清楚为什么使用final,是由于设计还是效率。 final作用于数据的时候:final作用在基本对象比如int上,该值就成为不可改变的,一旦被初始化就无法再被更改,但是作用在普通的对象引用 (使用时请双击此处删除页眉文字) 豆丁 教育百科为您倾心整理,谢谢使用 的时候,final使引用恒定不变,但是引用指向的对象是可变的。编译器需要我们确保final对象一定要被初始化,我们可以通过在构造器中初始化他们,以达到相对自由的效果(称为空白final,我认为这个名字容易让人误解)。java允许在参数列表中以声明的方式将参数指明为final,这一特性主要用来向匿名内部类传递数据(这很重要)。 final作用于方法的时候,说明作者想保持该方法在继承的过程中不被改变,并且不被覆盖。同时,被final修饰的方法会被关闭“动态绑定”,这样编译器就会为final方法调用生成“有限”有效的代码。之所以说有限,是因为随着编译器的牛逼,它生成的代码越来越有效。 final作用于类的时候,即是作者声明对该类的设计不允许任何继承。 学习得更深入一些,可能对以下事实感到有兴趣:java中所有的事物都是对象,每个类的编译代码都存在于电脑中的文件夹里(文件夹的层次根据反转域名得到),该文件只有在需要使用程序代码时才被加载。具体的说,就是“类在其任何static成员函数(包括构造函数)被访问时加载”。第八章 多态 多态的重要基本原理就是向上转型:继承允许将对象视为它自己本身的类型或其基类型加以处处理。 将一个方法调用和一个方法主题关联起来称为绑定,java中所有的方法都是后期绑定(除了static方法和final方法),所以我们可以编写只与基类打交道的程序代码,并且这些代码对所有的导出类都可以正确运行。 (为什么static不动态绑定:因为static方法的主要用法就是用类名.方法名这样的方式来调用,不存在“发送消息给某个对象,让对象判断自己怎么做”这样的情况。 为什么final不动态绑定:这是早期final的一种用法,由程序员指定某方法为final,意味着程序员明了动态绑定的机制,并且声明该方法不需要动态绑定,这样可以获得更好的性能。这种用法已经很少使用了。) 初始化的时候,导出类的构造函数会自动调用基类的默认构造函数,此过程一直递归到最基本的基类。如果需要调用有参数的构造函数就需要手动执行。反 (使用时请双击此处删除页眉文字) 豆丁 教育百科为您倾心整理,谢谢使用 过来,如果需要进行清理工作(大部分时候我们都不需要),务必手动执行基类的清理工作先。比如继承链的每个类都实现dispose()方法,那么执行某个类的清理工作的时候,需要手动调用super.dispose()。不过此种情况下,务必在执行super.dispose()之前释放成员对象,清理顺序与执行顺序是相反的。 此外,构造器方面有更加复杂的调用机制,我们不用理它,只需要知道一条有效的准则“用尽可能简单的方法使对象进入正常状态,如果可以的话避免调用其它方法”。 java编译器能够允许向上多态,就是因为java的机制能保存对象的类型信息,即rtti,正因为这种机制,java编译器也允许向下转型,以获得扩展类的“扩展出”的方法。(另,扩展类“扩展”了方法的这种继承不是“纯继承”,这样做好不好,用户自己度量)。向下转型失败的话会抛出一个classcastexception。 虽然这一章都是在讲多态,但是多态并不总是解决问题最好的 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,它有可能使事情不必要地复杂起来,我们应该总是优先考虑更加灵活的组合。 第九章 接口 一种专门提供“接口”的类叫抽象类,若含有至少一个abstract方法,该类就必须被声明为abstract的。抽象方法没有方法体,派生类必须实现它,否则派生类也必须被生命为抽象的。 interface关键词使抽象的概念更进了一步:1.这个“类”完全抽象。2.一个类可以向上转型为多种interface。要让一个类遵循某个特定接口,需要使用implement关键字。 在这一章中出现了“策略设计模式”这个词。创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,被称为策略设计模式。 策略设计模式跟适配器设计模式联合使用可以提供非常强大的功能,比如我们遇到了无法更改的类(别人编写的),想要它满足我们的接口然后放到设计模式里面去(当然满足了接口之后的用法就不止如此了),就可以编写一个适配器,包装该类同时产生我所需要的接口。 使用抽象类和接口的两个原因是:1.在多重继承关系中(这真的很常见,看看 (使用时请双击此处删除页眉文字) 豆丁 教育百科为您倾心整理,谢谢使用 java api就知道了),导出类可以被向上转型为每一个接口。2.防止客户端程序员创建该类的对象。那么我们该使用抽象类还是接口呢,事实上,如果知道某事物应该成为一个基类,那么第一选择应该是使它成为一个接口。 接口之间的继承能够形成很好的体系,更像我们的现实生活。但是要特别注意的是,在不同接口中使用相同的方法名通常会造成代码可读性的混乱,令人不快。 工厂方法设计模式是又一个重要的设计模式。我们在代码中增加额外的间接性,一个重要的原因是想要创建框架。
本文档为【Java编程思想读书笔记】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_260251
暂无简介~
格式:doc
大小:20KB
软件:Word
页数:0
分类:生活休闲
上传时间:2018-11-08
浏览量:9