zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    JS正则表达式
    TortoiseGit 中文汉化
    java之 Mybatis框架
    正向代理和反向代理
    Java基础之 多线程
    python库参考学习网址
    postman进行https接口测试所遇到的ssl证书问题,参考别人方法
    hbase单机搭建
    搭建单机版伪分布zookeeper集群
    搭建hadoop单机版
  • 原文地址:https://www.cnblogs.com/denggelin/p/7190142.html
Copyright © 2011-2022 走看看