这种杂合并不像在里那么重要。杂合语言允许采用多种编程风格之所以说是种杂合语言,是因为它支持与语言的向后兼容能力。由于是的个超集,所以包含的许多特性都是后者不具备的,这些特性使在些地方显得过于复杂。语言首先便假定了我们只希望进行面向对象的程序设计。也就是说,正式用它设计之前,必须先将自己的思想转入个面向对象的世界除非早已习惯了这个世界的思维方式。只有做好这个准备工作,与其他语言相比,才能体会到的易学易用。下面,我们将探讨程序的基本组件,并体会为什么说乃至程序内的切都是对象。用句柄操纵对象。每种编程语言都有自己的数据处理方式。有些时候,程序员必须时刻留意准备处理的是什么类型。您曾利用些特殊语法直接操作过对象,或处理过些间接表示的对象吗或里的指针所有这些在里都得到了简化,任何东西都可看作对象。因此,我们可采用种统的语法,任何地方均可照搬不误。但要注意,尽管将切都看作对象,但操纵的标识符实际是指向个对象的句柄。在其他参考书里,还可看到有的人将其称作个引用,甚至个指针。可将这情形想象成用遥控板句柄操纵电视机对象。只要握住这个遥控板,就相当于掌握了与电视机连接的通道。但旦需要换频道或者关小声音,我们实际操纵的是遥控板句柄,再由遥控板自己操纵电视机对象。如果要在房间里四处走走,并想保持对电视机的控制,那么手上拿着的是遥控板,而非电视机。此外,即使没有电视机,遥控板亦可独立存在。也就是说,只是由于拥有个句柄,并不表示必须有个对象同它连接。所以如果想容纳个词或句子,可创建个句柄第页但这里创建的只是句柄,并不是对象。若此时向发送条消息,就会获得个运行期。这是由于实际并未与任何东西连接即没有电视机。因此,种更安全的做法是创建个句柄时,记住无论如何都进行初始化然而,这里采用的是种特殊类型字串可用加引号的文字初始化。通常,必须为对象使用种更通用的初始化类型。所有对象都必须创建。创建句柄时,我们希望它同个新对象连接。通常用关键字达到这目的。的意思是把我变成这些对象的种新类型。所以在上面的例子中,可以说它不仅指出将我变成个新字串,也通过提供个初始字串,指出了如何生成这个新字串。当然,字串并非唯的类型。配套提供了数量众多的现成类型。对我们来讲,最重要的就是记住能自行创建类型。事实上,这应是程序设计的项基本操作,是继续本书后余部分学习的基础。程序运行时,我们最好对数据保存到什么地方做到心中有数。特别要注意的是内存的分配。有六个地方都可以保存数据寄存器。这是最快的保存区域,因为它位于和其他所有保存方式不同的地方处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。堆栈。驻留于常规随机访问存储器区域,但可通过它的堆栈指针获得处理的直接支持。堆栈指针若向下移,会创建新的内存若向上移,则会释放那些内存。这是种特别快特别有效的数据保存方式,仅次于寄存器。创建程序时,编译器必须准确地知道堆栈内保存的所有数据的长度以及存在时间。这是由于它必须生成相应的代码,以便向上和向下移动指针。这限制无疑影响了程序的灵活性,所以尽管有些数据要保存在堆栈里特别是对象句柄,但对象并不放到其中。堆。种常规用途的内存池也在区域,其中保存了对象。和堆栈不同,内存堆或堆最吸引人的地方在于编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长的时间。因此,用堆保存数据时会得到更大的灵活性。要求创建个对象时,只需用命令编制相关的代码即可。执行这第页些代码时,会在堆里自动进行数据的保存。当然,为达到这种灵活性,必然会付出定的代价在堆里分配存储空间时会花掉更长的时间,静态存储。这儿的静态是指位于固定位置尽管也在里。程序运行期间,静态存储的数据将随时等候调用。可用关键字指出个对象的特定元素是静态的。但对象本身永远都不会置入静态存储空间。常数存储。常数值通常直接置于程序代码内部。这样做是安全的,因为它们永远都不会改变。有的常数需要严格地保护,所以可考虑将它们置入只读存储器。非存储。若数据完全独立于个程序之外,则程序不运行时仍可存在,并在程序的控制范围之外。其中两个最主要的例子便是流式对象和固定对象。对于流式对象,对象会变成字节流,通常会发给另台机器。而对于固定对象,对象保存在磁盘中。即使程序中止运行,它们仍可保持自己的状态不变。对于这些类型的数据存储,个特别有用的技巧就是它们能存在于其他媒体中。旦需要,甚至能将它们恢复成普通的基于的对象。提供了对的支持。未来的版本甚至可能提供更完整的方案。高精度数字增加了两个类,用于进行高精度的计算和。尽管它们大致可以划分为封装器类型,但两者都没有对应的主类型。这两个类都有自己特殊的方法,对应于我们针对主类型执行的操作。也就是说,能对或做的事情,对和样可以做。只是必须使用方法调用,不能使用运算符。此外,由于牵涉更多,所以运算速度会慢些。我们牺牲了速度,但换来了精度。支持任意精度的整数。也就是说,我们可精确表示任意大小的整数值,同时在运算过程中不会丢失任何信息。支持任意精度的定点数字。例如,可用它进行精确的币值计算。至于调用这两个类时可选用的构建器和方法,请自行参考联机帮助文档。的数组几乎所有程序设计语言都支持数组。在和里使用数组是非常危险的,因为那些数组只是内存块。若程序访问自己内存块以外的数组,或者在初始化之前使用内存属于常规编程,会产生不可预测的后果。的项主要设计目标就是安全性。所以在和里困扰程序员的许多问题都未在第页里重复。个可以保证被初始化,而且不可在它的范围之外访问。由于系统自动进行范围检查,所以必然要付出些代价针对每个数组,以及在运行期间对索引的校验,都会造成少量的内存开销。但由此换回的是更高的安全性,以及更高的工作效率。为此付出少许代价是值得的。创建对象数组时,实际创建的是个句柄数组。而且每个句柄都会自动初始化成个特殊值,并带有自己的关键字空。旦看到,就知道该句柄并未指向个对象。正式使用前,必须为每个句柄都分配个对象。若试图使用依然为的个句柄,就会在运行期报告问题。因此,典型的数组在里就得到了避免。也可以创建主类型数组。同样地,编译器能够担保对它的初始化,因为会将那个数组的内存划分成零。绝对不要清除对象在大多数程序设计语言中,变量的存在时间直是程序员需要着重考虑的题。变量应持续多长的时间如果想清除它,那么何时进行在变量存在时间上纠缠不清造成大量的程序。在下面的小节里,将阐释如何帮助我们完成所有清除工作,从而极大了简化了这个问题。作用域大多数程序设计语言都提供了作用域的概念。对于在作用域里定义的名字,作用域同时决定了它的可见性以及存在时间。在,和里,作用域是由花括号的位置决定的。作为在作用域里定义的个变量,它只有在那个作用域结束之前才可使用。在上面的例子中,缩进排版使代码更易辨读。由于是种形式自由的语言,所以额外的空格制表位以及回车都不会对结果程序造成影响。编译器会认为变量已被定义。所以和能将个变量隐藏在个更大的作用域里。但这种做法在里是不允许的。对象的作用域对象不具备与主类型样的存在时间。用关键字创建个对象的时候,它会超出作用域的范围之外。那么句柄会在作用域的终点处消失。然而,指向的对象依然占据着内存空间。在上面这段代码里,我们没有办法访问对象,因为指向它的唯个句柄已超出第页了作用域的边界。在后面的章节里,大家还会继续学习如何在程序运行期间传递和复制对象句柄。这样造成的结果便是对于用创建的对象,只要我们愿意,它们就会直保留下去。这个编程问题在和里特别突出。看来在里遇到的麻烦最大由于不能从语言获得任何帮助,所以在需要对象的时候,根本无法确定它们是否可用。而且更麻烦的是,在里,旦工作完成,必须保证将对象清除。这样便带来了个有趣的问题。假如让对象依然故我,怎样才能防止它们大量充斥内存,并最终造成程序的凝固呢。在里,这个问题最令程序员头痛。但以后,情况却发生了改观。有个特别的垃圾收集器,它会查找用创建的所有对象,并辨别其中哪些不再被引用。随后,它会自动释放由那些闲置对象占据的内存,以便能由新对象使用。这意味着我们根本不必操心内存的回收问题。只需简单地创建对象,旦不再需要它们,它们就会自动离去。这样做可防止在里很常见的个编程问题由于程序员忘记释放内存造成的内存溢出。摘自王瑞著数据库系统开发详解北京电子工业出版社第页附英文原文,,,‟,‟‟‟,,,,‟,‟,第页,‟‟,‟,,‟‟‟,,,,,‟,‟,‟‟‟‟,,第页,,‟,‟‟,‟,,,,,第页,‟,‟,‟,,,,,‟,‟。,第页,,,„‟,,,‟,‟‟,‟第页,,,,
温馨提示:手指轻点页面,可唤醒全屏阅读模式,左右滑动可以翻页。
第 1 页 / 共 12 页
第 2 页 / 共 12 页
第 3 页 / 共 12 页
第 4 页 / 共 12 页
第 5 页 / 共 12 页
第 6 页 / 共 12 页
第 7 页 / 共 12 页
第 8 页 / 共 12 页
第 9 页 / 共 12 页
第 10 页 / 共 12 页
第 11 页 / 共 12 页
第 12 页 / 共 12 页
预览结束,喜欢就下载吧!
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。
1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。