1、栈区(stack) 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其
操作方式类似于数据结构中的栈。
2、堆区(heap) 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回
收 。注意它与数据结构中的堆是两回事,
他们的区别就是一个是进一个是出,下面给你们举例说明
public class Dog{ // 这是一个狗的类
public String brand; //狗的品种,是字符串类型的
public int age; //狗的年龄,是整型
@Override // 用来继承或者重写的一个修饰符
public String toString(){ //重写一些上面的方法
return"这是一条"+age+"岁的"+brand; // 返回你要得到的结果
}
public static void main(System [] args){
Dog dog = new Dog()" //引用你要的类里面的属性,那么你应该重写写一个对象来接受
dog.brand="藏獒"; // 对象的属性—藏獒
dog.age = 3; //对象的年龄是3岁
System.out.println(dog.toString()); //输出的时候直接调用上面的方法
}
}
Dog dog = new Dog(); 的意思就是 你首先在“栈“里面产生一个dog类型的引用变量,然后在“堆”里面产生一个new Dog的对象,new Dog就是一个新的对象 Dog来接收。 然后在Dog里面产生2个属性,一个是 brand(品种)、一个是age(年龄)。就是先进后出意思。
dog.brand="藏獒"; 就是让Dog的内存地址赋给了dog引用变量,然后dog的引用变量指向了Dog里面的brand的属性,使其变成了藏獒。