什麼是句柄??

    句柄就是指針的指針。

    學習windows編程的時候總是會接觸到一個名詞叫做句柄,這個詞曾經困擾了我很久,始終不能理解對象的標識這個東西,知道前兩天看了java的一本書,介紹java裏邊的引用實現手段,提到了句柄,這才明白句柄相對於指針存在的意義。

    說簡單點,句柄就是一種指針,也就是一塊內存區域,存放對象的地址。但是這個句柄指針是由操作系統統一管理的。它的必要性就在於,操作系統中的對象地址是會發生變化的,比如windows內存不夠用的時候,系統會將一部分內存中的對象移動到硬盤上,稱之爲虛擬內存。這在java虛擬機裏邊尤其重要,因爲java有一個內存回收的過程,這個過程會涉及到對象的移動,爲了不影響原來程序中指針的指向,就提供了這麼的一個第三方的指針,稱之爲句柄。

   所以概括說來:句柄就相當於一個第三方,由操作系統維護的一個指針,它存在的理由是對象的地址會被改變,而程序員不需要對這種改變負責,只需要對句柄負責就可以了。


   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章