其实有了开篇内存分析的第一个图,面向对象内存分析都一览无余了。也还是有必要详细的说明一下的。
首先说到构造函数,虽然写过很多代码,也用过构造函数,但是还是有几点需要注意的:
1、构造函数是定义在java中用来初始化对象的一个函数。
2、构造函数与类名完全相同(大小写注意),没有返回值。
构造函数的内存分配:
我们在new一个对象的时候实际上调用了系统自带的无参的构造函数。
我们来看一段很简单的代码:
public class Person
{
//构造函数。
public Person()
{
int id;
int age;
Person(int n , int i)
{
id = n;
age = i;
}
}
}
主方法:
public static void main(String[] args)
{ public tom = new Person(1, 25); }
内存分配示意图:
成员变量也放入stack中。我们在调用完构造方法,stack中的局部变量就会消失,垃圾回收机制控制的。这样的一个生产车间是很高效的吧。