JavaTM 2 Platform
Standard Ed. 6

java.lang
類別 Long

java.lang.Object
  繼承者 java.lang.Number
      繼承者 java.lang.Long
所有已實作的介面:
Serializable, Comparable<Long>

public final class Long
extends Number
implements Comparable<Long>

Long 類別在物件中包裹了基本型別 long 的值。每個 Long 型別的物件都包含一個 long 型別的欄位。

此外,該類別提供了多個方法,可以將 long 轉換為 String,將 String 轉換為 long,除此之外,還提供了其他一些處理 long 時有用的常數和方法。

實作注意事項:"bit twiddling" 方法(如 highestOneBitnumberOfTrailingZeros)的實作基於 Henry S. Warren 和 Jr. 撰寫的 Hacker's Delight (Addison Wesley, 2002) 一書中的資料。

從以下版本開始:
JDK1.0
另請參見:
序列化表格

欄位摘要
static long MAX_VALUE
          保持 long 型別的最大值的常數,該值為 263-1。
static long MIN_VALUE
          保持 long 型別的最小值的常數,該值為 -263
static int SIZE
          用來以二進制補碼形式表示 long 值的位數。
static Class<Long> TYPE
          表示基本型別 longClass 實例。
 
建構子摘要
Long(long value)
          建構新分派的 Long 物件,表示指定的 long 參數。
Long(String s)
          建構新分派的 Long 物件,表示由 String 參數指示的 long 值。
 
方法摘要
static int bitCount(long i)
          返回指定 long 值的二進制補碼表示形式中的 1 位的數量。
 byte byteValue()
          以 byte 形式返回此 Long 的值。
 int compareTo(Long anotherLong)
          在數字上比較兩個 Long 物件。
static Long decode(String nm)
          將 String 解碼成 Long
 double doubleValue()
          以 double 形式返回此 Long 的值。
 boolean equals(Object obj)
          將此物件與指定物件進行比較。
 float floatValue()
          以 float 形式返回此 Long 的值。
static Long getLong(String nm)
          確定具有指定名稱的系統屬性的 long 值。
static Long getLong(String nm, long val)
          使用指定名稱確定系統屬性的 long 值。
static Long getLong(String nm, Long val)
          使用指定名稱返回系統屬性的 long 值。
 int hashCode()
          返回 Long 的雜湊碼。
static long highestOneBit(long i)
          返回至多有一個 1 位的 long 值,在指定的 long 值中最高位(最左邊)的 1 位的位置。
 int intValue()
          以 int 形式返回此 Long 的值。
 long longValue()
          以 long 值的形式返回此 Long 的值。
static long lowestOneBit(long i)
          返回至多有一個 1 位的 long 值,在指定的 long 值中最低位(最右邊)的 1 位的位置。
static int numberOfLeadingZeros(long i)
          在指定 long 值的二進制補碼表示形式中最高位(最左邊)的 1 位之前,返回零位的數量。
static int numberOfTrailingZeros(long i)
          返回在指定 long 值的二進制補碼表示形式中最低位(最右邊)的 1 位之後的零位的數量。
static long parseLong(String s)
          將 string 參數解析為有符號十進制 long
static long parseLong(String s, int radix)
          將 string 參數解析為有符號的 long,進制由第二個參數指定。
static long reverse(long i)
          返回通過反轉指定 long 值的二進制補碼表示形式中位的順序而獲得的值。
static long reverseBytes(long i)
          返回通過反轉指定 long 值的二進制補碼表示形式中位元組的順序而獲得的值。
static long rotateLeft(long i, int distance)
          返回根據指定的位數循環左移指定的 long 值的二進制補碼表示形式而得到的值。
static long rotateRight(long i, int distance)
          返回根據指定的位數循環右移指定的 long 值的二進制補碼表示形式而得到的值。
 short shortValue()
          以 short 形式返回此 Long 的值。
static int signum(long i)
          返回指定 long 值的符號函數。
static String toBinaryString(long i)
          以二進制無符號整數形式返回 long 參數的字元串表示形式。
static String toHexString(long i)
          以十六進制無符號整數形式返回 long 參數的字元串表示形式。
