跟随学习第二十九天

创建对象内存分析

 //调用下面的那个类
 package oop;
 
 public class Demo06 {
     public static void main(String[] args) {
 
         Demo05 dog = new Demo05();
 
         dog.name = "旺财";
 
         dog.age = 5;
 
         dog.Pet();
 
         System.out.println(dog.name);
 
         System.out.println(dog.age);
    }
 }
 package oop;
 
 public class Demo05 {
 
     String name;
 
     int age;
 
     public void Pet(){
 
         System.out.println("汪汪汪");
    }
 
 }
 

解析图

  1. 当创建Demo05时就有方法区的Demo05和堆中的初始值

  2. 当用Demo06来调用时,就会生成栈中的dog,去调用堆中的初始值,方法区的Demo06将常量池中的旺财放置上去、

  3. 每当你new一个新的变量时就会在栈中生成一个新的引用变量名,调用方法和dog的调用时如出一辙的

  4. 而静态方法区是static的,每当类调用时静态方法就会被调用

posted on 2021-03-09 22:57  悲喜不通,唯吵闹乎  阅读(28)  评论(0)    收藏  举报