2013-08-23 57 views
1

在C/C++,可以做的事情一樣如何做類型轉換爲指針類型的Java像C/C

float b = 3.; 
int a = *(int*)&b; 

我想要做同樣的事情在Java中,是有可能,如果又怎樣?

謝謝。

+1

有一個規劃問題,你試圖解決,或你只是試圖確保Java和C有不同的做事方式。 – dcaswell

回答

2

Pointers在java中不可用。你必須使用Object

Float f = new Float(3.0); 
Integer i = Math.round(f); 
+0

我知道。這就是爲什麼我問。 :) – Dan

3

JAVA中沒有POINTER類的東西。 JAVA有一個稱爲內存管理的功能,或者說GC(垃圾回收器)來處理所有與內存相關的操作。您不允許使用內存地址訪問任何內存塊。

+2

雖然應該指出,垃圾回收和指針並不相互排斥。 .NET Framework有一個垃圾收集器_and_指針。 – zneak

0

Java根據指針實現一切。所以Java中的任何對象變量都將作爲指針引用傳遞。他們讓Java開發人員看不到它。 從float或double轉換爲int,你可以簡單地嘗試

double b = 3.0; 
int a = (int)b; 

注意,如果B = 1.x的則a = 1

+0

你不能在c中點亮嗎? –

+0

把一個double轉換成一個int並讀取這個double位,就好像它們是一個int一樣,是兩個完全不同的東西,OP正在嘗試做第二個。 – zneak