static String toOctalString(long i)
          以八進制無符號整數形式返回 long 參數的字元串表示形式。
 String toString()
          返回表示 Long 值的 String 物件。
static String toString(long i)
          返回表示指定 longString 物件。
static String toString(long i, int radix)
          返回在使用第二個參數指定的進制時第一個參數的字元串表示形式。
static Long valueOf(long l)
          返回表示指定 long 值的 Long 實例。
static Long valueOf(String s)
          返回保持指定 String 的值的 Long 物件。
static Long valueOf(String s, int radix)
          當使用第二個參數給出的進制進行解析時,返回保持從指定 String 中提取的值的 Long 物件。
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

MIN_VALUE

public static final long MIN_VALUE
保持 long 型別的最小值的常數,該值為 -263

另請參見:
常數欄位值

MAX_VALUE

public static final long MAX_VALUE
保持 long 型別的最大值的常數,該值為 263-1。

另請參見:
常數欄位值

TYPE

public static final Class<Long> TYPE
表示基本型別 longClass 實例。

從以下版本開始:
JDK1.1

SIZE

public static final int SIZE
用來以二進制補碼形式表示 long 值的位數。

從以下版本開始:
1.5
另請參見:
常數欄位值
建構子詳細資訊

Long

public Long(long value)
建構新分派的 Long 物件,表示指定的 long 參數。

參數:
value - Long 物件表示的值。

Long

public Long(String s)
     throws NumberFormatException
建構新分派的 Long 物件,表示由 String 參數指示的 long 值。該字元串被轉換為 long 值,其方式與 radix 參數為 10 的 parseLong 方法所使用的方式一致。

參數:
s - 要轉換為 LongString
拋出:
NumberFormatException - 如果 String 不包含可解析的 long
另請參見:
parseLong(java.lang.String, int)
方法詳細資訊

toString

public static String toString(long i,
                              int radix)
返回在使用第二個參數指定的進制時第一個參數的字元串表示形式。

如果該進制小於 Character.MIN_RADIX,或大於 Character.MAX_RADIX,則使用進制 10

如果第一個參數是負數,則結果的第一個元素是 ASCII 字元的減號 '-' ('\u002d')。如果第一個參數非負,則結果中不會出現符號字元。

結果的其餘字元表示第一個參數的大小。如果大小為零,則用單個零字元 '0' 表示它 ('\u0030');否則大小表示形式中的第一個字元將不是零字元。以下 ASCII 字元均被用作數字:

0123456789abcdefghijklmnopqrstuvwxyz
 
這些是從 '\u0030''\u0039' 和從 '\u0061''\u007a' 的字元。如果 radixN,則這些字元的第一個 N 用作顯示順序中進制 N 的數字。因此,該數字的十六進制(進制 16)表示形式為 0123456789abcdef。如果需要使用大寫字母,則可以在結果上調用 String.toUpperCase() 方法:
Long.toString(n, 16).toUpperCase()
 

參數:
i - 要轉換為字元串的 long
radix - 將在字元串表示形式中使用的進制。
返回:
指定進制中參數的字元串表示形式。
另請參見:
Character.MAX_RADIX, Character.MIN_RADIX

toHexString

public static String toHexString(long i)
以十六進制無符號整數形式返回 long 參數的字元串表示形式。

如果參數為負,則無符號 long 值為該參數加上 264;否則,它等於該參數。此值將被轉換為不帶附加前導 0 的十六進制(進制 16)ASCII 數字字元串。如果無符號大小為零,則該數字由單個零字元 '0' 表示 ('\u0030');否則,無符號大小表示形式中的第一個字元將不是零字元。下列字元都被用作十六進制數字:

0123456789abcdef
 
這些是從 '\u0030''\u0039' 和從 '\u0061''\u0066' 的字元。如果需要使用大寫字母,則可以在結果上調用 String.toUpperCase() 方法:
Long.toHexString(n).toUpperCase()
 

參數:
i - 要轉換為字元串的 long
返回:
十六進制(進制 16)參數表示的無符號 long 值的字元串表示形式。
從以下版本開始:
JDK 1.0.2

toOctalString

