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

news2024/9/25 11:21:49

 一个对象的内存图

public class Phone {
    String brand; //品牌
    double price; //价格
    String color; //颜色
    public void call(String who) {
        System.out.println("给" + who + "打电话");
    }
    public void sendMessage() {
        System.out.println("群发短信");
    }
}
class Demo01PhoneOne {
    public static void main(String[] args) {
        Phone one = new Phone();
        System.out.println(one.brand); //null
        System.out.println(one.price); //0.0
        System.out.println(one.color); //null
        one.brand = "苹果";
        one.price = 8388.0;
        one.color = "黑色";
        System.out.println(one.brand); //苹果
        System.out.println(one.price); //8388.0
        System.out.println(one.color); //黑色
        one.call("乔布斯");  //给乔布斯打电话
        one.sendMessage();  //群发短信
    }
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2022.2.3\lib\idea_rt.jar=9084:D:\BaiduNetdiskDownload\IntelliJ IDEA 2022.2.3\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\variableandoperator Demo01PhoneOne
null
0.0
null
苹果
8388.0
黑色
给乔布斯打电话
群发短信

Process finished with exit code 0

 

 

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

public class Phone {
    String brand; //品牌
    double price; //价格
    String color; //颜色

    public void call(String who) {
        System.out.println("给" + who + "打电话");
    }

    public void sendMessage() {
        System.out.println("群发短信");
    }
}

class Demo02PhoneTwo {
    public static void main(String[] args) {
        Phone one = new Phone();
        System.out.println(one.brand); //null
        System.out.println(one.price); //0.0
        System.out.println(one.color); //null
        one.brand = "苹果";
        one.price = 8388.0;
        one.color = "黑色";
        System.out.println(one.brand); //苹果
        System.out.println(one.price); //8388.0
        System.out.println(one.color); //黑色
        one.call("乔布斯");  //给乔布斯打电话
        one.sendMessage();  //群发短信
        System.out.println("==================");

        Phone two = new Phone();
        System.out.println(two.brand); //null
        System.out.println(two.price); //0.0
        System.out.println(two.color); //null
        two.brand = "三星";
        two.price = 5999.0;
        two.color = "蓝色";
        System.out.println(two.brand); //三星
        System.out.println(two.price); //5999.0
        System.out.println(two.color); //蓝色
        two.call("欧巴");  //给欧巴打电话
        two.sendMessage();  //群发短信
    }
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2022.2.3\lib\idea_rt.jar=10771:D:\BaiduNetdiskDownload\IntelliJ IDEA 2022.2.3\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\variableandoperator Demo02PhoneTwo
null
0.0
null
苹果
8388.0
黑色
给乔布斯打电话
群发短信
==================
null
0.0
null
三星
5999.0
蓝色
给欧巴打电话
群发短信

Process finished with exit code 0

 

 两个引用指向同一个对象的内存图

public class Phone {
    String brand; //品牌
    double price; //价格
    String color; //颜色

    public void call(String who) {
        System.out.println("给" + who + "打电话");
    }

