Heltalsklasse er en indpakningsklasse for den primitive type int, som indeholder flere metoder til effektivt at håndtere en int-værdi som at konvertere den til en strengrepræsentation og omvendt. Et objekt i Integer-klassen kan indeholde en enkelt int-værdi.
Konstruktører:
- Heltal(int b): Opretter et heltalsobjekt initialiseret med den angivne værdi.
Syntaks:
public Integer(int b)>
Parametre:
b : value with which to initialize>
- Heltal(streng s): Opretter et heltalsobjekt initialiseret med int-værdien leveret af strengrepræsentation. Standard radix antages at være 10.
Syntaks:
public Integer(String s) throws NumberFormatException>
Parametre:
s : string representation of the int value>
Kaster:
NumberFormatException : If the string provided does not represent any int value.>
Metoder:
1. toString() : Returnerer den streng, der svarer til int-værdien.
Syntaks:
public String toString(int b)>
Parametre:
b : int value for which string representation required.>
2. toHexString() : Returnerer den streng, der svarer til int-værdien i hexadecimal form, dvs. den returnerer en streng, der repræsenterer int-værdien i hex-tegn-[0-9][a-f]
Syntaks:
public String toHexString(int b)>
Parametre:
b : int value for which hex string representation required.>
3. toOctalString() : Returnerer strengen svarende til int-værdien i oktal form, dvs. den returnerer en streng, der repræsenterer int-værdien i oktale tegn-[0-7]
Syntaks:
public String toOctalString(int b)>
Parametre:
b : int value for which octal string representation required.>
4. toBinaryString() : Returnerer den streng, der svarer til int-værdien i binære cifre, dvs. den returnerer en streng, der repræsenterer int-værdien i hex-tegn-[0/1]
Syntaks:
public String toBinaryString(int b)>
Parametre:
b : int value for which binary string representation required.>
5. valueOf() : returnerer heltalsobjektet initialiseret med den angivne værdi.
Syntaks:
public static Integer valueOf(int b)>
Parametre:
b : a int value>
- valueOf(String val,int radix) : En anden overbelastet funktion, som giver en funktion svarende til new Integer(Integer.parseInteger(val,radix))
Syntaks:
public static Integer valueOf(String val, int radix) throws NumberFormatException>
Parametre:
val : String to be parsed into int value radix : radix to be used while parsing>
Kaster:
NumberFormatException : if String cannot be parsed to a int value in given radix.>
- valueOf(strengværdi) : En anden overbelastet funktion, der giver en funktion svarende til det nye Integer(Integer.parseInt(val,10))
Syntaks:
public static Integer valueOf(String s) throws NumberFormatException>
Parametre:
s : a String object to be parsed as int>
Kaster:
NumberFormatException : if String cannot be parsed to a int value in given radix.>
6. parseInt() : returnerer int-værdi ved at parse strengen i radix. Adskiller sig fra valueOf(), da den returnerer en primitiv int-værdi og valueOf() returnerer integer-objekt.
Syntaks:
public static int parseInt(String val, int radix) throws NumberFormatException>
Parametre:
val : String representation of int radix : radix to be used while parsing>
Kaster:
streng format java
NumberFormatException : if String cannot be parsed to a int value in given radix.>
- En anden overbelastet metode, der kun indeholder streng som parameter, radix er som standard sat til 10.
Syntaks:
public static int parseInt(String val) throws NumberFormatException>
Parametre:
val : String representation of int>
Kaster:
NumberFormatException : if String cannot be parsed to a int value in given radix.>
7. getInteger(): returnerer integer-objektet, der repræsenterer den værdi, der er knyttet til den givne systemegenskab, eller null, hvis den ikke eksisterer.
Syntaks:
public static Integer getInteger(String prop)>
Parametre:
prop : System property>
- En anden overbelastet metode, som returnerer det andet argument, hvis egenskaben ikke eksisterer, det vil sige, at den ikke returnerer null, men en standardværdi leveret af brugeren.
Syntaks:
public static Integer getInteger(String prop, int val)>
Parametre:
prop : System property val : value to return if property does not exist.>
- En anden overbelastet metode, som parser værdien i henhold til den returnerede værdi, det vil sige, hvis den returnerede værdi starter med #, så parses den som hexadecimal, hvis den starter med 0, så parses den som oktal, ellers decimal.
Syntaks:
public static Integer getInteger(String prop, Integer val)>
Parametre:
prop : System property val : value to return if property does not exist.>
8. afkode() : returnerer et heltalsobjekt, der indeholder den afkodede værdi af den angivne streng. Den angivne streng skal have følgende form, ellers vil NumberFormatException blive kastet-
Decimal- (Tegn)Decimal_Tal
Hex- (Tegn)0xHex_Digits
Hex- (Tegn)0XHex_Digits
Octal- (Tegn)0″Octal_Digits
Syntaks:
public static Integer decode(String s) throws NumberFormatException>
Parametre:
s : encoded string to be parsed into int val>
Kaster:
NumberFormatException : If the string cannot be decoded into a int value>
9. roter til venstre() : Returnerer en primitiv int ved at rotere de bits, der er tilbage af en given afstand, i tos komplementform af den angivne værdi. Når der drejes til venstre, flyttes den mest signifikante bit til højre side, eller den mindst signifikante position, dvs. cyklisk bevægelse af bits finder sted. Negativ afstand betyder højrerotation.
Syntaks:
public static int rotateLeft(int val, int dist)>
Parametre:
val : int value to be rotated dist : distance to rotate>
10. roterHøjre() : Returnerer en primitiv int ved at rotere bits til højre med en given afstand i to-komplementformen af den angivne værdi. Når der roteres til højre, flyttes den mindst signifikante bit til venstre side, eller den mest signifikante position, dvs. cyklisk bevægelse af bits finder sted. Negativ afstand betyder venstredrejning.
Syntaks:
public static int rotateRight(int val, int dist)>
Parametre:
val : int value to be rotated dist : distance to rotate>
Java
// Java program to illustrate> // various Integer methods> public> class> Integer_test {> >public> static> void> main(String args[])> >{> >int> b =>55>;> >String bb =>'45'>;> >// Construct two Integer objects> >Integer x =>new> Integer(b);> >Integer y =>new> Integer(bb);> >// toString()> >System.out.println(>'toString(b) = '> >+ Integer.toString(b));> >// toHexString(),toOctalString(),toBinaryString()> >// converts into hexadecimal, octal and binary> >// forms.> >System.out.println(>'toHexString(b) ='> >+ Integer.toHexString(b));> >System.out.println(>'toOctalString(b) ='> >+ Integer.toOctalString(b));> >System.out.println(>'toBinaryString(b) ='> >+ Integer.toBinaryString(b));> >// valueOf(): return Integer object> >// an overloaded method takes radix as well.> >Integer z = Integer.valueOf(b);> >System.out.println(>'valueOf(b) = '> + z);> >z = Integer.valueOf(bb);> >System.out.println(>'ValueOf(bb) = '> + z);> >z = Integer.valueOf(bb,>6>);> >System.out.println(>'ValueOf(bb,6) = '> + z);> >// parseInt(): return primitive int value> >// an overloaded method takes radix as well> >int> zz = Integer.parseInt(bb);> >System.out.println(>'parseInt(bb) = '> + zz);> >zz = Integer.parseInt(bb,>6>);> >System.out.println(>'parseInt(bb,6) = '> + zz);> >// getInteger(): can be used to retrieve> >// int value of system property> >int> prop> >= Integer.getInteger(>'sun.arch.data.model'>);> >System.out.println(> >'getInteger(sun.arch.data.model) = '> + prop);> >System.out.println(>'getInteger(abcd) ='> >+ Integer.getInteger(>'abcd'>));> >// an overloaded getInteger() method> >// which return default value if property not found.> >System.out.println(> >'getInteger(abcd,10) ='> >+ Integer.getInteger(>'abcd'>,>10>));> >// decode() : decodes the hex,octal and decimal> >// string to corresponding int values.> >String decimal =>'45'>;> >String octal =>'005'>;> >String hex =>'0x0f'>;> >Integer dec = Integer.decode(decimal);> >System.out.println(>'decode(45) = '> + dec);> >dec = Integer.decode(octal);> >System.out.println(>'decode(005) = '> + dec);> >dec = Integer.decode(hex);> >System.out.println(>'decode(0x0f) = '> + dec);> >// rotateLeft and rotateRight can be used> >// to rotate bits by specified distance> >int> valrot =>2>;> >System.out.println(> >'rotateLeft(0000 0000 0000 0010 , 2) ='> >+ Integer.rotateLeft(valrot,>2>));> >System.out.println(> >'rotateRight(0000 0000 0000 0010,3) ='> >+ Integer.rotateRight(valrot,>3>));> >}> }> |
>
>
Produktion:
toString(b) = 55 toHexString(b) =37 toOctalString(b) =67 toBinaryString(b) =110111 valueOf(b) = 55 ValueOf(bb) = 45 ValueOf(bb,6) = 29 parseInt(bb) = 45 parseInt(bb,6) = 29 getInteger(sun.arch.data.model) = 64 getInteger(abcd) =null getInteger(abcd,10) =10 decode(45) = 45 decode(005) = 5 decode(0x0f) = 15 rotateLeft(0000 0000 0000 0010 , 2) =8 rotateRight(0000 0000 0000 0010,3) =1073741824>
11. byteValue() : returnerer en byteværdi svarende til dette heltalsobjekt.
Syntaks:
public byte byteValue()>
12. shortValue() : returnerer en kort værdi svarende til dette heltalsobjekt.
Syntaks:
public short shortValue()>
13. intValue() : returnerer en int-værdi svarende til dette heltalsobjekt.
Syntaks:
public int intValue()>
13. longValue() : returnerer en lang værdi svarende til dette heltalsobjekt.
Syntaks:
til loop i java
public long longValue()>
14. doubleValue() : returnerer en dobbeltværdi svarende til dette heltalsobjekt.
Syntaks:
public double doubleValue()>
15. floatValue() : returnerer en flydende værdi svarende til dette heltalsobjekt.
Syntaks:
public float floatValue()>
16. hashCode() : returnerer hashkoden, der svarer til dette heltalsobjekt.
Syntaks:
public int hashCode()>
17. bitcount() : Returnerer antallet af sæt bits i toer komplement af det angivne heltal.
Syntaks:
public static int bitCount(int i)>
Parametre:
i : int value whose set bits to count>
18. numberOfLeadingZeroes() : Returnerer antallet af 0 bit forud for den højeste 1 bit i toer komplementform af værdien, dvs. hvis tallet i toer komplementform er 0000 1010 0000 0000, så ville denne funktion returnere 4.
Syntaks:
public static int numberofLeadingZeroes(int i)>
Parametre:
i : int value whose leading zeroes to count in twos complement form>
19. numberOfTrailingZeroes() : Returnerer antallet af 0 bits efter den sidste 1 bit i to-komplementform af værdien, dvs. hvis tallet i to-komplementform er 0000 1010 0000 0000, så ville denne funktion returnere 9.
Syntaks:
public static int numberofTrailingZeroes(int i)>
Parametre:
i : int value whose trailing zeroes to count in twos complement form>
20. højeste OneBit() : Returnerer en værdi med højst en enkelt en bit, i positionen af den højeste en bit i den angivne værdi. Returnerer 0, hvis den angivne værdi er 0, det vil sige, hvis tallet er 0000 0000 0000 1111, så returnerer denne funktion 0000 0000 0000 1000 (højst én bit i det givne tal)
Syntaks:
public static int highestOneBit(int i)>
Parametre:
i : int value>
21. LowestOneBit() : Returnerer en værdi med højst en enkelt en bit, i positionen af den laveste en bit i den angivne værdi. Returnerer 0, hvis den angivne værdi er 0, det vil sige, hvis tallet er 0000 0000 0000 1111, så returnerer denne funktion 0000 0000 0000 0001 (højst én bit i det givne tal)
Syntaks:
public static int LowestOneBit(int i)>
Parametre:
i : int value>
22. er lig med(): Bruges til at sammenligne ligheden mellem to heltalsobjekter. Denne metode returnerer sand, hvis begge objekter indeholder den samme int-værdi. Bør kun bruges, hvis der kontrolleres for lighed. I alle andre tilfælde bør compareTo-metoden foretrækkes.
Syntaks:
public boolean equals(Object obj)>
Parametre:
obj : object to compare with>
23. compareTo() : Bruges til at sammenligne to heltalsobjekter for numerisk lighed. Dette bør bruges, når man sammenligner to heltalsværdier for numerisk lighed, da det vil skelne mellem mindre og større værdier. Returnerer en værdi mindre end 0,0, en værdi større end 0 for mindre end, lig med og større end.
Syntaks:
public int compareTo(Integer b)>
Parametre:
b : Integer object to compare with>
24. sammenligne() : Bruges til at sammenligne to primitive int-værdier for numerisk lighed. Da det er en statisk metode, kan den derfor bruges uden at oprette noget objekt af heltal.
Syntaks:
public static int compare(int x,int y)>
Parametre:
x : int value y : another int value>
25. tegn() : returnerer -1 for negative værdier, 0 for 0 og +1 for værdier større end 0.
Syntaks:
public static int signum(int val)>
Parametre:
val : int value for which signum is required.>
26. omvendt() : returnerer en primitiv int-værdi, der vender om rækkefølgen af bit i tos komplementform af den givne int-værdi.
Syntaks:
public static int reverseBytes(int val)>
Parametre:
val : int value whose bits to reverse in order.>
27. reverseBytes() : returnerer en primitiv int-værdi, der vender om rækkefølgen af bytes i to's komplementform af den givne int-værdi.
Syntaks:
public static int reverseBytes(int val)>
Parametre:
val : int value whose bits to reverse in order.>
28. statisk int sammenligneUnsigned(int x, int y) : Denne metode sammenligner to int-værdier, der behandler værdierne numerisk som usignerede.
Syntaks:
public static int compareUnsigned(int x, int y)>
29. statisk int divideUnsigned(int dividend, int divisor) : Denne metode returnerer kvotienten uden fortegn ved at dividere det første argument med det andet, hvor hvert argument og resultatet fortolkes som en værdi uden fortegn.
Syntaks:
public static int divideUnsigned(int dividend, int divisor)>
30. statisk int max(int a, int b) : Denne metode returnerer den største af to int-værdier, som ved at kalde Math.max.
Syntaks:
public static int max(int a, int b)>
31. statisk int min(int a, int b) : Denne metode returnerer den mindste af to int-værdier, som ved at kalde Math.min.
Syntaks:
public static int min(int a, int b)>
32. statisk int parseUnsignedInt(CharSequence s, int startIndex, int endIndex, int radix) : Denne metode analyserer CharSequence-argumentet som en usigneret int i den angivne radix, begyndende ved det specificerede beginIndex og strækker sig til endIndex – 1.
Syntaks:
hurtig sortering
public static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException>
33. statisk int parseUnsignedInt(String s) : Denne metode analyserer strengargumentet som et decimalt heltal uden fortegn.
Syntaks:
public static int parseUnsignedInt(String s) throws NumberFormatException>
34. statisk int parseUnsignedInt(String s, int radix) : Denne metode analyserer strengargumentet som et heltal uden fortegn i radixet, der er angivet af det andet argument.
Syntaks:
public static int parseUnsignedInt(String s, int radix) throws NumberFormatException>
35. statisk int restUnsigned(int dividend, int divisor) : Denne metode returnerer resten uden fortegn ved at dividere det første argument med det andet, hvor hvert argument og resultatet fortolkes som en værdi uden fortegn.
Syntaks:
public static int remainderUnsigned(int dividend, int divisor)>
36. statisk int sum(int a, int b) : Denne metode tilføjer to heltal sammen i henhold til + operatoren.
Syntaks:
public static int sum(int a, int b)>
37. statisk lang tilUnsignedLong(int x) : Denne metode konverterer argumentet til en lang ved en usigneret konvertering.
Syntaks:
public static long toUnsignedLong(int x)>
38. statisk streng tilUnsignedString(int i) : Denne metode returnerer en strengrepræsentation af argumentet som en decimalværdi uden fortegn.
Syntaks:
public static String toUnsignedString(int i, int radix)>
Java
// Java program to illustrate> // various Integer class methods> public> class> Integer_test {> >public> static> void> main(String args[])> >{> >int> b =>55>;> >String bb =>'45'>;> >// Construct two Integer objects> >Integer x =>new> Integer(b);> >Integer y =>new> Integer(bb);> >// xxxValue can be used to retrieve> >// xxx type value from int value.> >// xxx can be int,byte,short,long,double,float> >System.out.println(>'bytevalue(x) = '> >+ x.byteValue());> >System.out.println(>'shortvalue(x) = '> >+ x.shortValue());> >System.out.println(>'intvalue(x) = '> + x.intValue());> >System.out.println(>'longvalue(x) = '> >+ x.longValue());> >System.out.println(>'doublevalue(x) = '> >+ x.doubleValue());> >System.out.println(>'floatvalue(x) = '> >+ x.floatValue());> >int> value =>45>;> >// bitcount() : can be used to count set bits> >// in twos complement form of the number> >System.out.println(>'Integer.bitcount(value)='> >+ Integer.bitCount(value));> >// numberOfTrailingZeroes and numberOfLeadingZeroes> >// can be used to count prefix and postfix sequence> >// of 0> >System.out.println(> >'Integer.numberOfTrailingZeros(value)='> >+ Integer.numberOfTrailingZeros(value));> >System.out.println(> >'Integer.numberOfLeadingZeros(value)='> >+ Integer.numberOfLeadingZeros(value));> >// highestOneBit returns a value with one on highest> >// set bit position> >System.out.println(>'Integer.highestOneBit(value)='> >+ Integer.highestOneBit(value));> >// highestOneBit returns a value with one on lowest> >// set bit position> >System.out.println(>'Integer.lowestOneBit(value)='> >+ Integer.lowestOneBit(value));> >// reverse() can be used to reverse order of bits> >// reverseBytes() can be used to reverse order of> >// bytes> >System.out.println(>'Integer.reverse(value)='> >+ Integer.reverse(value));> >System.out.println(>'Integer.reverseBytes(value)='> >+ Integer.reverseBytes(value));> >// signum() returns -1,0,1 for negative,0 and> >// positive values> >System.out.println(>'Integer.signum(value)='> >+ Integer.signum(value));> >// hashcode() returns hashcode of the object> >int> hash = x.hashCode();> >System.out.println(>'hashcode(x) = '> + hash);> >// equals returns boolean value representing> >// equality> >boolean> eq = x.equals(y);> >System.out.println(>'x.equals(y) = '> + eq);> >// compare() used for comparing two int values> >int> e = Integer.compare(x, y);> >System.out.println(>'compare(x,y) = '> + e);> >// compareTo() used for comparing this value with> >// some other value> >int> f = x.compareTo(y);> >System.out.println(>'x.compareTo(y) = '> + f);> >}> }> |
>
rydde npm cache
>
Output:
bytevalue(x) = 55 shortvalue(x) = 55 intvalue(x) = 55 longvalue(x) = 55 doublevalue(x) = 55.0 floatvalue(x) = 55.0 Integer.bitcount(value)=4 Integer.numberOfTrailingZeros(value)=0 Integer.numberOfLeadingZeros(value)=26 Integer.highestOneBit(value)=32 Integer.lowestOneBit(value)=1 Integer.reverse(value)=-1275068416 Integer.reverseBytes(value)=754974720 Integer.signum(value)=1 hashcode(x) = 55 x.equals(y) = false compare(x,y) = 1 x.compareTo(y) = 1>
Initialisering af integer wrapper-klasse i Java:
Type 1: Initialisering direkte:
Et konstant objekt af heltalsklassen vil blive skabt inde i rummet af konstanter i heap-hukommelsen. Rum af konstanter: Det er bare at forestille sig for bedre forståelse, at der er plads til konstanter i heap-hukommelsen.
Eksempel:
Integer x = 200; //initializing directly x = 300; //modifying x x = 10; //modifying x again>
Heltal x = 200
- Compileren konverterer ovenstående erklæring til: Heltal x=Integer.valueOf(200) . Dette er kendt som Autoboksning . Den primitive heltalsværdi 200 konverteres til et objekt.
(For at forstå Autoboxing & Unboxing tjek her: )
- x peger på 200, som er til stede i konstanternes rum. Se fig. 1.

