Java引用與C指針的區(qū)別如下:
1、現(xiàn)象
指針在運(yùn)行時(shí)可以改變其所指向的值(地址)即指向其它變量,而引用一旦和某個(gè)對(duì)象綁定后就不能再改變,總是指向最初的對(duì)象。
2、編譯
程序在編譯時(shí)分別將指針和引用添加到符號(hào)表上,符號(hào)表上記錄的是變量名以及變量所對(duì)應(yīng)的地址。
(相關(guān)視頻教程分享:java視頻教程)
指針變量在符號(hào)表上對(duì)應(yīng)的地址值為指針變量的地址值,而引用在符號(hào)表上對(duì)應(yīng)的地址值為引用對(duì)象的地址值。符號(hào)表生成后就不會(huì)再改,因此指針可以改變,因此指針可以改變指向的對(duì)象(指針變量中的值可以改),而引用對(duì)象不能改。
3、類型
引用其值為地址的數(shù)據(jù)元素,Java封裝了的地址,可以轉(zhuǎn)成字符串查看,長(zhǎng)度可以不必關(guān)心,C指針是一個(gè)裝地址的變量,長(zhǎng)度一般是計(jì)算機(jī)字長(zhǎng),可以認(rèn)為是個(gè)int
4、內(nèi)存占用
所占內(nèi)存:引用聲明時(shí)沒(méi)有實(shí)體,不占空間,C指針如果聲明后會(huì)用到才會(huì)賦值,如果用不到不會(huì)分配內(nèi)存
5、內(nèi)存溢出
java引用的使用權(quán)限比較小,不會(huì)產(chǎn)生內(nèi)存溢出。C指針是容易產(chǎn)生內(nèi)存溢出的,所以程序員需小心使用、及時(shí)回收。
相關(guān)文章教程推薦:java入門教程