代码的执行顺序

这篇博客探讨了Java编程中的内存管理。通过javac编译Test.java和Person.java生成对应的class文件,然后在方法区加载。在main方法中创建Person对象zhang,对象存储于堆内存,其非静态变量和方法也在此区域,静态成员则放入方法区。调用run方法执行,完成后按栈帧顺序出栈并释放内存。文章深入解析了Java对象的创建与执行流程。
摘要由CSDN通过智能技术生成
  1. Test.java和Person.java编译(javac)成Test.class和Person.class,两个class文件放入方法区。
  2. 执行main方法,main方法入栈。
  3. 执行Person zhang=new Person();此时对象zhang进入堆,其中包括其变量和方法(若其中的变量和方法为static,则放入方法区),同时把zhang的地址值传入main方法。
  4. 执行run方法,run方法入栈。
  5. 执行完毕,依次出栈(先进后出),释放内存。

在这里插入图片描述

public class Test {
    public static void main(String[] args){
        //Person 代表类型
        //zhang 对象名
        //new 关键字 在堆内存中开辟内存空间
        //=
        Person zhang=new Person();
        zhang.run(1000);

    }
}

public class Person {
    int age=18;
    int height=180;
    int runNum=0;
    public void run(int num){
        runNum=num;
        System.out.println("runNum="+runNum);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值