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