句柄?指针?

看视频突然听到一个概念,句柄
很懵,我心想指针是指向资源地址的,比如一个对象的首地址
那句柄是什么呢,好像也是指向对象地址的
好好想一下,对象在内存中的地址是会变化的
为什么呢,拿java举例,对象在堆中存储,随着堆的垃圾回收,对象很有可能位置发生变化
当然,这是为了让内存的利用率更高,减少碎片化
但是我们可以发现,我们在java中使用的引用(类似指针)似乎并不需要随着内存的整理而变化的
这很神奇,其实我们使用的指针并不是直接指向资源的直接地址的,而是一个句柄
这个句柄存储了资源的实际地址,随着内存的整理,这个句柄指向的地址也随之变化,但是句柄本身不变
也就是说,不管内存怎么整理,资源是否移动,句柄都能记录下来实际的位置,我们只需要访问句柄可
所以句柄和指针就明白了,学到了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值