zoukankan      html  css  js  c++  java
  • 内存

    内存分为codesegment、datasegment、stack、heap。


    程序执行过程

    1、操作系统(windows或java虚拟机)把硬盘文件(exe或class文件)加载到代码区(codesegment)。
    2、从main方法开始执行:

      局部变量保存在栈内存stack;

      对象保存在堆内存heap;

      字符串常量在datasegment,静态变量的引用也在datasegment

      方法只有一份,执行的时候才占用内存。同一类的对象共享该类的方法,非静态方法是针对每个对象进行调用。


    this 和 supper,父类对象在子类对象内部


    方法执行过程的内存过程

        public class Person {
            int id;
            int age;
            Person(int _id, int _age) {
                id = _id;
                age = _age;
            }
            public static void main(String[] args) {
                Person tom = new Person(2, 25);
            }
        }

    1、在栈空间创建一个引用类型的变量 tom。

    2、调用Person 类的构造方法,在堆内存创建一个对象。里面有两个成员变量 id 和 age,默认值都为0。并把这个对象的堆内存参考赋值给tom变量。

    3、构造方法执行,变量 _id 和 _age 是方法的形参,是局部变量,在栈空间创建这两个变量。分别把常量2、25赋值给 _id 和 _age。

    4、把 _id 和 _age 的值赋值给堆内存里的 id 和 age。

    5、构造方法执行完毕,变量_id 和 _age清空。

  • 相关阅读:
    观察者模式股票提醒
    中介者模式虚拟聊天室
    模板方法模式数据库的连接
    职责链模式财务审批
    期末总结
    软件需求分析考试
    tomcat启动极其慢的解决方法困扰我一年多的问题终于解决
    状态模式银行账户
    解释器模式
    动态加载JS文件提升访问网站速度
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/9812636.html
Copyright © 2011-2022 走看看