构造函数
构造函数 在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()方法来释放内存资源。 由谁调用:它由程序员在代码中显式调用,不能由垃圾收集器自动调用。 何时调用:什么时候需要释放占用的内存资源,就什么时候调用。