class xiao{
xiao(){System.out.println("hello!world!");}
public class linfeng{
int a1,a2;
xiao Isyes;
linfeng(){System.out.println("Is it first?");}
public static void main(String args[]){
linfeng x=new linfeng();
System.out.println("a1="+a1);}
编译运行该程序后,由结果看到类linfeng在初始化对象x时并没有给xiaoIsyes赋初值,而在下划先句中改为xiaoisyes=new xiao()后,程序则会初始化类对象Isyes,这该是在"堆"中申请获得内存后初始化Isyes吧.问题是java为什么要这样初始化成员变量,其成员变量在内存中是如何被系统分配的呢(xiaolinfeng到底在内存中的状态如何呢?是根本就不存在吗?),而不像c++那样在定义完变量之后,操作系统就就为其分配内存空间?还有,既然有new操作,就该有delete操作,delete操作应该被封装到析构器函数中,析构函数是如何运行的以及何时运行,对编程人员来说,好象不如c++那样清晰?请高手指点??