首页 技术 正文
技术 2022年11月16日
0 收藏 480 点赞 3,683 浏览 507 个字

对象内存分析,我一直学的比较模糊,今天抽空整理一下,希望能理清。

先说一下,内存分析从何而来,这对于我们这些刚接触java的人来说都比较模糊,就从new关键字说起吧。

new关键字表示创建一个对象或者说是实例化对象或者说是申请内存空间,所有程序运行都需要内存来存储数据,这样内存的概念就出来了。举个例子说明:定义一个类Person,属性:char a;int sge;那么创建一个对象申请的内存空间就是所有属性所占字节之和,为6个字节。

详细理一下对象在内存中的结构:

Person p=new Person(); Person p1=new Person();

栈内存           堆内存

            p           

name=null

age=0

p1  
a=10(局部变量)  

没有赋值默认为空。栈内存中存放的为类对象或者是局部变量(基本数据类型)。局部变量:作用于某个方法;

全局变量:作用于整个类

如果p1=p;p和p1就指向同一块堆内存,p1原来指向的内存就没有被引用,就当垃圾回收了。

值传递在栈内存中进行,直接将值复制一份过来。

引用传递在堆内存中通过地址进行传值。比如p和p1地址一样,它们就指向同一块内存。

差不多了,关于内存分析就总结到这了。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,999
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,511
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,357
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,140
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,770
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,848