Java中引用变量的内存空间

关于引用变量的内存,如果该引用变量定义在方法内,那么该引用变量就存储在方法所在的栈空间内

 1 public class ArrTest{
 2     
 3     public static void main(String[] args){
 4         int[] arr1 = new int[] {10,20,30};
 5         Arr a = new Arr();
 6         a.arr(arr1);
 7     }
 8 }
 9 
10 class Arr{
11     public static void arr(int[] i) {
12         for(int n = 0 ; n < i.length ; n++) {
13             System.out.println(i[n]);
14         }
15     }
16 }

以上数组,指向Arr对象的变量都是定义在main方法内,因此他们都存储在栈空间的栈帧内

public class TowClass {
public static void main(String[] args){
Person person = new Person();
person.heart.show();
person.show();
}
}


class Person{
public Heart heart;
public static void show() {
System.out.println("我是人");
}
}
class Heart{
public static void show(){
System.out.println("我是心脏");
}
}

 

以上在Person类中的成员位置创建了指向Heart的对象的变量heart,所以该变量随着main方法内指向Persion类的对象变量person创建而存在,因此,变量heart随着该对象Person的创建而存在,也因此,变量heart随着对象Person存储在堆内存中

上一篇:python 两种排序方法 sort() sorted()


下一篇:方法内部类