快速业务通道

Java的语言特性 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
,所以没有经验的程序员在需要使用多态特 性进行自动清理时也可能束手无策。

当然,作为一个“负责任”的程式编撰员,在程式完结前应该手动清理不再需要的变量和 物件,令效能有点提升。以Java为例,finalize方法位于 java.lang.Object 内,而Object 这个类是每一个类自动承继的。因此清理需要的便是覆写finalize便行了

protected void finalize() throws Throwable{    super.finalize(); }

当中若有任何变量要清理,可以在super.finalize() 前加上 <变量> = null; 或 <所属的Class>.<变量> = null;

不过事实上,就算使用了 finalize(),你还是不能保证你在堆栈中所使用的空间会马上 被回收,垃圾回收机制只有在你的你堆栈已经毫无空间可以使用的情况下,才会真的去进行 回收的动作,因此在编程上,还是要避免内存空间的浪费。

接口和类别

Java自带了创建接口的类别,可以这样使用:

public interface Deleteable {    void delete(); }

这段代码的意思是任何实现(implement)Deleteable接口的类别都必须实现delete()方 法。每个类别对这个方法的实现可以自行定制。由此概念可以引出很多种使用方法,下面是 一个类别的例子:

public class Fred implements Deleteable {    //Must include the delete () method to satisfy the Deleteable interface    public void delete() { //code implementation goes here    }    //Can also include other methods    public void doOtherStuff() {    } }

在另外一个类别中,可以使用这样的代码:

public void deleteAll (Deleteable [] list) {    for (int i = 0; i < list.length; i++) {       list[i].delete();    } }

因为队列中所有的对象都可以使用delete()方法。Deleteable队列中包含Fred对象的引用 ,而这个类别和其他Deleteable类别在使用deleteAll()方法时候不需要进行任何改变。

之所以这样做就是为了在接口的执行和其代码之间进行区别。举例来说,一个名叫 Collection的接口可以包含任何对象所需要的引入、转换和存储数据的方法,其他的类都可 以使用这个接口。但是这个接口可以是一个可重定义大小的队列、一个链表或者是其他功能 的集合。

这种特性其实是一种折中的办法。Java的设计者们不想让Java有多重继承的特性,因为 C++的多重继承显示了这种特性的困难。Java的接口功能可以提供同样的功能,但是又不会很 复杂。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号