Save This Page
Home » openjdk-7 » java » lang » [javadoc | source]
java.lang
public final class: Integer [javadoc | source]
java.lang.Object
   java.lang.Number
      java.lang.Integer

All Implemented Interfaces:
    Comparable, Serializable

The {@code Integer} class wraps a value of the primitive type {@code int} in an object. An object of type {@code Integer} contains a single field whose type is {@code int}.

In addition, this class provides several methods for converting an {@code int} to a {@code String} and a {@code String} to an {@code int}, as well as other constants and methods useful when dealing with an {@code int}.

Implementation note: The implementations of the "bit twiddling" methods (such as highestOneBit and numberOfTrailingZeros ) are based on material from Henry S. Warren, Jr.'s Hacker's Delight, (Addison Wesley, 2002).

Field Summary
public static final  int MIN_VALUE    A constant holding the minimum value an {@code int} can have, -231
public static final  int MAX_VALUE    A constant holding the maximum value an {@code int} can have, 231-1. 
public static final  Class<Integer> TYPE    The {@code Class} instance representing the primitive type {@code int}.
    since: JDK1.1 -
 
static final  char[] digits    All possible chars for representing a number as a String 
static final  char[] DigitTens     
static final  char[] DigitOnes     
static final  int[] sizeTable     
public static final  int SIZE    The number of bits used to represent an {@code int} value in two's complement binary form.
    since: 1.5 -
 
Constructor:
 public Integer(int value) 
 public Integer(String s) throws NumberFormatException 
    Constructs a newly allocated {@code Integer} object that represents the {@code int} value indicated by the {@code String} parameter. The string is converted to an {@code int} value in exactly the manner used by the {@code parseInt} method for radix 10.
    Parameters:
    s - the {@code String} to be converted to an {@code Integer}.
    Throws:
    NumberFormatException - if the {@code String} does not contain a parsable integer.
    Also see:
    java.lang.Integer#parseInt(java.lang.String, int)
    exception: NumberFormatException - if the {@code String} does not contain a parsable integer.
