zoukankan      html  css  js  c++  java
  • 对象的内存图解

    以Person举例

    public class Person {
        String name;
        String sex;
        int age;
    
        public void  eat(){
    
        }
    }

    1、当执行某个方法(例如main方法)。main方法此时会进入栈内存(每当执行一个方法时,该方法会进入栈内存,直到该方法执行结束便从栈内存弹出)

    2、接着在main方法定义一个对象,Person  p ;Person  p也在栈内存中。此时如果不去实例化(new)这个对象,p就等于null。

    3、为了访问Person的变量和方法,此时要new Person();

    4、new  Person();后再堆内存就会开辟一个空间给Person  并且会有一个地址值,此时在栈内存的p就指向这个地址值。而age等成员变量都还是0或者null,需要赋值。

    多个对象指向

    此时定义一个Person  p2 = p;

    p2便指向了p的内存地址,p2和p这时候所调用的成员变量是一样的,都是指向同一个变量

  • 相关阅读:
    数与bit
    ARM汇编优化1
    一 *(a+1)与*(&a+1)
    二 *(a+1)多维数组
    三 二维数组取址
    四 sizeof(a)
    永恒之蓝及WannaCry分析
    github使用记录
    三种页面置换算法的C++模拟
    opencv检测图像直线
  • 原文地址:https://www.cnblogs.com/elian91/p/15257200.html
Copyright © 2011-2022 走看看