Java中的引用与C中的指针
C
指針就是一個值,而這個值是某塊內(nèi)存的地址,通過這個值,就可以找到這塊內(nèi)存
C語言的指針具有以下特點:
C語言的指針可以指向內(nèi)存的任何地方
C語言的指針可以參與數(shù)值運算,加法、減法
C語言的指針還可以指向指針,以及指向指向指針的指針(因為指針就是一個值,也要存在內(nèi)存中,所以它也有一個內(nèi)存地址)
指針這個東西,只關(guān)心內(nèi)存的地址,不關(guān)心內(nèi)存存的是什么東西,如果該地址中的對象被搬走了,指針不會自動改變指向
Java
Java的引用也是一個值,但是這個值不是某塊內(nèi)存的地址,而是某個值所在內(nèi)存的地址
在JAVA中數(shù)據(jù)可以簡單分為兩種類型,基本類型和引用類型
繼續(xù)細分的話基本類型又可以分為
四種整數(shù)型 byte、short、int、long
兩種浮點型 float、double
一種字符類型 char
一種布爾型 boolean
引用類型可以說有無數(shù)種,包括 String、數(shù)組、Object等等
在java種只有引用類型才有引用
引用類型在內(nèi)存分配時,會分配兩塊內(nèi)存,一塊存儲引用,一塊存儲值
在定義變量時,引用沒有實體,不占空間,只有在變量賦值時,引用才有實際值
他關(guān)注的是值,當(dāng)值搬家后,引用也會跟著改──內(nèi)存碎片整理
Java只有值傳遞,所謂的引用傳遞,傳遞的是引用的值
Java的引用與c的指針的區(qū)別
C的指針是某塊內(nèi)存的地址
C的指針的值可以認為是個int類型,長度一般是計算機字長
Java的引用是某個值所在內(nèi)存的地址
Java的引用,聲明變量時(不賦值),不占空間。(原因見引用類型內(nèi)存分配)
Java的引用初始值為 null。C的指針是int,如不初始化指針,那它的值就不是固定的了
Java的引用不可以計算。C的指針是int,他可以計算,如++或–,所以經(jīng)常用指針來代替數(shù)組下標
總結(jié)
以上是生活随笔為你收集整理的Java中的引用与C中的指针的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: print 和 printf 和 pri
- 下一篇: java美元兑换,(Java实现) 美元