JAVA基础(对象创建内存理解)

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载,违者必究。 https://blog.csdn.net/Cricket_7/article/details/91411615

1,创建汽车类,车的属性(车的颜色,车的轮胎),车的行为(车子是否能运行)

/*

车的属性

    车的颜色

    车的轮胎数

车的行为

    车运行

*/

class Car {

    //成员变量

    String color;                        //车的颜色

    int num;                            //车的轮胎数





    public void run() {                    //车运行

        System.out.println(color + "..." + num);

    }

}

【1】一个对象的内存图

class Demo1_Car {

    public static void main(String[] args) {

        Car c1 = new Car();                //创建对象

        //调用属性并赋值

        c1.color = "red";                //为车的颜色赋值

        c1.num = 8;                        //为车的轮胎数赋值

        //调用行为

        c1.run();

    }

}
  • 1,进入测试类,方法区加载Demo1—car.class。 进入main方法

  • 2,Car c1 。方法区加载Car.class 创建成员变量。和成员方法。

  • 3,new Car(); 在堆里面开辟一个有地址的区域。赋值给给0x0011。

  • 4,给  color,num 进行赋值。

  • 5,栈调用c1,run()。run()使用完弹栈。

 

【2】两个对象的内存图

class Demo1_Car {

    public static void main(String[] args) {

        Car c1 = new Car();                //创建对象

        //调用属性并赋值

        c1.color = "red";                //为车的颜色赋值

        c1.num = 8;                        //为车的轮胎数赋值

        //调用行为

        c1.run();

        Car c2 = new Car();                //创建对象

        c2.color = "black";                //为车的颜色赋值

        c2.num = 4;                        //为车的轮胎数赋值

        c2.run();

    }

}
  • 1,进入测试类,方法区加载Demo1—car.class。 进入main方法

  • 2,Car c1 。方法区加载Car.class 创建成员变量。和成员方法。

  • 3,Car c1 = new Car(); 在堆里面开辟一个有地址的区域。赋值给给0x0011。

  • 4,给  color,num 进行赋值。

  • 5,栈调用c1,run()。run()使用完弹栈。

  • 6,Car c2 = new Car(); 在堆里面开辟一个有地址的区域。赋值给给0x0022。

  • 7,c2.color,num 进行赋值。

  • 8,栈调用c2,run()。run()使用完弹栈。

【3】三个引用两个对象的内存图

  • 三个引用,有两个对象的引用指向同一个地址

猜你喜欢

转载自blog.csdn.net/Cricket_7/article/details/91411615
今日推荐