相關(guān)資訊
本類常用軟件
-
福建農(nóng)村信用社手機銀行客戶端下載下載量:584204
-
Windows優(yōu)化大師下載量:416896
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機銀行客戶端下載下載量:365699
-
快播手機版下載量:325855
現(xiàn)在聽說有很多的朋友不能正確的將Java引用于C指針區(qū)別開來,所以特意提供這篇文章給大家學習分享一下,希望能給各位帶來幫助!
首先,在Java中,不存在引用傳遞(也就是地址傳遞)一說,全部都是值傳遞,自然,在使用對象時實際上都是使用的引用
Java語言明確說明取消了指針,因為指針往往是在帶來方便的同時也是導致代碼不安全的根源,同時也會使程序的變得非常復雜難以理解,濫用指針寫成的代碼不亞于使用早已臭名昭著的"GOTO"語句。Java放棄指針的概念絕對是極其明智的。但這只是在Java語言中沒有明確的指針定義,實質(zhì)上每一個new語句返回的都是一個指針的引用,只不過在大多時候Java中不用關(guān)心如何操作這個"指針",更不用象在操作C++的指針那樣膽戰(zhàn)心驚。
非也,基本類型數(shù)據(jù)存放在Stack中,存放的是數(shù)據(jù)。而產(chǎn)生對象時,只把對象的reference存放在stack中,用于指向某個對象,對象本身存放在Heap中。
還有,調(diào)用方法時傳遞的參數(shù)以及在調(diào)用中創(chuàng)建的臨時變量都保存在棧(Stack)中,速度較快。其他變量,如靜態(tài)變量、實例變量等,都在堆(Heap)中創(chuàng)建,速度較慢。另外,依賴于具體的編譯器/JVM,局部變量還可能得到進一步優(yōu)化。
從實現(xiàn)上來講,引用可以理解為一種受限的指針,引用底層可以采用指針來實現(xiàn),也可以采用句柄的方式實現(xiàn)。早期jvm一般采用句柄的方式,現(xiàn)在的jvm,比如sun的,IBM的,一般就是用指針來實現(xiàn)。
不過從語言的角度來將,沒有必要把java的引用和C的指針來比較。
指針是可以進行與整數(shù)做加減運算的,兩個指針之間也可以進行大小比較運算和相減運算。
引用不行,只能進行賦值運算。
當然有區(qū)別
Aa=newA();
你可以a=a+1;嗎?指針就可以