JAVA -内存分配---对象的内存分配--基本数据类型--引用数据类型

出处:图片来自黑马程序员b站视频  这是我学习之后的笔记  

jdk8之后取消了方法区 用元空间取代  但这不影响我们区理解Java内存分配

下面的图片就是Java 虚拟机的内存

今天主要学习对象的内存分配  Java虚拟机内存分配可以点个关注  我Java文章有写  



以下面的代码为例子:


 

   对照上面的代码   调用方法时 主方法 字节码文件 teststudent.class  会先加载到方法区 

方法运行的时候  会自动调用main主方法  创建临时内存   此时main方法入栈   

这时候new 一个对象 就会在堆里面开辟空间 并且产生地址 

如果对象里面的变量没有初始化  计算机系统会自动默认初始化  自定义了初始值  就不会自动初始化变量 

构造的方法 比如无参有参都会自动初始化 如果我们自己构造了系统就不会默认初始化

 【这里对默认初始化不明白的可以去看我的Java内存那一篇 和数组内存那一片可以帮助理解】

这时候方法里面就可以调用堆内 的内存地址 

 从而输出地址指向的值      

new出的对象 地址里面还包含了成员方法的地址

所以代码就成功调用了student下的study()方法,

当程序里面的方法调用完毕之后就会出栈   

这时候main方法也就结束了  main方法出栈,

堆里面的东西也就相应的退出了  至此程序彻底执行完毕。


基本数据类型 和引用数据类型的内存特点:

 

基本数据类型一般有整数 浮点数之类的

Java有 5种引用类型(对象类型):类 接口 数组 枚举 标注

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐风清扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值