ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JVM的基础学习之路(一)

2021-12-29 12:33:21  阅读:106  来源: 互联网

标签:变量 对象 局部变量 基础 学习 实例 内存 JVM


学习JVM的分布情况

声明,来源于杜老师学习总结

  • 首先JVM存储分为栈内存、堆内存和方法区内存
  • 栈内存主要存取相应的引用地址和变量地址
  • 方法区主要存储.class文件
  • 堆内存主要存储实例变量、对象
  • 三块内存中变化最频繁的是栈内存,最先有数据的是方法区内存,垃圾回收器机制主要针对的是堆内存。

有点抽象,拿老杜的图来讲一下会比较清晰

int i=10;
Student s=new Student();//Student 对象包含age、no、sex等变量

在这里插入图片描述
总结

用户通过调用s引用的地址,来访问堆内存的实例变量和具体对象,可以说堆内存主要是为了存储对象,而栈中主要存储一些基本数据类型变量和引用。

扩展:
1.成员变量分为实例变量和静态变量,实例变量是对象级别的变量,又被称为对象变量,new运算符的作用就是创建对象,在JVM堆内存中开辟新的内存空间,实例变量因为是对象级,所以不能通过类名.的形式直接访问,必须通过创建对象来访问。静态变量其实可以理解为就是带static的变量,可以被类型.直接访问。
2.变量可分为局部变量和成员变量
(1)在类中的位置不同
成员变量:类中方法外
局部变量:方法定义中或者方法声明上
(2)在内存中的位置不同
成员变量:在堆中
局部变量:在栈中
(3)生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
(4)初始化值不同
成员变量:有默认值
局部变量:没有默认值,必须定义,赋值,然后才能使用
引用自HappyWang_

标签:变量,对象,局部变量,基础,学习,实例,内存,JVM
来源: https://blog.csdn.net/qq_44017116/article/details/122211967

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有