• 单个对象

1.进入main函数,生成main函数的栈空间

2.先在mian函数的栈空间里产生一个Student变量(以后会用来存储Studnet对象的首地址),然后进入Student类,在堆内存创建String和int类型的变量,并赋上初值

3.将在堆内存的对象的首地址赋值给在栈内存的Studnet变量s,即这个对象创建完毕。然后该程序输出了该对象的地址值

4.取值拼接输出,然后再修改值,拼接输出

5.调用Student类的函数,创建study函数的栈空间,然后执行函数代码,执行完之后消除栈空间(下一个函数相同),返回main函数,最后消除main函数栈空间

  • 多个对象

与单个对象创建过程相同,注意:不同对象共享类函数的使用(类在内存空间之中,当使用类函数的时候,提供类函数的地址)

  • 多个对象指向相同内存

注意:对象的成员变量(如name,age)在堆内存,对象的局部变量(在类函数内创建的基本类型变量)在栈内存

16.Java基础_对象内存图的更多相关文章

  1. 13.Java基础_数组内存图

    单个数组内存图 new int[3]: 在堆内存里申请一块空间存储int类型的变量(初始化时值都为0) int[] array: 在栈内存申请一块内存存储堆内存里数组的首地址 array[i]: 通过 ...

  2. Java面向对象_对象内存分析—值传递和引用传递

    对象内存分析,我一直学的比较模糊,今天抽空整理一下,希望能理清. 先说一下,内存分析从何而来,这对于我们这些刚接触java的人来说都比较模糊,就从new关键字说起吧. new关键字表示创建一个对象或者 ...

  3. 20.Java基础_对象的构造函数

    package pack1; public class Student { private String name; private int age; //构造方法 //如果没有任何构造函数,系统会自 ...

  4. 06-03 Java 面向对象思想概述、开发设计特征,类和对象的定义使用,对象内存图

    面向对象思想概述.开发设计特征 1:面向对象思想 面向对象是基于面向过程的编程思想. 面向过程:强调的是每一个功能的步骤 面向对象:强调的是对象,然后由对象去调用功能 2:面向对象的思想特点 A:是一 ...

  5. Java基础(含思维导图)

    很早之前整理的Java基础的一些知识点,思维导图: 1.'别名现象' 对一个对象赋值另一个对象,会指向新的对象引用,赋值前的对象引用会由于不再被引用而被gc回收: 而基本类型则不同.基本类型存储了实际 ...

  6. java基础知识学习 内存相关

    Java 内存分配策略 静态存储区(方法区):主要存放静态数据.全局 static 数据和常量.这块内存在程序编译时就已经分配好,并且在程序整个运行期间都存在. 栈区 :当方法被执行时,方法体内的局部 ...

  7. JAVA基础知识点:内存、比较和Final

    1.java是如何管理内存的 java的内存管理就是对象的分配和释放问题.(其中包括两部分) 分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对 ...

  8. 各个JAVA场景下的内存图

    首先,内存模型图,如下: 其次,一句话概括各个区域的作用: 1:程序计数器(Program Counter Register),让虚拟机中的字节码解释器通过改变计数器的值来获取下一条代码指令,比如分支 ...

  9. Java中创建对象的内存图

    所有人都知道面向对象思想,Java中的对象的创建在内存中是如何创建的,传智播客的视频看了一遍,把一些讲解的比较清晰的内容记录下来,方便记忆的更加深刻,Java中创建对象的过程,首先要理解JVM中栈.堆 ...

随机推荐

  1. 命令模式彻底删除oracle实例

    步骤一:关闭数据库export ORACLE_SID=bgsp1. sqlplus / as sysdba2. shutdown immediate步骤二:删除实例相关文件1. find $ORACL ...

  2. MySql 字段分组拼接

    drop table if exists T_Test; create table T_Test select 'A' parent, 'A1' child union all select 'A', ...

  3. Least Common Multiple (HDU - 1019) 【简单数论】【LCM】【欧几里得辗转相除法】

    Least Common Multiple (HDU - 1019) [简单数论][LCM][欧几里得辗转相除法] 标签: 入门讲座题解 数论 题目描述 The least common multip ...

  4. json解析模块

    json.loads(json) 把json格式的字符串转为Python数据类型 html_json = json.loads(res.text) json.dumps(python) 把 pytho ...

  5. DirectShow 常用函数总结

    本文准备总结一些 Direct Show 常用的API接口函数,方便以后查询回忆.如果这里没有你想了解的函数,你可以自行搜索MSDN + 函数名去 MSDN 查找你想要了解的函数,也可以查看百度百科相 ...

  6. 《js高程》笔记总结一:基本概念(语法,数据类型,流程控制,函数)

    1.ECMA 欧洲计算机制造商协会 2.";"的作用 代码后的:当压缩代码时可以用于压缩代码,有效的间隔开代码. 3.数据类型有 undefined,null,boolean,st ...

  7. IT兄弟连 Java语法教程 关系运算符

    关系运算符用来判定一个操作数与另外一个操作数之间的关系.特别是,它们可以判定相等和排序关系.表7中列出了关系运算符. 表7  关系运算符 关系运算符的结果为布尔值.关系运算符最常用与if语句和各种循环 ...

  8. QOS限速

    XX涉及的QOS限速主要有两种: 第一种是针对一个端口下双向IP互访: 第二种是针对多个端口下双向IP互访:(聚合car) 聚合car:是指能够对多个业务使用同一个car进行流量监控,即如果多个端口应 ...

  9. 恢复Chrome 78以上版本的地址栏https和www显示

    Google在Chrome不知道是脑子抽抽还是怎么回事,非要把https://www从地址栏中隐藏掉. htttps://www.pool.ntp.org就给你显示个pool.ntp.org,这分明就 ...

  10. pandas 学习 第5篇:DataFrame - 访问数据框

    数据框是用于存储数据的二维结构,分为行和列,一行和一列的交叉位置是一个cell,该cell的位置是由行索引和列索引共同确定的.可以通过at/iat,或loc/iloc属性来访问数据框的元素,该属性后跟 ...