什么是java句柄_JAVA中的术语:句柄是啥意思
句柄的本質(zhì):一個唯一的整數(shù),作為對象的身份id,區(qū)分不同的對象,和同類中的不同實例。程序可以通過句柄訪問對象的部分信息。句柄不代表對象的內(nèi)存地址。
句柄和指針的區(qū)別:程序不能通過句柄直接閱讀文件中的信息,指針是可以的。從所起的作用這點來說,句柄就是弱化后的指針,更安全,功能減少。
如果句柄不再I/O文件中,毫無用處。
說了那么多,其實就是:對象的引用,或者說指針也湊合能理解。
每種編程語言都有自己的數(shù)據(jù)處理方式。有些時候,程序員必須時刻留意準(zhǔn)備處理的是什么類型。您曾利用一些特殊語法直接操作過對象,或處理過一些間接表示的對象嗎(C或C++里的指針)?
所有這些在Java里都得到了簡化,任何東西都可看作對象。因此,我們可采用一種統(tǒng)一的語法,任何地方均可照搬不誤。但要注意,盡管將一切都“看作”對象,但操縱的標(biāo)識符實際是指向一個對象的“句柄”(Handle)。在其他Java參考書里,還可看到有的人將其稱作一個“引用”,甚至一個“指針”。可將這一情形想象成用遙控板(句柄)操縱電視機(對象)。只要握住這個遙控板,就相當(dāng)于掌握了與電視機連接的通道。但一旦需要“換頻道”或者“關(guān)小聲音”,我們實際操縱的是遙控板(句柄),再由遙控板自己操縱電視機(對象)。如果要在房間里四處走走,并想保持對電視機的控制,那么手上拿著的是遙控板,而非電視機。
此外,即使沒有電視機,遙控板亦可獨立存在。也就是說,只是由于擁有一個句柄,并不表示必須有一個對象同它連接。所以如果想容納一個詞或句子,可創(chuàng)建一個String句柄:
String s;
但這里創(chuàng)建的只是句柄,并不是對象。若此時向s發(fā)送一條消息,就會獲得一個錯誤(運行期)。這是由于s實際并未與任何東西連接(即“沒有電視機”)。因此,一種更安全的做法是:創(chuàng)建一個句柄時,記住無論如何都進行初始化:
String s = "asdf";
然而,這里采用的是一種特殊類型:字串可用加引號的文字初始化。通常,必須為對象使用一種更通用的初始化類型。
總結(jié)
以上是生活随笔為你收集整理的什么是java句柄_JAVA中的术语:句柄是啥意思的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决 Win11 开机ctfmon.ex
- 下一篇: 互联网IT工程师需要具备哪些技能?