zoukankan      html  css  js  c++  java
  • Android-Java-静态变量与静态方法内存图

    描述Dog对象:

    package android.java.oop10;
    
    public class Dog {
    
        public static String name;
    
        public static int age;
    
        public static void showNameAge() {
            System.out.println("name:" + name + " age:" + age);
        }
    
    }

    main测试方法:

    package android.java.oop10;
    
    public class Demo01 {
    
        public static void main(String[] args) {
            Dog.name = "阿白";
            Dog.age = 98;
    
            Dog.name = "李双";
            Dog.age = 90;
    
            Dog.showNameAge();
        }
    
    }

    执行结果:

     以上案例对应内存图:

    1. 执行 java Demo01  是给JVM发送指令,和JVM说:把这个 Demo01.class 去执行;

    2.JVM就去执行 Demo01.class 文件里面的字节码,首先第一步 是把 Demo01.class字节码加载进内存;

    3.第二步把Demo01.class放入字节码存放区;

    4.第三步把Demo01里面的静态数据(静态变量 与 静态方法)分配到 静态区;

    5.第四步main方法进栈,如何进栈的,是把静态区里面的main方法拿到运行区(栈) 然后就进栈了;

    6.第五步main方法执行 Demo. 的时候,就在此时 才把Dog.class加载进内存;

    7.第六步把Dog.class放入字节码存放区;

    8.第七步把Dog里面的静态数据(静态变量 与 静态方法)分配到 静态区;

    9第八步 在main方法中执行 Dog.name  是向静态区去找到 Dog.name 拿来使用,由于是共享的 name 只保持最后修改的数据;

  • 相关阅读:
    Codeforces Round #197 (Div. 2)
    hdu4499Cannon(搜索)
    poj1054The Troublesome Frog
    hdu4705Y
    hdu1054Strategic Game(树形DP)
    poj2029Get Many Persimmon Trees(最大矩阵和)
    poj3280Cheapest Palindrome(记忆化)
    poj3140Contestants Division
    Spring的AOP机制---- 各类通知总结---- 各类通知总结
    Spring的AOP机制---- AOP最终通知---- AOP最终通知
  • 原文地址:https://www.cnblogs.com/android-deli/p/10351510.html
Copyright © 2011-2022 走看看