在一个对象被使用之前,需要经历的过程有:
类的装载 -> 链接(验证 -> 准备 -> 解析) -> 初始化 -> 对象实例化。
根据以上步骤分析如下程序,如果你完全懂了,就懂了内存初始化的过程。此题甚是经典,值得收藏,是有java题目改变而来。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class T
{
public static int k = 0;
public static T t1 = new T(“t1”);
public static T t2 = new T(“t2”);
public static int i = print(“i”);
public static int n = 99;
public int j = print(“j”);
public T(string str)
{
print("构造块");
Console.WriteLine((++k)+":"+str+"\t i="+i+"\t n="+n);
++n;
++i;
}
static T()
{
print("静态块");
}
public static int print(string str)
{
Console.WriteLine((++k) + ":" + str + "\t i=" + i + "\t n=" + n);
++n;
return ++i;
}
}
}
T t = new T(“init”);
附属原题如下:
http://blog.csdn.net/biaobiaoqi/article/details/11910241 ;