当前位置:网站首页>对象在内存中存在形式&内存分配机制
对象在内存中存在形式&内存分配机制
2022-07-27 19:07:00 【小唐学抓娃】
一、对象在内存中存在形式
1、首先,内存分为三部分:栈,堆,方法区。
- 栈:用来存放对象的引用以及方法在此运行。
注意:
- 方法运行时会进入栈,方法结束后立即出栈。
- 方法出栈后,在该方法中的对象变量都会被回收。
- 堆 :用来存放一切用new 创建的对象。(对象的地址,对象的属性成员变量等)
方法区:用来存放类的相关信息(属性、方法),以及常量池。
常量池中只存放字符串类型的常数。(比如在堆中,属性类型是字符串类型的,不直接存放值,而是存放地址,这个地址就是常量池里对应的值的地址。)
- 关于常量池是存在于堆中还是方法区中的看法。
JDK1.8中字符串常量池和运行时常量池逻辑上属于方法区,但是实际存放在堆内存中,因此既可以说两者存放在堆中,也可以说两则存在于方法区中,这就是容易造成误解的地方。
二、类和对象的内存分配机制
先看下面一段代码
Person p1 = new Person();
p1.age = 10;
p1.name = "小明";
Person p2 = p1;//把p1赋给了p2 让p2指向p1
System.out.println(p2.age);
请问:p2.age究竟是多少?并画出内存图(假设一个地址)
Java 内存的结构分析
1) 栈: 一般存放基本数据类型(局部变量)
2) 堆: 存放对象(Cat cat , 数组等)
3) 方法区:常量池(常量,比如字符串), 类加载信息
边栏推荐
- 软件测试面试题:什么是回归测试?
- @The difference between Autowired annotation and @resource annotation
- 技术管理 - 一定要抓大放小
- 自定义recycleView的删除&移动的动画
- 2021-11-05理解main方法语法、代码块及final关键字
- Software testing interview question: when does the software testing project start? Why?
- 面向3nm及以下工艺,ASML新一代EUV光刻机曝光
- 微软商店无法下载应用,VS2019无法下载插件问题解决方案
- 中英文说明书丨人甲胎蛋白(AFP)ELISA定量试剂盒
- Software test interview question: when saving a text file under windows, a save dialog box will pop up. If a test case is established for the file name, how should equivalent classes be divided?
猜你喜欢
![[2022 Niuke multi School Game 2] k-link with bracket sequence I](/img/95/9d6710bfb7b9282b4a06a5f61a1f08.png)
[2022 Niuke multi School Game 2] k-link with bracket sequence I

Why use MQ message oriented middleware? These questions must be solved

中英文说明书丨 AbFluor 488 细胞凋亡检测试剂盒

LInkedList底层源码

Worthington phospholipase A2 study phosphatidylcholine 2-acetylhydrolase

ACM MM 2022 | 浙大提出:点云分割主动学习新SOTA

异常-Exception

深入理解递归的方法调用(含实例迷宫问题、汉诺塔、猴子吃桃、斐波拉契、阶乘))

怎么还有人问 MySQL 是如何归档数据的呢?

Openai issued a document to introduce the latest application of Dall · E 2: fully enter the field of artistic creation and design
随机推荐
Process management process monitoring and management ps/pstree/top/lsof
ZABBIX monitoring service (III) configuration management graphics and windows
@RequestParam注解的详细介绍
Oppo core making plan officially announced: the first chip or oppo M1
Yyds dry inventory learn how to write function overloads in typescript
@Autowired注解与@Resource注解的区别
除了「加机器」,其实你的微服务还能这样优化
IDEA连接MySQL数据库并执行SQL查询操作
Design of noise reduction link based on DSP
技术管理 - 一定要抓大放小
软件测试面试题:通过画因果图来写测试用例的步骤为___、___、___、___及把因果图转换为状态图共五个步骤。 利用因果图生成测试用例的基本步骤是?
异常-Exception
Commercial delay of self-developed 5g chip? Apple iPhone will adopt Qualcomm 5g chip in the next four years
枚举和注解
day 1 - day 4
UNITY--读取Excel
Worthington蘑菇多酚氧化酶的特性及测定方案
排序(冒泡排序)后面学习持续更新其它排序方法
@Detailed introduction of requestparam annotation
综合设计一个OPPE主页--页面的搜素欧珀部分的样式