java runoob_runoob_Java 方法

本文介绍了Java中可变参数的使用,如在方法声明中使用`typeName...parameterName`的形式,并展示了如何调用可变参数方法。同时,讲解了对象的`finalize()`方法,该方法在对象被垃圾收集器回收前调用,可用于执行清理操作。示例代码演示了这两个概念的应用。
摘要由CSDN通过智能技术生成

可变参数

JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法。

方法的可变参数的声明如下所示:

typeName... parameterName

在方法声明中,在指定参数类型后加一个省略号(...) 。

一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

实例

VarargsDemo.java 文件代码:

public class VarargsDemo {

public static void main(String args[]) {

// 调用可变参数的方法

printMax(34, 3, 3, 2, 56.5);

printMax(new double[] { 1, 2, 3 });

}

public static void printMax(double... numbers) {

if (numbers.length == 0) {

System.out.println("No argument passed");

return;

}

double result = numbers[0];

for (int i = 1; i < numbers.length; i++) {

if (numbers[i] > result) {

result = numbers[i];

}

}

System.out.println("The max value is " + result);

}

}

以上实例编译运行结果如下:

Themax value is56.5Themax value is3.0

finalize() 方法

Java 允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做 finalize( ),它用来清除回收对象。

例如,你可以使用 finalize() 来确保一个对象打开的文件被关闭了。

在 finalize() 方法里,你必须指定在对象销毁时候要执行的操作。

finalize() 一般格式是:

protectedvoidfinalize(){//在这里终结代码}

关键字 protected 是一个限定符,它确保 finalize() 方法不会被该类以外的代码调用。

当然,Java 的内存回收可以由 JVM 来自动完成。如果你手动使用,则可以使用上面的方法。

实例

FinalizationDemo.java 文件代码:

public class FinalizationDemo {

public static void main(String[] args) {

Cake c1 = new Cake(1);

Cake c2 = new Cake(2);

Cake c3 = new Cake(3);

c2 = c3 = null;

System.gc(); // 调用Java垃圾收集器

}

}

class Cake extends Object {

private int id;

public Cake(int id) {

this.id = id;

System.out.println("Cake Object " + id + "is created");

}

protected void finalize() throws java.lang.Throwable {

super.finalize();

System.out.println("Cake Object " + id + "is disposed");

}

}

运行以上代码,输出结果如下:

$ javac FinalizationDemo.java

$ java FinalizationDemoCakeObject1iscreated

CakeObject2iscreated

CakeObject3iscreated

CakeObject3isdisposed

CakeObject2isdisposed

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值