public static String toOctalString(long i)
以八進制無符號整數形式返回 long 參數的字元串表示形式。

如果參數為負,則無符號 long 值為該參數加上 264;否則,它等於該參數。此值將被轉換為不帶附加前導 0 的八進制(進制 8)ASCII 數字字元串。

如果無符號大小為零,則該數字用單個零字元 '0' ('\u0030') 表示,否則無符號大小表示形式中的第一個字元將不是零字元。以下字元都用作八進制數字:

 01234567
 
這些是從 '\u0030''\u0037' 的字元。

參數:
i - 要轉換為字元串的 long
返回:
八進制(進制 8)參數表示的無符號 long 值的字元串表示形式。
從以下版本開始:
JDK 1.0.2

toBinaryString

public static String toBinaryString(long i)
以二進制無符號整數形式返回 long 參數的字元串表示形式。

如果參數為負數,則無符號 long 值為該參數加上 264;否則,它等於該參數。此值將被轉換為不帶附加前導 0 的二進制(進制 2)ASCII 數字字元串。如果無符號大小為零,則用單個零字元 '0' 表示它 ('\u0030');否則,無符號大小表示形式中的第一個字元將不是零字元。字元 '0' ('\u0030') 和 '1' ('\u0031') 被用作二進制位。

參數:
i - 要轉換為字元串的 long
返回:
二進制 (base 2) 參數表示的無符號 long 值的字元串表示形式。
從以下版本開始:
JDK 1.0.2

toString

public static String toString(long i)
返回表示指定 longString 物件。該參數被轉換為有符號的十進製表示形式,並作為字元串返回,該字元串與用該參數和進制 10 作為參數的 toString(long, int) 方法所得到的值非常相似。

參數:
i - 要轉換的 long
返回:
十進制參數的字元串表示形式。

parseLong

public static long parseLong(String s,
                             int radix)
                      throws NumberFormatException
將 string 參數解析為有符號的 long,進制由第二個參數指定。字元串中的字元必須為指定進制中的數字(由 Character.digit(char, int) 是否返回一個非負值來確定),除非第一個字元為 ASCII 字元的減號 '-' ('\u002D'),它表示一個負值。返回得到的 long 值。

注意,不允許將字元 L ('\u004C') 和 l ('\u006C') 作為型別指示符出現在字元串的結尾處,而這一點在 Java 程式語言源程式碼中是允許的——除非 Ll 以大於 22 的進制形式出現。

如果出現以下情形之一,則拋出 NumberFormatException 型別的異常:

範例:

parseLong("0", 10) returns 0L
parseLong("473", 10) returns 473L
parseLong("-0", 10) returns 0L
parseLong("-FF", 16) returns -255L
parseLong("1100110", 2) returns 102L
parseLong("99", 8) returns NumberFormatException
parseLong("Hazelnut", 10) returns NumberFormatException
parseLong("Hazelnut", 36) returns 1356099454469L

參數:
s - 套件含要解析的 long 表示形式的 String
radix - 將在解析 s 時使用的進制。
返回:
由指定進制中的字元串參數表示的 long
拋出:
NumberFormatException - 如果字元串不包含可解析的 long

parseLong

public static long parseLong(String s)
                      throws NumberFormatException
