一旦一个类被装载、连接、初始化,那么他就随时可以使用了。最多的就是创建的它的实例,也就是创建对象。
类的实例化(关键字:实例变量、类变量)
类可以被明确或者隐含地实例化。一共有4种途径:
l 明确的使用new操作符
l 调用Class或java.lang.reflect.Constructor对象的newInstance()方法
l 调用任何现有对象的clone()方法
l 通过java.io.ObjectInoutStream类的getObject()方法反序列化
不管明确的还是隐含的,首先都需要在堆中为保存的对象的实例变量分配内存。所有的对象中的类中和它的超类中声明的变量都要分配内存。一旦准备好堆内存,它立即把实例变量初始化为默认值,随后就是为实例变量赋予正确的初始值,有三种技术可以完成这项工作,比较典型的就是:调用对象的实力初始化方法(构造函数)。
每一个类都至少生成一个实例初始化方法,称为<init>。如果构造方法没有明确地从this()或者super()调用开始,对应的<init>()方法默认会调用超类的无参数<init>方法。
垃圾收集和对象终结
程序可以明确或者隐含地分配内存,但是不能明确地释放内存。当一个对象不再被程序所引用了,虚拟机必须回收(垃圾收集)那部分内存。