runoob_Java 方法

Posted 邓戈麟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了runoob_Java 方法相关的知识,希望对你有一定的参考价值。

 

可变参数

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);
	}
}

 

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

The max value is 56.5
The max value is 3.0

finalize() 方法

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

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

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

finalize() 一般格式是:

protected void finalize() { // 在这里终结代码 }

关键字 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 FinalizationDemo
Cake Object 1is created
Cake Object 2is created
Cake Object 3is created
Cake Object 3is disposed
Cake Object 2is disposed

 

以上是关于runoob_Java 方法的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

Android课程---Android Studio使用小技巧:提取方法代码片段

Sleep() 方法后的代码片段没有被执行

如何通过代码设置片段标签?

编写代码片段的更简洁的方法