將 string 參數解析為有符號十進制 long。字元串中的字元必須都是十進制數字,除非第一個字元是 ASCII 字元的減號 '-' (\u002D'),它表示一個負值。返回得到的 long 值,該值與用該參數和進制 10 作為參數的 parseLong(java.lang.String, int) 方法得到的值非常相似。

注意,不允許將字元 L ('\u004C') 和 l ('\u006C') 作為型別指示符出現在字元串的結尾處,這一點在 Java 程式語言源程式碼中是允許的。

參數:
s - 套件含要解析的 long 表示形式的 String
返回:
十進制參數表示的 long
拋出:
NumberFormatException - 如果字元串不包含可解析的 long

valueOf

public static Long valueOf(String s,
                           int radix)
                    throws NumberFormatException
當使用第二個參數給出的進制進行解析時,返回保持從指定 String 中提取的值的 Long 物件。第一個參數被解釋為有符號的 long,進制由第二個參數指定,該值與用該參數作為參數的 parseLong(java.lang.String, int) 方法得到的值非常類似。結果是表示字元串指定的 long 值的 Long 物件。

換句話說,此方法返回一個 Long 物件,它的值等於:

new Long(Long.parseLong(s, radix))

參數:
s - 要解析的字元串
radix - 將在解釋 s 時使用的進制
返回:
保持由指定進制中的字元串參數表示的值的 Long 物件。
拋出:
NumberFormatException - 如果 String 不包含可解析的 long

valueOf

public static Long valueOf(String s)
                    throws NumberFormatException
返回保持指定 String 的值的 Long 物件。該參數被解釋為表示一個有符號的十進制 long,該值與用該參數作為參數的 parseLong(java.lang.String) 方法得到的值非常相似。結果是表示由字元串指定的整數值的 Long 物件。

換句話說,此方法返回一個 Long 物件,它的值等於:

new Long(Long.parseLong(s))
 

參數:
s - 要解析的字元串。
返回:
包含由字元串參數表示的值的 Long 物件。
拋出:
NumberFormatException - 如果不能將字元串解析為 long

valueOf

public static Long valueOf(long l)
返回表示指定 long 值的 Long 實例。如果不需要新的 Long 實例,則通常優先使用此方法,而不是使用建構子 Long(long),因為此方法通過快取記憶體頻繁請求的值,可以顯著提高時間和空間性能。

參數:
l - long 值。
返回:
表示 lLong 實例。
從以下版本開始:
1.5

decode

public static Long decode(String nm)
                   throws NumberFormatException
String 解碼成 Long。接受通過以下語法給出的十進制、十六進制和八進制數:
DecodableString:
Signopt DecimalNumeral
Signopt 0x HexDigits
Signopt 0X HexDigits
Signopt # HexDigits
Signopt 0 OctalDigits

Sign:
-
DecimalNumeralHexDigitsOctalDigitsJava Language Specification 中的§3.10.1 中已經定義。

跟在(可選)負號和/或進制說明符("0x"、"0X"、"#" 或前導零)後面的字元的順序由 Long.parseLong 方法通過指示的進制(10、16 或 8)來解析。字元的順序必須表示為一個正值,否則將拋出 NumberFormatException。如果指定 String 的第一個字元是減號,則結果無效。String 中不允許出現空白字元。

參數:
nm - 要解碼的 String
返回:
保持由 nm 表示的 long 值的 Long 物件
拋出:
NumberFormatException - 如果 String 不包含可解析的 long
從以下版本開始:
1.2
另請參見:
parseLong(String, int)

byteValue

public byte byteValue()
byte 形式返回此 Long 的值。

覆寫:
類別 Number 中的 byteValue
返回:
轉換為 byte 型別後該物件表示的數值。

shortValue

public short shortValue()
short 形式返回此 Long 的值。

覆寫:
類別 Number 中的 shortValue
返回:
轉換為 short 型別後該物件表示的數值。

intValue

public int intValue()
int 形式返回此 Long 的值。

指定者:
類別 Number 中的 intValue
返回:
轉換為 int 型別後該物件表示的數值。

longValue

public long longValue()
long 值的形式返回此 Long 的值。

指定者:
類別 Number 中的 longValue
返回:
轉換為 long 型別後該物件表示的數值。

floatValue

public float floatValue()
float 形式返回此 Long 的值。

指定者:
類別 Number 中的 floatValue
返回:
轉換為 float 型別後該物件表示的數值。

doubleValue

public double doubleValue()
double 形式返回此 Long 的值。

指定者:
類別 Number 中的 doubleValue
返回:
轉換為 double 型別後該物件表示的數值。

toString

public String toString()
返回表示 Long 值的 String 物件。該值被轉換為有符號十進製表示形式,並作為字元串返回,該字元串與用 long 值作為參數的 toString(long) 方法得到的字元串非常相似。

覆寫:
類別 Object 中的 toString
返回:
十進制物件值的字元串表示形式。

hashCode

public int hashCode()
返回 Long 的雜湊碼。結果是此 Long 物件保持的基本 long 值的兩個部分的異或 (XOR)。也就是說,雜湊碼就是表達式的值:
(int)(this.longValue()^(this.longValue()>>>32))
 

覆寫:
類別 Object 中的 hashCode
返回:
此物件的雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
將此物件與指定物件進行比較。當且僅當該參數不是 null,且 Long 物件與此物件包含相同的 long 值時,結果才為 true

覆寫:
類別 Object 中的 equals
參數:
obj - 要與之進行比較的物件。
返回:
如果物件相同,則返回 true;否則,返回 false
另請參見:
Object.hashCode(), Hashtable

getLong

public static Long getLong(String nm)
確定具有指定名稱的系統屬性的 long 值。

第一個參數被視為系統屬性的名稱。通過 System.getProperty(java.lang.String) 方法可以存取該系統屬性。然後,以 long 值的形式解釋此屬性的字元串值,並返回表示此值的 Long 物件。在 getProperty 的定義中可以找到可能的數字格式的詳細資訊。

如果指定名稱沒有屬性,或者指定名稱為空或 null,抑或屬性不具有正確的數字格式時,則返回 null

換句話說,此方法返回一個 Long 物件,它的值等於:

getLong(nm, null)

參數:
nm - 屬性名。
返回:
屬性的 Long 值。
另請參見:
System.getProperty(java.lang.String), System.getProperty(java.lang.String, java.lang.String)

getLong

public static Long getLong(String nm,
                           long val)
使用指定名稱確定系統屬性的 long 值。

第一個參數被視為系統屬性的名稱。通過 System.getProperty(java.lang.String) 方法可以存取該系統屬性。然後,以 long 值的形式解釋此屬性的字元串值,並返回表示此值的 Long 物件。在 getProperty 的定義中可以找到可能的數字格式的詳細資訊。

第二個參數是預設值。如果指定的名稱沒有屬性,或者該屬性不具備正確的數字格式,抑或指定名稱為空或 null,則返回表示第二個參數的值的 Long 物件。

換句話說,此方法返回一個 Long 物件,它的值等於:

getLong(nm, new Long(val))
但是實際上,它可能通過以下方式實作:
Long result = getLong(nm, null);
return (result == null) ? new Long(val) :result;
 
這樣可以避免不需要預設值時進行的不必要的 Long 物件分派。

參數:
nm - 屬性名。
val - 預設值。
返回:
屬性的 Long 值。
另請參見:
System.getProperty(java.lang.String), System.getProperty(java.lang.String, java.lang.String)

getLong

public static Long getLong(String nm,
                           Long val)
使用指定名稱返回系統屬性的 long 值。第一個參數被視為系統屬性的名稱。通過 System.getProperty(java.lang.String) 方法可以存取該系統屬性。然後,以 long 值的形式解釋此屬性的字元串值,並且按照 Long.decode 方法返回表示此值的 Long 物件。

注意,在所有情況下,都不允許將 L ('\u004C') 和 l ('\u006C') 作為型別指示符出現在屬性值的結尾處,這一點在 Java 程式語言源程式碼中是允許的。

第二個參數是預設值。如果指定的名稱沒有屬性,或者屬性不具有正確的數字格式,抑或指定名稱為空或 null,則返回預設值。

參數:
nm - 屬性名。
val - 預設值。
返回:
屬性的 Long 值。
另請參見:
System.getProperty(java.lang.String), System.getProperty(java.lang.String, java.lang.String), decode(java.lang.String)

compareTo

public int compareTo(Long anotherLong)
在數字上比較兩個 Long 物件。

指定者:
介面 Comparable<Long> 中的 compareTo
參數:
anotherLong - 要比較的 Long
返回:
如果 Long 等於參數 Long,則返回 0 值;如果 Long 在數字上小於參數 Long,則返回小於 0 的值;如果 Long 在數字上大於參數 Long,則返回大於 0 的值(有符號比較)。
從以下版本開始:
1.2

highestOneBit

public static long highestOneBit(long i)
返回至多有一個 1 位的 long 值,在指定的 long 值中最高位(最左邊)的 1 位的位置。如果指定值在其二進制補碼表示形式中沒有 1 位,即等於零,則返回零。

返回:
返回具有單個 1 位的 long 值,在指定值中最高位的 1 位的位置;否則,如果指定值本身等於零,則返回零。
從以下版本開始:
1.5

lowestOneBit

public static long lowestOneBit(long i)
返回至多有一個 1 位的 long 值,在指定的 long 值中最低位(最右邊)的 1 位的位置。如果指定值在其二進制補碼表示形式中沒有 1 位,即等於零,則返回零。

返回:
返回具有單個 1 位的 long 值,在指定值中最低位的 1 位的位置;否則,如果指定值本身等於零,則返回零。
從以下版本開始:
1.5

numberOfLeadingZeros

public static int numberOfLeadingZeros(long i)
在指定 long 值的二進制補碼表示形式中最高位(最左邊)的 1 位之前,返回零位的數量。如果指定值在其二進制補碼表示形式中不存在 1 位,換句話說,如果它等於零,則返回 64。

注意,此方法與二進制對數密切相關。對於所有的正 long 值 x:

返回:
返回在指定 long 值的二進制補碼表示形式中最高位(最左邊)的 1 位之前的零位的數量;否則,如果該值等於零,則返回 64。
從以下版本開始:
1.5

numberOfTrailingZeros

public static int numberOfTrailingZeros(long i)
返回在指定 long 值的二進制補碼表示形式中最低位(最右邊)的 1 位之後的零位的數量。如果指定值在其二進制補碼表示形式中不存在 1 位,換句話說,如果它等於零,則返回 64。

返回:
返回在指定 long 值的二進制補碼表示形式中最低位(最右邊)的 1 位之後零位的數量;否則,如果該值等於零,則返回 64。
從以下版本開始:
1.5

bitCount

public static int bitCount(long i)
返回指定 long 值的二進制補碼表示形式中的 1 位的數量。此功能有時被稱為填充計算

返回:
返回指定 long 值的二進制補碼表示形式的 1 位的數量。
從以下版本開始:
1.5

rotateLeft

public static long rotateLeft(long i,
                              int distance)
返回根據指定的位數循環左移指定的 long 值的二進制補碼表示形式而得到的值。(位是從左邊(即高位)移出,從右邊(即低位)再進入)

注意,使用負距離的左循環等同於右循環:rotateLeft(val, -distance) == rotateRight(val, distance)。另請注意,使用 64 的倍數循環無效,因此除了最後六位,所有循環距離都可以忽略,即使距離是負值:rotateLeft(val, distance) == rotateLeft(val, distance & 0x3F)

返回:
返回根據指定的位數循環左移指定的 long 值的二進制補碼表示形式而得到的值。
從以下版本開始:
1.5

rotateRight

public static long rotateRight(long i,
                               int distance)
返回根據指定的位數循環右移指定的 long 值的二進制補碼表示形式而得到的值。(位是從右邊(即低位)移出,從左邊(即高位)再進入)

注意,使用負距離右循環等於左循環:rotateRight(val, -distance) == rotateLeft(val, distance)。另請注意,使用 64 的倍數循環無效,因此除了最後六位,所有循環距離都可以忽略,即使距離是負值:rotateRight(val, distance) == rotateRight(val, distance & 0x3F)

返回:
返回根據指定的位數循環右移指定的 long 值的二進制補碼表示形式而得到的值。
從以下版本開始:
1.5

reverse

public static long reverse(long i)
返回通過反轉指定 long 值的二進制補碼表示形式中位的順序而獲得的值。

返回:
返回通過反轉指定 long 值中位的順序而獲得的值。
從以下版本開始:
1.5

signum

public static int signum(long i)
返回指定 long 值的符號函數。(如果指定值為負,則返回值 -1;如果指定值為零,則返回 0;如果指定值為正,則返回 1。)

返回:
返回指定 long 值的符號函數。
從以下版本開始:
1.5

reverseBytes

public static long reverseBytes(long i)
返回通過反轉指定 long 值的二進制補碼表示形式中位元組的順序而獲得的值。

返回:
返回通過反轉指定 long 值中的位元組而獲得的值。
從以下版本開始:
1.5

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only