内存分析创建对象
1.我们在主方法中,new了两个Pet对象,一个是dog,一个是cat。
2.运行原理是先在栈中压了dog和cat的变量名,再把默认值传入堆中。在main方法中,把”旺财”赋值给name,在底层运行中就是从方法区把值赋给了堆中的模块
注意:方法区是堆中的一部分,其中静态方法区就是带有static的静态方法,和类一起加载,已经存在,已经存在的不能调用还未存在的,所以说静态方法不能调用动态方法
内存演示
代码演示
Pet类
public class Pet { //属性 String name; int age; //方法 public void shot(){ System.out.println(name+",亲切的叫了一声"); } }
Main类
public class Main { public static void main(String[] args) { //new了一个对象 Pet dog = new Pet(); dog.name = "旺财"; dog.age = 3; dog.shot(); } }