Method from java.lang.Integer Summary:
bitCount,   byteValue,   compare,   compareTo,   decode,   doubleValue,   equals,   floatValue,   getChars,   getInteger,   getInteger,   getInteger,   hashCode,   highestOneBit,   intValue,   longValue,   lowestOneBit,   numberOfLeadingZeros,   numberOfTrailingZeros,   parseInt,   parseInt,   reverse,   reverseBytes,   rotateLeft,   rotateRight,   shortValue,   signum,   stringSize,   toBinaryString,   toHexString,   toOctalString,   toString,   toString,   toString,   valueOf,   valueOf,   valueOf
Methods from java.lang.Number:
byteValue,   doubleValue,   floatValue,   intValue,   longValue,   shortValue
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from java.lang.Integer Detail:
 public static int bitCount(int i) 
    Returns the number of one-bits in the two's complement binary representation of the specified {@code int} value. This function is sometimes referred to as the population count.
 public byte byteValue() 
    Returns the value of this {@code Integer} as a {@code byte}.
 public static int compare(int x,
    int y) 
    Compares two {@code int} values numerically. The value returned is identical to what would be returned by:
       Integer.valueOf(x).compareTo(Integer.valueOf(y))
    
 public int compareTo(Integer anotherInteger) 
    Compares two {@code Integer} objects numerically.
 public static Integer decode(String nm) throws NumberFormatException 
    Decodes a {@code String} into an {@code Integer}. Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
    DecodableString:
    Signopt DecimalNumeral
    Signopt {@code 0x} HexDigits
    Signopt {@code 0X} HexDigits
    Signopt {@code #} HexDigits
    Signopt {@code 0} OctalDigits

    Sign:
    {@code -}
    {@code +}
    DecimalNumeral, HexDigits, and OctalDigits are as defined in section 3.10.1 of The Java™ Language Specification, except that underscores are not accepted between digits.

    The sequence of characters following an optional sign and/or radix specifier ("{@code 0x}", "{@code 0X}", "{@code #}", or leading zero) is parsed as by the {@code Integer.parseInt} method with the indicated radix (10, 16, or 8). This sequence of characters must represent a positive value or a NumberFormatException will be thrown. The result is negated if first character of the specified {@code String} is the minus sign. No whitespace characters are permitted in the {@code String}.

 public double doubleValue() 
    Returns the value of this {@code Integer} as a {@code double}.
 public boolean equals(Object obj) 
    Compares this object to the specified object. The result is {@code true} if and only if the argument is not {@code null} and is an {@code Integer} object that contains the same {@code int} value as this object.
 public float floatValue() 
    Returns the value of this {@code Integer} as a {@code float}.
 static  void getChars(int i,
    int index,
    char[] buf) 
    Places characters representing the integer i into the character array buf. The characters are placed into the buffer backwards starting with the least significant digit at the specified index (exclusive), and working backwards from there. Will fail if i == Integer.MIN_VALUE
 public static Integer getInteger(String nm) 
    Determines the integer value of the system property with the specified name.

    The first argument is treated as the name of a system property. System properties are accessible through the java.lang.System#getProperty(java.lang.String) method. The string value of this property is then interpreted as an integer value and an {@code Integer} object representing this value is returned. Details of possible numeric formats can be found with the definition of {@code getProperty}.

    If there is no property with the specified name, if the specified name is empty or {@code null}, or if the property does not have the correct numeric format, then {@code null} is returned.

    In other words, this method returns an {@code Integer} object equal to the value of:

    {@code getInteger(nm, null)}
 public static Integer getInteger(String nm,
    int val) 
    Determines the integer value of the system property with the specified name.

    The first argument is treated as the name of a system property. System properties are accessible through the java.lang.System#getProperty(java.lang.String) method. The string value of this property is then interpreted as an integer value and an {@code Integer} object representing this value is returned. Details of possible numeric formats can be found with the definition of {@code getProperty}.

    The second argument is the default value. An {@code Integer} object that represents the value of the second argument is returned if there is no property of the specified name, if the property does not have the correct numeric format, or if the specified name is empty or {@code null}.

    In other words, this method returns an {@code Integer} object equal to the value of:

    {@code getInteger(nm, new Integer(val))}
    but in practice it may be implemented in a manner such as:
    Integer result = getInteger(nm, null);
    return (result == null) ? new Integer(val) : result;
    
    to avoid the unnecessary allocation of an {@code Integer} object when the default value is not needed.
 public static Integer getInteger(String nm,
    Integer val) 
    Returns the integer value of the system property with the specified name. The first argument is treated as the name of a system property. System properties are accessible through the java.lang.System#getProperty(java.lang.String) method. The string value of this property is then interpreted as an integer value, as per the {@code Integer.decode} method, and an {@code Integer} object representing this value is returned.
    • If the property value begins with the two ASCII characters {@code 0x} or the ASCII character {@code #}, not followed by a minus sign, then the rest of it is parsed as a hexadecimal integer exactly as by the method #valueOf(java.lang.String, int) with radix 16.
    • If the property value begins with the ASCII character {@code 0} followed by another character, it is parsed as an octal integer exactly as by the method #valueOf(java.lang.String, int) with radix 8.
    • Otherwise, the property value is parsed as a decimal integer exactly as by the method #valueOf(java.lang.String, int) with radix 10.

    The second argument is the default value. The default value is returned if there is no property of the specified name, if the property does not have the correct numeric format, or if the specified name is empty or {@code null}.

 public int hashCode() 
    Returns a hash code for this {@code Integer}.
 public static int highestOneBit(int i) 
    Returns an {@code int} value with at most a single one-bit, in the position of the highest-order ("leftmost") one-bit in the specified {@code int} value. Returns zero if the specified value has no one-bits in its two's complement binary representation, that is, if it is equal to zero.
 public int intValue() 
    Returns the value of this {@code Integer} as an {@code int}.
 public long longValue() 
    Returns the value of this {@code Integer} as a {@code long}.
 public static int lowestOneBit(int i) 
    Returns an {@code int} value with at most a single one-bit, in the position of the lowest-order ("rightmost") one-bit in the specified {@code int} value. Returns zero if the specified value has no one-bits in its two's complement binary representation, that is, if it is equal to zero.
 public static int numberOfLeadingZeros(int i) 
    Returns the number of zero bits preceding the highest-order ("leftmost") one-bit in the two's complement binary representation of the specified {@code int} value. Returns 32 if the specified value has no one-bits in its two's complement representation, in other words if it is equal to zero.

    Note that this method is closely related to the logarithm base 2. For all positive {@code int} values x:

    • floor(log2(x)) = {@code 31 - numberOfLeadingZeros(x)}
    • ceil(log2(x)) = {@code 32 - numberOfLeadingZeros(x - 1)}
 public static int numberOfTrailingZeros(int i) 
    Returns the number of zero bits following the lowest-order ("rightmost") one-bit in the two's complement binary representation of the specified {@code int} value. Returns 32 if the specified value has no one-bits in its two's complement representation, in other words if it is equal to zero.
 public static int parseInt(String s) throws NumberFormatException 
    Parses the string argument as a signed decimal integer. The characters in the string must all be decimal digits, except that the first character may be an ASCII minus sign {@code '-'} ('\u002D') to indicate a negative value or an ASCII plus sign {@code '+'} ('\u002B') to indicate a positive value. The resulting integer value is returned, exactly as if the argument and the radix 10 were given as arguments to the #parseInt(java.lang.String, int) method.
 public static int parseInt(String s,
    int radix) throws NumberFormatException 
    Parses the string argument as a signed integer in the radix specified by the second argument. The characters in the string must all be digits of the specified radix (as determined by whether java.lang.Character#digit(char, int) returns a nonnegative value), except that the first character may be an ASCII minus sign {@code '-'} ('\u002D') to indicate a negative value or an ASCII plus sign {@code '+'} ('\u002B') to indicate a positive value. The resulting integer value is returned.

    An exception of type {@code NumberFormatException} is thrown if any of the following situations occurs:

    • The first argument is {@code null} or is a string of length zero.
    • The radix is either smaller than java.lang.Character#MIN_RADIX or larger than java.lang.Character#MAX_RADIX .
    • Any character of the string is not a digit of the specified radix, except that the first character may be a minus sign {@code '-'} ('\u002D') or plus sign {@code '+'} ('\u002B') provided that the string is longer than length 1.
    • The value represented by the string is not a value of type {@code int}.

    Examples:

    parseInt("0", 10) returns 0
    parseInt("473", 10) returns 473
    parseInt("+42", 10) returns 42
    parseInt("-0", 10) returns 0
    parseInt("-FF", 16) returns -255
    parseInt("1100110", 2) returns 102
    parseInt("2147483647", 10) returns 2147483647
    parseInt("-2147483648", 10) returns -2147483648
    parseInt("2147483648", 10) throws a NumberFormatException
    parseInt("99", 8) throws a NumberFormatException
    parseInt("Kona", 10) throws a NumberFormatException
    parseInt("Kona", 27) returns 411787
    
 public static int reverse(int i) 
    Returns the value obtained by reversing the order of the bits in the two's complement binary representation of the specified {@code int} value.
 public static int reverseBytes(int i) 
    Returns the value obtained by reversing the order of the bytes in the two's complement representation of the specified {@code int} value.
 public static int rotateLeft(int i,
    int distance) 
    Returns the value obtained by rotating the two's complement binary representation of the specified {@code int} value left by the specified number of bits. (Bits shifted out of the left hand, or high-order, side reenter on the right, or low-order.)

    Note that left rotation with a negative distance is equivalent to right rotation: {@code rotateLeft(val, -distance) == rotateRight(val, distance)}. Note also that rotation by any multiple of 32 is a no-op, so all but the last five bits of the rotation distance can be ignored, even if the distance is negative: {@code rotateLeft(val, distance) == rotateLeft(val, distance & 0x1F)}.

 public static int rotateRight(int i,
    int distance) 
    Returns the value obtained by rotating the two's complement binary representation of the specified {@code int} value right by the specified number of bits. (Bits shifted out of the right hand, or low-order, side reenter on the left, or high-order.)

    Note that right rotation with a negative distance is equivalent to left rotation: {@code rotateRight(val, -distance) == rotateLeft(val, distance)}. Note also that rotation by any multiple of 32 is a no-op, so all but the last five bits of the rotation distance can be ignored, even if the distance is negative: {@code rotateRight(val, distance) == rotateRight(val, distance & 0x1F)}.

 public short shortValue() 
    Returns the value of this {@code Integer} as a {@code short}.
 public static int signum(int i) 
    Returns the signum function of the specified {@code int} value. (The return value is -1 if the specified value is negative; 0 if the specified value is zero; and 1 if the specified value is positive.)
 static int stringSize(int x) 
 public static String toBinaryString(int i) 
    Returns a string representation of the integer argument as an unsigned integer in base 2.

    The unsigned integer value is the argument plus 232 if the argument is negative; otherwise it is equal to the argument. This value is converted to a string of ASCII digits in binary (base 2) with no extra leading {@code 0}s. If the unsigned magnitude is zero, it is represented by a single zero character {@code '0'} ('\u0030'); otherwise, the first character of the representation of the unsigned magnitude will not be the zero character. The characters {@code '0'} ('\u0030') and {@code '1'} ('\u0031') are used as binary digits.

 public static String toHexString(int i) 
    Returns a string representation of the integer argument as an unsigned integer in base 16.

    The unsigned integer value is the argument plus 232 if the argument is negative; otherwise, it is equal to the argument. This value is converted to a string of ASCII digits in hexadecimal (base 16) with no extra leading {@code 0}s. If the unsigned magnitude is zero, it is represented by a single zero character {@code '0'} ('\u0030'); otherwise, the first character of the representation of the unsigned magnitude will not be the zero character. The following characters are used as hexadecimal digits:

    {@code 0123456789abcdef}
    These are the characters '\u0030' through '\u0039' and '\u0061' through '\u0066'. If uppercase letters are desired, the java.lang.String#toUpperCase() method may be called on the result:
    {@code Integer.toHexString(n).toUpperCase()}
 public static String toOctalString(int i) 
    Returns a string representation of the integer argument as an unsigned integer in base 8.

    The unsigned integer value is the argument plus 232 if the argument is negative; otherwise, it is equal to the argument. This value is converted to a string of ASCII digits in octal (base 8) with no extra leading {@code 0}s.

    If the unsigned magnitude is zero, it is represented by a single zero character {@code '0'} ('\u0030'); otherwise, the first character of the representation of the unsigned magnitude will not be the zero character. The following characters are used as octal digits:

    {@code 01234567}
    These are the characters '\u0030' through '\u0037'.
 public String toString() 
    Returns a {@code String} object representing this {@code Integer}'s value. The value is converted to signed decimal representation and returned as a string, exactly as if the integer value were given as an argument to the java.lang.Integer#toString(int) method.
 public static String toString(int i) 
    Returns a {@code String} object representing the specified integer. The argument is converted to signed decimal representation and returned as a string, exactly as if the argument and radix 10 were given as arguments to the #toString(int, int) method.
 public static String toString(int i,
    int radix) 
    Returns a string representation of the first argument in the radix specified by the second argument.

    If the radix is smaller than {@code Character.MIN_RADIX} or larger than {@code Character.MAX_RADIX}, then the radix {@code 10} is used instead.

    If the first argument is negative, the first element of the result is the ASCII minus character {@code '-'} ('\u002D'). If the first argument is not negative, no sign character appears in the result.

    The remaining characters of the result represent the magnitude of the first argument. If the magnitude is zero, it is represented by a single zero character {@code '0'} ('\u0030'); otherwise, the first character of the representation of the magnitude will not be the zero character. The following ASCII characters are used as digits:

    {@code 0123456789abcdefghijklmnopqrstuvwxyz}
    These are '\u0030' through '\u0039' and '\u0061' through '\u007A'. If {@code radix} is N, then the first N of these characters are used as radix-N digits in the order shown. Thus, the digits for hexadecimal (radix 16) are {@code 0123456789abcdef}. If uppercase letters are desired, the java.lang.String#toUpperCase() method may be called on the result:
    {@code Integer.toString(n, 16).toUpperCase()}
 public static Integer valueOf(String s) throws NumberFormatException 
    Returns an {@code Integer} object holding the value of the specified {@code String}. The argument is interpreted as representing a signed decimal integer, exactly as if the argument were given to the #parseInt(java.lang.String) method. The result is an {@code Integer} object that represents the integer value specified by the string.

    In other words, this method returns an {@code Integer} object equal to the value of:

    {@code new Integer(Integer.parseInt(s))}
 public static Integer valueOf(int i) 
    Returns an {@code Integer} instance representing the specified {@code int} value. If a new {@code Integer} instance is not required, this method should generally be used in preference to the constructor #Integer(int) , as this method is likely to yield significantly better space and time performance by caching frequently requested values. This method will always cache values in the range -128 to 127, inclusive, and may cache other values outside of this range.
 public static Integer valueOf(String s,
    int radix) throws NumberFormatException 
    Returns an {@code Integer} object holding the value extracted from the specified {@code String} when parsed with the radix given by the second argument. The first argument is interpreted as representing a signed integer in the radix specified by the second argument, exactly as if the arguments were given to the #parseInt(java.lang.String, int) method. The result is an {@code Integer} object that represents the integer value specified by the string.

    In other words, this method returns an {@code Integer} object equal to the value of:

    {@code new Integer(Integer.parseInt(s, radix))}