java简单代码运行内存图

java中主要的三块内存空间:

1.栈内存(stack):在方法别调用时,栈内存会给方法分配内存(压栈),主

要存储的是局部变量。方法调用结束后,该方法所占用的内存释放(弹栈)。

栈内存具有先进后出,后进先出的特点。

2.堆内存:存储对象。

3.方法区:类加载器classload,将硬盘上的.class字节码文件加载到JVM方法

区当中,存储的主要是代码片段。

下面是代码运行的内存图:

Student类:

public class Student{// 属性(描述状态),在java程序中以“成员变量”的形式存在。// 学号// 一个对象一份。int no; // 这种成员变量又被称为“实例变量”。// 姓名String name;// 年龄int age;// 性别boolean sex;// 住址String addr;}

StudentTest类:

public class StudentTest{public static void main(String[] args){// s1属于局部变量吗?当然是。// s1这个局部变量叫做引用Student s1 = new Student();// s2也是局部变量。// s2也叫做引用。Student s2 = new Student();s1.no = 110;s1.name = "张三";s1.age = 20;s1.sex = true;s1.addr = "深圳宝安区";System.out.println("学号=" + s1.no);System.out.println("姓名=" + s1.name);System.out.println("年龄=" + s1.age);System.out.println("性别=" + s1.sex);System.out.println("住址=" + s1.addr);// 再次赋值s1.addr = "北京大兴区";System.out.println("住址:" + s1.addr);}}

在这里插入图片描述
User类:

public class User{// 类=属性+方法// 用户id// int是一种基本数据类型int id; // 实例变量// 用户名// String是一种引用数据类型String username; // 实例变量String password; 
}

UserTest类:

public class UserTest{// 方法体外声明的变量叫做成员变量。//User u1; //成员变量。(实例变量)public static void main(String[] args){//int i = 100;// 方法体当中声明的变量叫做局部变量User u1 = new User();// 实例变量怎么访问(属性怎么访问)?// 语法是:“引用.属性名”System.out.println(u1.id); //0System.out.println(u1.username); //nullSystem.out.println(u1.password); //nullu1.id = 11111;u1.username = "zhangsan";u1.password = "123";System.out.println(u1.id);System.out.println(u1.username);System.out.println(u1.password);User u2 = new User();u2.id = 22222;u2.username = "lisi";u2.password = "456";System.out.println(u2.id);System.out.println(u2.username);System.out.println(u2.password);}
}

在这里插入图片描述
Address类:

public class Address{// 一个家庭住址有3个属性。// 城市String city; // 实例变量// 街道String street;// 邮编String zipcode;
}

User类:

public class User{// 类=属性+方法// 以下3个都是属性,都是实例变量。(对象变量。)// 用户id// int是一种基本数据类型int id; // 实例变量// 用户名// String是一种引用数据类型String username; // 实例变量// 家庭住址// Address是一种引用数据类型// addr是成员变量并且还是一个实例变量// addr是一个引用。Address addr; 
}

Test类:

public class Test{public static void main(String[] args){// 家庭住址对象Address a = new Address();a.city = "北京";a.street = "大兴区";a.zipcode = "121221";// 用户对象User u = new User();System.out.println(u.id); // 0System.out.println(u.username); // nullSystem.out.println(u.addr); // nullu.id = 11111;u.username = "zhangsan";u.addr = a;System.out.println(u.username + "是"+u.addr.city+"城市的!");// u.addr.city 这行代码可拆分,u.addr.city 节省变量。// 拆分成以下代码和以上效果完全相同,原理完全相同,不同的是以下代码多了两个变量。Address ad = u.addr;String zhuZhi = ad.city;System.out.println(zhuZhi);}
}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大厂程序员能力修炼手册,从筑基到化神要多久?

刚入行: 就是干 入行两年:熟知各种设计模式,信手拈来 入行三年:阅码无数,心中已无设计模式 入行五年:就是干 大家好,我是安酱。今天来跟大家聊聊程序员的能力进阶道路。 相信许多小伙伴都知道…

我的周刊(第001期)

我的信息周刊,记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 项目 image-to-latex[1] 可以将数学公式截图然后自动解析成LaTex输出&…

程序性能优化入门锦集--设计+代码+JVM调优+数据库优化策略

关于优化是一项很大的内容。本文结合菜鸟结算项目优化点分析以及书籍《JAVA程序性能优化》阅读心得,给出个人觉得可供参考的优化思路,共涉及四个方面,分别是:设计篇、代码优化篇、JVM内存调优和数据库操作优化。若文中理解有误之处…

阿里巴巴藏经阁,快来学习起来

阿里巴巴藏经阁 其中约有七千多本作品供大家免费下载,在线阅读! 地址 https://developer.aliyun.com/ebook/?spma2c6h.26392459.ebook-detail.2.5ea12039WsHOsc

[导入]文章藏金阁

在网上用www.gougou.com订阅了很多RSS,但RSS保存功能又非常弱,我保存下来的文章全部统统放到一个目录下去了,时间长了,里面乱七八糟的.删除了吧...突然哪天想起原来看过一篇文章,却寻觅不着.用365key吧,我又经常用firefox.郁闷了郁闷了...先暂时自己建个文章藏金阁吧~~ 数据…

知乎高赞:java初学者如何通过自学快速找到第一份工作?

大家好,我是威哥,《RocketMQ技术内幕》一书作者,荣获RocketMQ官方社区优秀布道师、CSDN2020博客执之星Top2等荣誉称号。目前担任中通快递技术平台部资深架构师,主要负责全链路压测、消息中间件、数据同步等产品的研发与落地&#…

源码分析RocketMQ与运维实战

RocketMQ是笔者当前最突出的亮点,正是由于在CSDN中连载RocketMQ,最终促成了《RocketMQ技术内幕》一书的出版,也凭借此专栏的高质量,最终成为CSDN2020年年度博客之星TOP2。 RocketMQ专栏目前已经输出48篇文章,并且被阿…

知乎高赞:如果一个程序员工作5年后还没成为大牛,是不是该考虑别的路子了?

我觉得这个问题非常适合我,我的职业生涯前5年即没有大厂背景,也无好的学历背书,但后面痛定思痛寻找了一条通过技术分享实现逆袭的道路,而且我的成功的经验可以复制。 职业生涯的前5年是我们奋斗的黄金时期,如果此时还…

《阿里工程师的修养》:探究他们修的是什么

前言 最近有空闲的时候会在阿里藏金阁看书,偶然看到一本《阿里工程师的修养》,两眼放光,彷佛周星驰里面那个老伯对着一个拿着棒棒糖🍭流鼻涕的小孩讲:我看你骨骼惊奇,我这里有本书适合你。 没错&#xff0…

外汇交易的技术为什么有效?量化藏金阁

外汇交易的逻辑很简单,只要在时间内成功预判汇价的走势方向即可成功获利,我们都知道如果随便猜那么成功的概率只有50%,是无法获利的,因此必须透过技术分析的手段交易,今天就跟大家聊聊为什么这些外汇技术有效。 1统计与…

mysql5.5不能远程_SQLServer2005不允许远程连接解决方法-数据库-藏金阁

刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 …

OCR二次开发宝典:飞桨联合多家企业和高校发布《OCR产业范例20讲》

文字识别(Optical Character Recognition,OCR)作为AI领域发展较成熟的一种技术方向,已经在各种产业场景得到落地应用。除了文档电子化、卡证识别等典型的应用场景,还存在大量长尾场景,如工业场景的PCB文字识…

程序员学炒股(3) 个股和大盘的关系之二

有了前一节的基础,这一节就简单多了,无非就是把所有股票遍历一下,我这里为了代码简单起见,就没有考虑停牌天数的影响。 下面就直接上代码了,我这里只是计算了一下沪市所有股票与上证指数的关系。 using System; using …

干货-任正非号召华为员工学习:认识5G,发展5G

华为创始人任正非近日签发的一份电子邮件号召华为全体员工学习一份名为《认识5G,发展5G》的PPT,该PPT是根据王喜文博士的文章缩编的,而王喜文博士是国内第一本“工业4.0”方面专著的作者。 该PPT主要围绕以下几个方面展开: 什么…

任正非号召华为员工学习的一份5G PPT(附下载)

今天,华为创始人任正非签发的一份邮件曝光。该邮件公布了一份名为《认识5G,发展5G》的PPT,号召供公共关系、接待经理、非市场与技术人员学习。 原来,这份PPT就是根据我们之前分享给大家的来自王喜文博士的《5G为人工智能与智能制造…

干货!任正非对话美国科技思想家,都说了些什么

https://www.toutiao.com/a6703424788846608903/ 2019-06-17 17:11:48 2019年6月17日下午2点,华为创始人兼CEO任正非在深圳与数字时代三大思想家的其中两位,《福布斯》著名撰稿人乔治吉尔德和美国《连线》杂志专栏作家尼古拉斯内格罗蓬特(也…

华为又收天才少女,进华为的标准是什么?

昨天在华为官网刷到一个蛮有意思的事情,华为官网显示年仅 22 岁的瓦莱里娅 里亚布奇科娃,已正式加入华为俄罗斯下诺夫哥罗德研究所,任职高级工程师,从事智能计算应用加速技术方面的研究。行外的朋友可能不了解,这个女…

任正非,就会折腾

“兄弟们,好好干,未来的电信市场,华为三分天下有其一。” “兄弟们,好好地干!我们的市场前景广阔得很,到那时大家的钱多得不得了,多到什么程度呢?就是钱在衣柜里面装不下&#xff0…

任正非与美国思想家的咖啡对话全文

来源:华为心声、蓝血研究 美国的所作所为促成了华为的觉醒,现在是华为的“人造卫星”时代! ——尼古拉斯尼葛洛庞帝 美国学者与任正非的咖啡对话 2019年6月17日 田薇:“一杯咖啡吸收宇宙能量”,我是田薇。有人说&#…

【微信机器人】可做自动回复,自动接收转账,群聊机器人。

前言: 目前市面上的微信机器人项目少之又少,并且大多数的不可用。比如用抓取网页微信接口,但大多数人的账号没有使用网页微信的权限。又或者价格昂贵,如使用微信pad协议。于是便开发一个通过Hook微信的DLL文件,修改其…