- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java高效编程刘齐虎 目录 概述 创建和销毁对象 对于所有对象都通用的方法 类和接口 方法 通用程序设计 异常 多线程 序列化 概述 对于程序设计语言,你需要理解语言的核心(core language):它是面向算法的,还是面向函数的,或者是面向对象的?你需要知道词汇表(vocabulary):标准库提供了哪些数据结构、操作和功能设施?你还需要熟悉如何用习惯(customary)和高效(effective)的方式来构建代码。 例如, J a v a程序设计语言是一门只支持单继承的面向对象程序设计语言,在每一个方法内部,它也支持命令方式的(面向语句的, s t a t e m e n t - o r i e n t e d)编码风格。J a v a库包括对图形显示、网络、分布式计算和安全性的支持。但是,如何把这门语言以最佳的方式用到实践中呢? 仅仅编写出能够有效地工作并且能够被别人理解的代码往往是不够的,我们还必须要把代码组织成易于修改的形式。针对一个任务T可能会有1 0种不同的编码方法,而在这1 0种方法中,有7种方法是笨拙的、低效的或者是难以理解的。而在剩下的3种编码方法中,哪一种会最接近该任务T的下一年度版本的代码呢?这就是高效编程要解决的问题。 高效编程并没有指导您如何编写一个实用的J a v a程序,而是指导您在J a v a程序设计中需要遵循什么样的规则才能编写出高效、清晰、简洁、正确、可用、健壮、灵活和可维护的程序。 概述(续) 高效编程的大多数规则源于少数几条基本的原则。清晰性和简洁性是最为重要的:一个模块的用户永远也不应该被模块的行为所迷惑(那样就不清晰了);模块要尽可能的小,但又不能太小[术语模块( m o d u l e),是指任何可重用的软件组件,从单个方法,到包含多个包的复杂系统都可以是一个模块]。代码应该被重用,而不是被拷贝。模块之间的相依性应该尽可能地降低到最小。错误应该尽早被检测出来,理想情况下是在编译时刻。 虽然下面讲的规则不会百分之百地适用于任何时刻和任何场合,但是,它们确实刻画了绝大多数情况下最佳的程序设计行为。你不应该盲目地遵从这些规则,但是,你只应该在偶尔的情况下,有了充分的理由之后才打破这些规则。学习程序设计的艺术,如同大多数其他的学科一样,首先要学会基本的规则,然后才能知道什么时候可以打破这些规则。从无规则,到有规则,再到灵活运用,达到所谓“运用之秒,存乎一心”的境界。 创建和销毁对象 本节的主题是创建和销毁对象:何时以及如何创建对象,何时以及如何避免创建对象,如何确保它们能够被适时地销毁,以及如何管理销毁之前必须进行的所有清除动作。 考虑用静态工厂方法代替构造器 对于类而言,为了让客户端获取它自身的一个实例,最常用的方法就是提供一个公有的构造器。还有一种方法,类可以提供一个公有的静态工厂方法(static factory method),它只是一个返回类的实例的静态方法。 下面是一个来自Boolean(基本类型boolean的包装类)的简单示例。这个方法将boolean基本类型值转换成了一个Boolean对象引用: public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 静态工厂方法与构造器不同的第一大优势在于,它们有名称。如果构造器的参数本身没有确切地描述正被返回的对象,那么,客户程序员可能不知道应该调用哪个构造函数去创建对象,有可能会调用错误的构造器,人们读到使用了这些构造器的代码时,如果没有参考类的文档,往往不知道这段代码是做什么用的 。那么具有适当名称的静态工厂会更容易使用,产生的客户端代码也更易于阅读。 静态工厂方法与构造器不同的第二大优势在于,不必在每次调用它们的时候都创建一个新对象。这使得不可变的类可以使用预先构建好的实例,或者将构建好的实例缓存起来,进行重复分发,以避免重复创建不必要的对象。 考虑用静态工厂方法代替构造器(续) 静态工厂方法与构造器不同的第三大优势在于,它们可以返回原返回类型的任何子类型的对象。这样我们在选择返回对象的类时就有了很大的灵活性。 静态工厂方法的第一个缺点在于,类如果不含公有的或者受保护的构造器,就不能被子类化(因为,很多有了静态工厂方法的类,往往把构造器设为私有的,以避免显示的创建)。 静态工厂方法的第二个缺点在于,它们与其他的静态方法实际上没有任何区别。在API文档中,它们没有像构造器那样在API文档中明确标识出来,因此,对于提供了静态工厂方法而不是构造器的类来说,要想查明如何实例化一个类,这是非常困难的。 简而言之,静态工
您可能关注的文档
最近下载
- 2022年新高考政治真题试卷(山东卷).pdf VIP
- 2025年最新详版征信报告个人信用报告样板模板word格式新版可编辑.docx VIP
- 辽宁省大连市甘井子区2024-2025学年上学期七年级 月考英语试卷(10月份).docx VIP
- 水土保持监督管理培训课件.pptx VIP
- 《现代汉语》各章练习题答案汇总 .pdf VIP
- 输变电工程环境保护和水土保持全过程管控培训课件.pptx VIP
- 生产建设项目水土保持方案管理办法培训课件.pptx VIP
- 培训课件_1411dxs小天鹅纯臻2.0新品1411DXS系列.pdf VIP
- 2022年内蒙古农业大学硕士研究生入学考试公共管理专业综合基础考研真题.pdf VIP
- 郑州市第七高级中学2024-2025学年高一上学期第一次月考物理试卷.docx VIP
文档评论(0)