两个对象使用同一个方法的内存图与两个引用指向同一个对象的内存图


两个对象使用同一个方法的内存图

public class PhoneDemo02 {
    public static void main(String[] args) {
        phone phone = new phone();
        System.out.println(phone.brand);
        System.out.println(phone.color);
        System.out.println(phone.price);
        System.out.println("******************");
        phone.brand = "苹果";
        phone.color = "土豪金";
        phone.price =1.3;
        System.out.println("******************");
        System.out.println(phone.brand);
        System.out.println(phone.color);
        System.out.println(phone.price);
        System.out.println("******************");
        phone.call("秦始皇");
        phone.sendMessage();
        System.out.println("******************");
        phone phtow = new phone();
        System.out.println(phtow.brand);
        System.out.println(phtow.color);
        System.out.println(phtow.price);
        System.out.println("******************");
        phtow.brand = "oppo";
        phtow.color = "金色";
        phtow.price =9.9;
        System.out.println("******************");
        System.out.println(phtow.brand);
        System.out.println(phtow.color);
        System.out.println(phtow.price);
        System.out.println("******************");
        phtow.call("汉高祖");
        phtow.sendMessage();

    }
}

 

两个对象使用同一个方法的内存图与两个引用指向同一个对象的内存图

对象调用方法时,根据对象中方法标记(地址值),去类中寻找方法信息。这样哪怕是多个对象,方法信息
只保存一份,节约内存空间。
 

public class PhoneDemo03 {
    public static void main(String[] args) {
        phone phone = new phone();
        System.out.println(phone.brand);
        System.out.println(phone.color);
        System.out.println(phone.price);
        System.out.println("******************");
        phone.brand = "苹果";
        phone.color = "土豪金";
        phone.price =1.3;
        System.out.println("******************");
        System.out.println(phone.brand);
        System.out.println(phone.color);
        System.out.println(phone.price);
        System.out.println("******************");
        phone.call("秦始皇");
        phone.sendMessage();
        System.out.println("******************");
        phone phtow =phone;
        System.out.println(phtow.brand);
        System.out.println(phtow.color);
        System.out.println(phtow.price);
        System.out.println("******************");
        phtow.brand = "oppo";
        phtow.color = "金色";
        phtow.price =9.9;
        System.out.println("******************");
        System.out.println(phtow.brand);
        System.out.println(phtow.color);
        System.out.println(phtow.price);
        System.out.println("******************");
        phtow.call("汉高祖");
        phtow.sendMessage();

    }
}

两个对象使用同一个方法的内存图与两个引用指向同一个对象的内存图

 

 

 

原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/270812.html

(0)
上一篇 2022年6月30日
下一篇 2022年6月30日

相关推荐

发表回复

登录后才能评论