導航:首頁 > 編程語言 > java引用和指針

java引用和指針

發布時間:2022-07-03 10:55:28

java引用 與 C 的指針

數組就是指針,是固定的指針,不能變更的指針。
·引用只能在定義的時候賦值,或者作為函數的參數
·引用定義的數據與沒有引用前的數據是同一數據,不同的名稱,相當於給舊數據引新名稱
·引用一旦定義,就不能改變,只能在定義時指定,並且其他所有的地方都不能去改變引用關系
當然,指針與引用之間的關系並非是一講半講的內容能夠交待得很透切.

我卻認為JAVA的使用相對安全,而且這也是大多數人認為的。

Ⅱ java的引用和c裡面的指針有何不同String直接賦值和String new出來的有何區別

你好!你的問題太長了,而且,我沒有抓住重點。
所以就你題目來進行部分解答,希望對你有所幫助。

java的引用和c裡面的指針有何不同?
這個我也說不好,java的引用 想當於C的指針,是在JVM堆中的一個地址指向。
如果要說不同,的話,就是我們不能對JVM做什麼,只能對它存儲的值進行操作。
而C是可以對內存進行操作的。

String直接賦值和String new出來的有何區別?
String str = "hello";
String str = new String("hello");

這兩個,在結果上沒有區別。
細微的區別就是 java重寫了「」 這個符號 "" 與 new String();這是等同的。
"hello" 是在 堆 中創建了一個對象,並直接賦值。
new String("hello"); 是創建了兩個對象。
"hello" 創建 了第一個對象。 new String(str) 利用第一個對象的值,創建了第二個對象。

Ⅲ java的引用和c++的指針的區別

1.類型:引用其值為地址的數據元素,java封裝了的地址,可以轉成字元串查看,長度可以不必關心。C++指針是一個裝地址的變數,長度一般是計算機字長,可以認為是個int。
2.所佔內存: 引用聲明時沒有實體,不佔空間。C++指針如果聲明後會用到才會賦值,如果用不到不會分配內存。
3.類型轉換:引用的類型轉換,也可能不成功,拋異,或者IDE就不能通過。C++指針只是個內存地址,指向那裡,對程序來說還都是一個地址,但可能所指的地址不是程序想要的!
4.初始值:引用初始值為java關鍵字null。C++指針是INT,如不初始化指針,那他的值就不是固定的了。
5.計算:引用是不可以計算的。C++指針是INT,所以他可以計算,所以經常用指針來代替數組下標。
6.控制:引用不可以計算,所以他只能在自己程序里,可以被控制。C++指針是內存地址,也可以計算,所以他有可能指向了一個不歸自己程序使用的內存地址,對於其他程序來說是很危險的,對自己程序來說也是不容易被控制的。
7.內存泄露:JAVA引用不會產生內存泄露。C++指針是容易產生內存泄露的,所以程序員要小心使用,及時回收。
8.作為參數:JAVA的方法參數只是傳值,引用做為參數使用時候,回給函數內引用的值的COPY,所以在函數內交換兩個引用參數是沒意義的,因為 函數只交換的參數的COPY值,但在函數內改變一個引用參數的屬性是有意義的,因為引用參數的COPY所引用的對象是和引用參數是同一個對象。 C++指針做為參數給函數使用,實際上就是他所指的地址在被函數操作,所以函數內用指針參數的操作都將直接作用到指針所指向的地址(變數,對象,函數,等 等)。
9.操作符和聲明:java里用"."。C++指針用"->" 用"*"聲明指針。(似乎這條沒什麼用!)
10.本質:java中的引用和C++中的指針本質上都是想通過一個叫做引用或者指針的東西,找到要操作的目標(變數 對象等),方便在程序里操作。所不同的是JAVA的辦法更安全,方便些,但沒有了C++的靈活,高效。
java中的引用和C++中的指針,他們最好不要混在一起,也不要認為是一回事,只不過他們的作用有些相似,總叫人不自覺的對比。但在我們寫 JAVA程序的時候最好忘記C++的指針,寫C++程序的時候,也不要老惦記著JAVA的引用。只要記得 引用無大小,安全,不可計算,強轉時要小心就好了。

Ⅳ 什麼是java引用 和C++里的指針和引用有什麼區別

個人感覺Java引用使用上和C++的指針差不多。Java引用可以為null,指針也可以。java引用和C++的指針一般都要new一個對象才能用。
不過語法上又像C++的引用,可以直接用成員訪問符,僅此而已。
其實C++的指針和引用本身區別也沒有多少,引用這個概念就是從C語言,指針擴展來的。

