内存储器使用

内存使用
   局部变量占用栈内存,对象(类)是NEW出来的,位于堆内存,类成员变量也位于堆内存

    栈内存中局部引用变量(指针变量)将指向堆内存的对象,普通局部变量只在栈内存

    方法执行结束后,该方法栈内存的局部变量将全部消失,而堆内存的对象将被垃圾收集器收拾掉(test.java)(static变量和常量存放在数据区,属于整个类,可以用于计数,可以用类名直接访问静态变量和方法)
Test test = new Test();
        int date = 9;       //date在栈内存
        BirthDate d1= new BirthDate(7,7,1970);   //d1在栈内存
        BirthDate d2= new BirthDate(1,1,2000);    //指向了堆内存的对象
        test.change1(date); //将基础变量date的值传给i,
        test.change2(d1);//形参(局部变量)b与引用变量d1指向同一堆内存
          test.change3(d2);

          public void change1(int i){
    	i = 1234;                //date不变
    }
          public void change2(BirthDate b) {
    	    b = new BirthDate(22,2,2004);     //d1不变
    }
        public void change3(BirthDate b) {
    	b.setDay(22);           //d2的成员变量day改变了
    }

      定义成员变量可以初始化,否则编译器将赋予默认值;局部变量没有默认值