Java基础知识——初始化与清理
本文最后更新于:2023-03-13, 23:48:49
1、用构造器确保初始化
在Java中,通过类构造器,确保每个类都会得到初始化。构造器采用与类相同的名称。
不接受任何参数的构造器叫默认构造器,术语无参构造器。如果你的类里没有构造器,编译器会自动创建一个默认构造器,如果你的类里有构造器(不管是有参还是无参),则编译器不会自动创建默认编译器。
构造器不返回任何东西,这和返回值为空(void)不同,空返回值可以有return语句。
2、方法重载
方法重载就是几个方法拥有相同的名字,但是参数类型或参数个数或参数顺序不同。
一个类的构造器也可以拥有多个,这也是方法重载。
基本类型能从一个较小的类型自动提升到一个较大的类型(例:short >> int >> long),这样可能会在重载时造成混淆。
不能以返回值区分重载方法,因为有时我们并不关心一个方法的返回值。例:
1 | |
3、this关键字
this关键字只能在方法内使用,表示对“调用方法的那个对象”的引用。this的用法和其他的对象引用相同。
在构造器中使用构造器:
1 | |
只可以在构造器里用this调用一个构造器,而且不能在其他方法中调用构造器。
static方法就是没有this的方法,在static方法内不能调用非静态方法(反过来倒是可以)。
4、清理:终结处理和垃圾回收
一个对象如果失去用处,它就会被垃圾回收器回收掉,一个类的finalize方法会在对象回收前被调用,因此可以用finalize方法在垃圾回收时做一些清理工作。但是,垃圾回收不一定会发生,所以不能指望finalize()一定会被调用。更不要直接调用finalize(),这样并不能清理掉一个对象。一旦垃圾回收器准备好释放对象占用的空间,将首先调用finalize方法,并且在下一次垃圾回收动作发生时才真正回收对象占用的内存。
5、构造器初始化
初始化顺序:在类的内部,变量定义的先后顺序决定了初始化的顺序,即使变量定义散布于在方法定义之间,它们仍会在任何方法(包括构造器)被调用之前得到初始化。并且,静态对象的初始化会先于非静态对象。静态初始化动作只进行一次。
静态初始化子句,例:
1 | |
实例初始化,和静态初始化一样,只不过少了static关键字。
6、数组初始化
1 | |
可变参数列表,例:
1 | |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!