构造函数

 构造函数

   在Java程序中,当使用new关键字创建一个对象时,系统会自动调用类的某一个构造函数,可用来初始化类的成员变量。

1. 构造函数

(1) 构造函数的作用:用于初始化类的成员变量,也即给类的成员变量赋初值。

(2)构造函数的函数名必须与类名相同。

(3) 构造函数无返回类型。

原因:构造函数是在创建对象的时候被调用,此时,编译器无法处理返回值,所以不能指定返回类型。

(4) 构造函数中可以带有参数,定义带参数的构造函数的好处:在实例化类时,可以根据自己的需要来动态初始化类的成员变量,而不是固定在程序中。

(5) 在一个类中可以定义多个构造函数。

(6) 构造函数可以处于4个访问级别中的一个:公开、受保护、默认或私有,因此对于构造函数可以使用private、protected或public访问修饰符。一般建议,构造函数使用public访问修饰符。

(7) 构造函数不能被static、final、synchronized、abstract和native修饰。

(8) 构造函数不能由程序员显示调用,而由系统自动调用;当创建一个类的对象时,由系统自动调用。

(9) 如果程序员在一个类中没有显示定义构造函数,Java编译器会提供一个默认构造函数。

如果程序员在一个类中定义了构造函数,Java编译器不再自动提供默认的构造函数。

默认的构造函数是不带参数的构造函数。

3. 构造函数重载

在一个类中定义多个构造函数,这实质上就是构造函数的重载。

4. 垃圾收集

(1) 什么是垃圾收集

垃圾收集是一个自动释放不再使用的类的对象的过程,或者说自动释放类的对象占用的内存资源的过程。

(2) Java的垃圾收集器

Java的垃圾收集器专门用于释放不再使用的类的对象,也即自动释放类的实例占用的内存资源,完成必须的内存清理动作。

Java的垃圾收集器时刻监视每个对象的使用情况,掌握每个对象实例的引用数。一旦引用数为0,则自动销毁这个对象。

(3) finalize方法

finalize()是一个特殊的方法,用来释放类的实例所占用的内存资源,它由垃圾收集器自动调用,直到类的对象的最后一个引用从内存中释放的时候被调用。

作用:用来释放类的对象所占用的内存资源。

由谁调用:它由垃圾收集器自动调用。

何时被调用:当类的对象的最后一个引用从内存中释放的时候被调用。

注意:在Java中没有析构函数这个概念。

(3) dispose方法

作用:用来释放占用的内存资源,例如数据库连接占用的内存的资源,当不再需要进行数据库连接时,可以使用dispose()方法来释放内存资源。

由谁调用:它由程序员在代码中显式调用,不能由垃圾收集器自动调用。

何时调用:什么时候需要释放占用的内存资源,就什么时候调用。
原文地址:https://www.cnblogs.com/1994two/p/3426541.html