Ⅳ Java引用和C++指針的區別

1.類型:引用其值為地址的數據元素,java封裝了的地址,可以轉成字元串查看,長度可以不必關心。C++指針是一個裝地址的變數,長度一般是計算機字長,可以認為是個int。

2.所佔內存: 引用聲明時沒有實體,不佔空間。C++指針如果聲明後會用到才會賦值,如果用不到不會分配內存。

3.類型轉換:引用的類型轉換,也可能不成功,拋異,或者IDE就不能通過。C++指針只是個內存地址,指向那裡,對程序來說還都是一個地址,但可能所指的地址不是程序想要的!

4.初始值:引用初始值為java關鍵字null。C++指針是INT,如不初始化指針,那他的值就不是固定的了。

5.計算:引用是不可以計算的。C++指針是INT,所以他可以計算,所以經常用指針來代替數組下標。

6.控制:引用不可以計算,所以他只能在自己程序里,可以被控制。C++指針是內存地址,也可以計算,所以他有可能指向了一個不歸自己程序使用的內存地址,對於其他程序來說是很危險的,對自己程序來說也是不容易被控制的。

7.內存泄露:JAVA引用不會產生內存泄露。C++指針是容易產生內存泄露的,所以程序員要小心使用,及時回收。

8.作為參數:JAVA的方法參數只是傳值,引用做為參數使用時候,回給函數內引用的值的COPY,所以在函數內交換兩個引用參數是沒意義的,因為
函數只交換的參數的COPY值,但在函數內改變一個引用參數的屬性是有意義的,因為引用參數的COPY所引用的對象是和引用參數是同一個對象。
C++指針做為參數給函數使用,實際上就是他所指的地址在被函數操作,所以函數內用指針參數的操作都將直接作用到指針所指向的地址(變數,對象,函數,等
等)。

9.操作符和聲明:java里用"."。C++指針用"->" 用"*"聲明指針。(似乎這條沒什麼用!)

10.本質:java中的引用和C++中的指針本質上都是想通過一個叫做引用或者指針的東西,找到要操作的目標(變數 對象等),方便在程序里操作。所不同的是JAVA的辦法更安全,方便些,但沒有了C++的靈活,高效。

java中的引用和C++中的指針,他們最好不要混在一起,也不要認為是一回事,只不過他們的作用有些相似,總叫人不自覺的對比。但在我們寫
JAVA程序的時候最好忘記C++的指針,寫C++程序的時候,也不要老惦記著JAVA的引用。只要記得
引用無大小,安全,不可計算,強轉時要小心就好了。

參考
http://blog.csdn.net/b271737818/article/details/3931913

Ⅵ Java中的對象類型的引用到底是不是指針

java中並沒有指針的概念,指針是C和C++裡面的概念。 在java中,指針已經被其他的語法所取代,學習起來更加輕松。 以下是java中指針的體現: 比如: Person p = new Person(); p叫做Person類的一個引用,或者是地址。這個和C中的指針地址概念是一...

Ⅶ java中引用類型的變數與c中指針變數的區別

  1. 區別應該很多,理解這些區別應該是建立在對C的指針和對Java引用類型的高度理解之上2的。

  2. 這里說下自己的理解:java中的引用類型可以看成是C中指針概念的封裝。C中指針是一個數值,可以進行各種運算(算術、邏輯、位),但是在java中,這些功能被封裝,是無法使用的。

  3. 根據本題的其他回答更新:java中的參數傳遞是按值傳遞當傳遞的是基礎類型的值時,那麼會將此值復制一份傳遞,當傳遞的是引用類型時候,將會把此引用類型的指針 值復制一份傳遞。比如:public void test(Person p){....}方法中對p的操作,是直接對P在內容中對應的數據直接操作,而不是將P對應的內容中的數據復制一份傳遞到test方法中。

Ⅷ Java中的「引用」和C++中的「指針」有什麼區別

1.類型:引用其值為地址的數據元素,java封裝了的地址,可以轉成字元串查看,長度可以不必關心。C++指針是一個裝地址的變數,長度一般是計算機字長,可以認為是個int。

2.所佔內存: 引用聲明時沒有實體,不佔空間。C++指針如果聲明後會用到才會賦值,如果用不到不會分配內存。

3.類型轉換:引用的類型轉換,也可能不成功,拋異,或者IDE就不能通過。C++指針只是個內存地址,指向那裡,對程序來說還都是一個地址,但可能所指的地址不是程序想要的!

4.初始值:引用初始值為java關鍵字null。C++指針是INT,如不初始化指針,那他的值就不是固定的了。