    public void sendMessage() {
        System.out.println("群发短信");
    }
}

class Demo03PhoneSame {
    public static void main(String[] args) {
        Phone one = new Phone();
        System.out.println(one.brand); //null
        System.out.println(one.price); //0.0
        System.out.println(one.color); //null
        one.brand = "苹果";
        one.price = 8388.0;
        one.color = "黑色";
        System.out.println(one.brand); //苹果
        System.out.println(one.price); //8388.0
        System.out.println(one.color); //黑色
        one.call("乔布斯");  //给乔布斯打电话
        one.sendMessage();  //群发短信
        System.out.println("==================");

        Phone two = one;
        System.out.println(two.brand); //苹果
        System.out.println(two.price); //8388.0
        System.out.println(two.color); //黑色
        two.brand = "三星";
        two.price = 5999.0;
        two.color = "蓝色";
        System.out.println(two.brand); //三星
        System.out.println(two.price); //5999.0
        System.out.println(two.color); //蓝色
        two.call("欧巴");  //给欧巴打电话
        two.sendMessage();  //群发短信
    }
}
D:\Java\jdk-17\bin\java.exe "-javaagent:D:\BaiduNetdiskDownload\IntelliJ IDEA 2022.2.3\lib\idea_rt.jar=11799:D:\BaiduNetdiskDownload\IntelliJ IDEA 2022.2.3\bin" -Dfile.encoding=UTF-8 -classpath F:\IdeaProjects\JavaSenior\out\production\variableandoperator Demo03PhoneSame
null
0.0
null
苹果
8388.0
黑色
给乔布斯打电话
群发短信
==================
苹果
8388.0
黑色
三星
5999.0
蓝色
给欧巴打电话
群发短信

Process finished with exit code 0

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/833125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【第一阶段】kotlin的range表达式

range:范围:从哪里到哪里的意思 in:表示在 !in:表示不在 … :表示range表达式 代码示例: fun main() {var num:Int20if(num in 0..9){println("差劲")}else if(num in 10..59){println("不及格")}else if(num in 60..89…

2023年自动化测试已成为标配?一篇彻底打通自动化测试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 首先我们从招聘岗…

CompletableFuture原理与实践

文章目录 1 为何需要并行加载2 并行加载的实现方式2.1 同步模型2.2 NIO异步模型2.3 为什么会选择CompletableFuture? 3 CompletableFuture使用与原理3.1 CompletableFuture的背景和定义3.1.1 CompletableFuture解决的问题3.1.2 CompletableFuture的定义 3.2 Complet…

Shell脚本学习-for循环结构1

for循环语句主要用于执行次数有限的循环,而不是用于守护进程和无限循环。 语法结构: for 变量名 in 变量取值列表 do指令... done 提示:in 变量值列表 可以省略,省略就相当于 in "$",也就是使用for i in &…

企业大数据可视化案例专题分享-入门

一、什么是数据可视化? 基本概念:数据可视化是以图示或图形格式表示的数据。让决策者可以看到以直观方式呈现的分析,以便他们可以掌握困难的概念或识别新的模式。借助交互式可视化,可以使用技术深入挖掘图表和图形以获取更多详细…

Java版工程项目管理系统平台+企业工程系统源码+助力工程企业实现数字化管理 em

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程…

IO进程线程第六天(8.3)线程,线程函数+XMind

创建两个线程&#xff1a;其中一个线程拷贝前半部分&#xff0c;另一个线程拷贝后半部分。 只允许开一份资源&#xff0c;且用互斥锁方式实现。 #include<stdio.h> #include<head.h> #include<pthread.h> struct file {int fp; int fq; off_t size; }; pth…

什么?你还没有用过JPA Buddy,那么你工作肯定没5年

1. 概述 JPA Buddy是一个广泛使用的IntelliJ IDEA插件&#xff0c;面向使用JPA数据模型和相关技术&#xff08;如Spring DataJPA&#xff0c;DB版本控制工具&#xff08;Flyway&#xff0c;Liquibase&#xff09;&#xff0c;MapStruct等&#xff09;的新手和有经验的开发人员…

投资圈爆火的文心杯创业大赛,大模型三大趋势值得关注!

“百模大战”打响&#xff0c;掀起大模型领域“创业热潮”。今年5月31日&#xff0c;百度启动“文心杯”创业大赛&#xff08;后简称“大赛”&#xff09;&#xff0c;不到1个月报名时间&#xff0c;吸引近1000个项目激烈角逐&#xff0c;在知名投资人和AI专家的权威评审和层层…

8 网络通信(下)

文章目录 wireshark 抓包工具的快速入门TCP/IP 协议详解TCP/IP 协议概述部分协议补充 OSI 参考模型及 TCP/IP 参考模型以太网帧格式ARP 数据报格式IP 段格式ICMP 协议TCP协议UDP 协议MTU和MSS补充 产品模式【C/S B/S】C/S 模式B/S 模式 DDOS简单介绍&#xff08;SYN Flooding&a…

【暑期每日一练】 day13

目录 选择题 &#xff08;1&#xff09; 解析&#xff1a; &#xff08;2&#xff09; 解析&#xff1a; &#xff08;3&#xff09; 解析&#xff1a; &#xff08;4&#xff09; 解析&#xff1a; &#xff08;5&#xff09; 解析&#xff1a; 编程题 题一…

Spring Cloud Feign+Ribbon的超时机制

在一个项目中&#xff08;数据产品&#xff09;&#xff0c;需要对接企业微信中第三方应用。在使用 Feign 的去调用微服务的用户模块用微信的 code 获取 access_token 以及用户工厂信息时出现 Feign 重试超时报错的情况&#xff0c;通过此篇文章记录问题解决的过程。 一、问题重…

探究Vue源码:mustache模板引擎(9) 将单层无喜欢结果tokens转为dom字符串

好 我们前面几篇文章 已经编写完了 将dom结构的模板字符串转为 tokens 数据结构的代码 那么 现在 我们就需要用tokens 结合数据 去生成dom字符串 我们先来研究一下我们的模板字符串与数据结构 首先 数据从这个data中去拿 然后 模板字符串语句中 先是 利用对象中的students 循环…

redis五种数据类型介绍

、string&#xff08;字符串&#xff09; 它师最基本的类型&#xff0c;可以理解为Memcached一模一样的类型&#xff0c;一个key对应一个value。 注意&#xff1a;一个键最大能存储 512MB。 特性&#xff1a;可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512…

【动态规划算法】-回文串问题题型(34-40题)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

动态规划笔记(一)

动态规划&#xff08;Dynamic Programming&#xff0c;DP&#xff09;是求解决策过程最优化的过程&#xff0c;通过把原问题分解为相对简单的子问题的方式求解复杂问题&#xff0c;在数学、管理科学、计算机科学、经济学和生物信息学等领域被广泛使用。 它的基本思想非常简单&…

SpringBoot整合Caffeine

一、Caffeine介绍 1、缓存介绍 缓存(Cache)在代码世界中无处不在。从底层的CPU多级缓存&#xff0c;到客户端的页面缓存&#xff0c;处处都存在着缓存的身影。缓存从本质上来说&#xff0c;是一种空间换时间的手段&#xff0c;通过对数据进行一定的空间安排&#xff0c;使得下…

java:解决报错非法字符: ‘\ufeff‘以及什么是BOM

背景 运行 JAVA 项目后&#xff0c;报错提示&#xff1a;非法字符: \ufeff&#xff0c;如图&#xff1a; 但是我在这个报错的文件中并没有搜到这个字符&#xff0c;那到底是什么原因 什么是BOM BOM&#xff08;Byte Order Mark&#xff09;&#xff0c;隐藏字符&#xff0c…

5、二叉树

二叉树遍历 递归序 public static void f(Node head) {if (head == null) {return;}f(head.left);f(head.right); }前中后遍历_递归 public static void preOrderRecur(Node head) {if (head == null) {return;}System.out.print(head.value + " ");preOrderRecur…

智慧防汛,数字科技的力量

随着夏日的脚步临近&#xff0c;台风季节即将降临。对于那些居住在沿海地区的人们来说&#xff0c;台风是一种常见的自然灾害&#xff0c;其带来的风雨可能对生命和财产造成严重威胁。然而&#xff0c;随着数字科技的飞速发展&#xff0c;可视化技术为防汛抗台工作带来了全新的…