• 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
  • 相关阅读:
    k-匿名算法
    门控循环单元(GRU)与 LSTM 的区别
    计算机视觉之相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换
    CMU-Multimodal SDK Version 1.1 (mmsdk)使用方法总结
    机器学习 – 练习题:一段1米长的绳子 随机切两刀 分成三段 求能够组合成一个三角形的概率
    pickle导入变量AttributeError的解决方案
    typing类型注解库
    灰度共生矩阵(Gray-level Co-occurrence Matrix,GLCM),矩阵的特征量
    几何不变矩--Hu矩
    对 GAN 的 value function 的理解
  • 原文地址:https://www.cnblogs.com/denggelin/p/7190142.html
Copyright © 2020-2023  润新知