Loading

Java常见对象内存分析

首先要明确Java内存的个位置上放的是啥

类、对象、实例三者的关系:
1.类:是对象的模板,可以实例化对象。(this不能出现在静态方法中)
2.对象:类的个体。
3.实例:实现的对象。
4、对应的引用:

引用类型:基本类型(8)
对象是通过引用来操作的:栈——>堆(引用是指向对象的地址)

Student s;
s=new Student();
其中Student为类,s为对象,new Student()为实例,s赋值后也是实例了

Java内存

image

new的时候会在栈中生成引用变量名,其类似于C中指针指向的时队中所属对象的地址(若new了多个对象则地址各不同)

image

静态方法与类一起加载

实际代码

import operater.Demo09;

public class Demo08 {
    public static void main(String[] args) {
        Demo09 pet=new Demo09();
        System.out.println("pet的内存地址是:"+pet.hashCode());
        pet.name="旺财";
        pet.age=3;
        pet.shout();;
        System.out.println(pet.name);
        System.out.println(pet.age);
        Demo09 dog=new Demo09();
        System.out.println("dog的内存地址是:"+dog.hashCode());
    }
}
public class Demo09 {
    public String name;
    public int age;
    public void  shout(){
        System.out.println("叫了一声");
    }
}

结果

pet的内存地址是:460141958
叫了一声
旺财
3
dog的内存地址是:1163157884

image

posted @ 2022-01-17 22:58  Cn_FallTime  阅读(47)  评论(0编辑  收藏  举报