5.計算:引用是不可以計算的。C++指針是INT,所以他可以計算,所以經常用指針來代替數組下標。

6.控制:引用不可以計算,所以他只能在自己程序里,可以被控制。C++指針是內存地址,也可以計算,所以他有可能指向了一個不歸自己程序使用的內存地址,對於其他程序來說是很危險的,對自己程序來說也是不容易被控制的。

7.內存泄露:JAVA引用不會產生內存泄露。C++指針是容易產生內存泄露的,所以程序員要小心使用,及時回收。

8.作為參數:JAVA的方法參數只是傳值,引用做為參數使用時候,回給函數內引用的值的COPY,所以在函數內交換兩個引用參數是沒意義的,因為
函數只交換的參數的COPY值,但在函數內改變一個引用參數的屬性是有意義的,因為引用參數的COPY所引用的對象是和引用參數是同一個對象。
C++指針做為參數給函數使用,實際上就是他所指的地址在被函數操作,所以函數內用指針參數的操作都將直接作用到指針所指向的地址(變數,對象,函數,等
等)。

9.操作符和聲明:java里用"."。C++指針用"->" 用"*"聲明指針。(似乎這條沒什麼用!)

10.本質:java中的引用和C++中的指針本質上都是想通過一個叫做引用或者指針的東西,找到要操作的目標(變數 對象等),方便在程序里操作。所不同的是JAVA的辦法更安全,方便些,但沒有了C++的靈活,高效。

java中的引用和C++中的指針,他們最好不要混在一起,也不要認為是一回事,只不過他們的作用有些相似,總叫人不自覺的對比。但在我們寫
JAVA程序的時候最好忘記C++的指針,寫C++程序的時候,也不要老惦記著JAVA的引用。只要記得
引用無大小,安全,不可計算,強轉時要小心就好了。

Ⅸ java的引用就是C或者C++里說的指針嗎

個人感覺java引用使用上和c++的指針差不多。java引用可以為null,指針也可以。java引用和c++的指針一般都要new一個對象才能用。
不過語法上又像c++的引用,可以直接用成員訪問符,僅此而已。
其實c++的指針和引用本身區別也沒有多少,引用這個概念就是從c語言,指針擴展來的。

Ⅹ java引用與C語言指針的區別是什麼

java引用與C語言指針的區別有以下幾方面:

1、現象

指針在運行時可以改變其所指向的值,而引用一旦和某個對象綁定後就不再改變,總是指向最初的對象。

2、編譯

程序在編譯時分別將指針和引用添加到符號表上,符號表上記錄的是變數名及變數所對應地址。指針變數在符號表上對應的地址值為指針變數的地址值,而引用在符號表上對應的地址值為引用對象的地址值。符號表生成後就不會再改,因此指針可以改變指向的對象(指針變數中的值可以改),而引用對象不能改。

3、類型

引用其值為地址的數據元素,java封裝了的地址,可以轉成字元串查看,長度可以不必關心;C指針是一個裝地址的變數,長度一般是計算機字長,可以認為是個int。

4、內存佔用

所佔內存:引用聲明時沒有實體,不佔空間。C指針如果聲明後會用到才會賦值,如果用不到不會分配內存。

5、內存溢出

JAVA引用的使用許可權比較小,不會產生內存溢出。C指針是容易產生內存溢出的,所以程序員要小心使用,及時回收。

6、本質

JAVA中的引用和C中的指針本質上都是想通過一個別名,找到要操作的目標(變數對象等),方便在程序里操作。所不同的是JAVA的辦法更安全,使用更加方便些,但沒有了C的靈活,高效。

閱讀全文

與java引用和指針相關的資料

熱點內容
圓命令畫法 瀏覽:303
如果給電腦e盤文件加密 瀏覽:799
javaswing項目 瀏覽:774
androidsdksetup 瀏覽:1001
pdf怎麼設置中文 瀏覽:124
安卓手機用什麼軟體看倫敦金 瀏覽:962
魅族文件夾無名稱 瀏覽:787
蘇黎世無人機演算法 瀏覽:872
核桃編程和小碼王的融資 瀏覽:681
微積分教材pdf 瀏覽:723
寫python給微信好友發消息 瀏覽:336
蚊帳自營米加密 瀏覽:418
學校推薦核桃編程 瀏覽:802
湖南農信app怎麼導明細 瀏覽:471
福特abs編程 瀏覽:506
如何自學安卓手機 瀏覽:437
以太坊源碼共識機制 瀏覽:910
單片機探測器 瀏覽:870
demo編程大賽作品怎麼運行 瀏覽:51
學歷提升用什麼手機軟體App 瀏覽:938