美文网首页java基础知识
Java面向对象-堆、栈对象内存解析。

Java面向对象-堆、栈对象内存解析。

作者: 程序员三千_ | 来源:发表于2019-02-18 16:09 被阅读14次

学生类:

学生测试类:

在JVM内存里面主要分布有以下三个区域:

    栈:存放基础数据和自定义对象的引用

    堆:主要存储创建的对象,即new出来的对象。

    方法区:加载存放class文件(字节码文件)

通过上图来看,程序是这样执行的:

    1.将StudentTest01.class文件加载到方法区

    2.将Student.class文件加载到方法区

    3.main方法压栈

    4.在堆里面创建一个Student的对象

    5.栈里面的s指向堆里面Student对象的内存地址0x0101

    6.给对象的成员变量进行赋值

    7.main方法弹栈

   8. 程序执行结束

这里面主要说明的一点就是图中的实线,这个实线表示的是s指向Student对象堆内存的地址,s本身并不是对象,而是一个指向。比如酒店里面的房间号1024,1024本身不是房间,只是指向了这个房间的号码,方便住宿人员快速找到该房间。

相关文章

  • Java面向对象-堆、栈对象内存解析。

    学生类: 学生测试类: 在JVM内存里面主要分布有以下三个区域: 栈:存放基础数据和自定义对象的引用 堆:主要存储...

  • Java(L1)--面向对象

    Java知识点梳理 Chapter 3 面向对象的基本概念 堆内存与栈内存堆内存:存放对象的属性内容,需要new关...

  • Java对象内存分析

    此处对象内存分析只针对Java基本对象,暂不对集合对象进行剖析。 内存 栈内存 堆内存

  • 面向对象

    面向过程与面向对象: 内存解析 对象数组的内存解析 匿名对象

  • 堆和栈的区别

    栈内存用于存储基本类型变量和对象的引用;堆内存用来存储java中的对象。栈和堆.png 栈内存属于单个线程,每个线...

  • 堆和栈

    一 java 堆内存和栈内存 java把内存分为两种:一种是堆内存,一种是栈内存 堆: 堆内存主要存储实例化对象,...

  • 深入理解JVM-java内存划分以及对象新建

    1. Java内存区域划分 程序计数器 虚拟机栈 本地方法栈 Java堆 方法区 直接内存 2. 对象 对象的新建...

  • 好好看,好好学

    Java部分 面向对象 java 内存JVM:图文解析 Java内存结构Java虚拟机内存管理——内存空间划分Ja...

  • java内存模型

    引用: Java内存模型 java内存模型线程栈:本地变量,堆:对象,对象成员变量,静态成员变量 如果两个线程同时...

  • Java基础 - JVM内存

    Java内存机制 基本类型的变量放在栈里; 封装类型中,对象放在堆里,对象的引用放在栈里。 jvm内存 JVM7逻...

网友评论

    本文标题:Java面向对象-堆、栈对象内存解析。

    本文链接:https://www.haomeiwen.com/subject/ufoaeqtx.html