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这时候所调用的成员变量是一样的,都是指向同一个变量

  • 相关阅读:
    高内聚 低耦合
    关系型数据库-三范式
    Excel 批量重命名照片
    完整性约束
    testCompile failed: multiple points
    Java日志体系
    Mac 修改HostName
    mac 配置/etc/profile重启后不生效
    mac命令行配置
    logback删除日志
  • 原文地址:https://www.cnblogs.com/elian91/p/15257200.html
Copyright © 2011-2022 走看看