2014-05-10 25 views
3

我對Java中的變量類型有疑問。 如果我有一個長變量(稱爲x)和一個int變量(稱爲y), (x/y)的類型是什麼?數學操作後的變量類型

我試過使用「instanceof」選項,但它沒有幫助我。

IMO它很長,但我只是想確定。提前致謝!

+1

下面是一些文檔.. http://docs.oracle.com/javase/specs/jls/se7 /html/jls-5.html#jls-5.1.2 –

回答

8

A long/intlong由於擴大規則,這基本上是任何兩個值的結果是其中任何一個範圍的「最寬」。 byte,shortchar類型在任何使用其他編號的操作中被轉換爲int。 (但不是像String + char一個字符串)

注:long % int也是long即使它不可能是一個int的範圍之外同樣int/longlong即使它只能是在int的範圍

注2:int * int仍然是int,即使存在溢流的可能性很大。

您只能在對象實例上使用instanceof。基元不是實例。


您可能會發現這些方法有用

public static void main(String... ignored) { 
    System.out.println("2/1L is " + toString(2/1L)); 
} 

public static String toString(boolean b) { 
    return "boolean " + b; 
} 

public static String toString(byte b) { 
    return "byte " + b; 
} 

public static String toString(char x) { 
    return "char " + x; 
} 

public static String toString(short x) { 
    return "short " + x; 
} 

public static String toString(int x) { 
    return "int " + x; 
} 

public static String toString(long x) { 
    return "long " + x; 
} 

public static String toString(float x) { 
    return "float " + x; 
} 

public static String toString(double x) { 
    return "double " + x; 
} 

打印

2/1L is long 2 
+0

@ user3623297我已更新我的答案。 –

相關問題