Fig. 1
x = 300
- Autoboxing udføres igen, fordi x er et Integer-klasseobjekt, som initialiseres direkte.
- Bemærk: Det direkte initialiserede objekt(x) kan ikke ændres, da det er en konstant. Når vi forsøger at ændre objektet ved at pege på en ny konstant(300), vil den gamle konstant(200) være til stede i heap-hukommelsen, men objektet vil pege på den nye konstant.
- x peger på 300, som er til stede i konstanternes rum. Se fig. 2.

Fig. 2
x = 10
- Bemærk: Som standard for værdierne -128 til 127 vil metoden Integer.valueOf() ikke oprette en ny forekomst af Integer. Det returnerer en værdi fra sin cache.
- x punkter 10, som er til stede i cachen.

Fig. 3
Hvis vi tildeler x = 200 eller x=300 næste gang, vil det pege på værdien 200 eller 300, som allerede er til stede i konstanternes rum. Hvis vi tildeler andre værdier til x end disse to værdier, så skaber det en ny konstant.
(Tjek integer wrapper klasse sammenligningsemnet for bedre forståelse)
Type 2: Initialisering dynamisk:
Et Integer-klasseobjekt, som ikke er en konstant, vil blive skabt uden for konstanternes rum. Det skaber også en heltalskonstant inde i konstanternes rum. Variablen vil pege på integer-objektet og ikke heltalskonstanten.
Eksempel:
Integer a = new Integer(250); //Initializing dynamically a = 350; //Type 1 initialization>
Heltal a = nyt heltal(250)
- 250 skabes i og uden for konstanternes rum. Variabel 'a' vil pege på den værdi, der er uden for konstanternes rum. Se fig. 4.

Fig. 4
a = 350;
- Efter autoboxing vil 'a' pege på 350. Se fig. 5.

Fig. 5
Hvis vi tildeler a = 250 næste gang, vil det ikke pege på det objekt, der allerede er til stede med samme værdi, det vil skabe et nyt objekt.
Referencer: Officiel Java-dokumentation