Integer-klasse is een wrapper-klasse voor het primitieve type int die verschillende methoden bevat om effectief om te gaan met een int-waarde, zoals het converteren ervan naar een string-representatie, en omgekeerd. Een object van de klasse Integer kan één int-waarde bevatten.
Constructeurs:
- Geheel getal(int b): Creëert een Integer-object dat is geïnitialiseerd met de opgegeven waarde.
Syntaxis:
public Integer(int b)>
Parameters:
b : value with which to initialize>
- Geheel getal(tekenreeks): Creëert een Integer-object dat is geïnitialiseerd met de int-waarde die wordt geleverd door de tekenreeksrepresentatie. De standaardradix is 10.
Syntaxis:
public Integer(String s) throws NumberFormatException>
Parameters:
s : string representation of the int value>
Gooien:
NumberFormatException : If the string provided does not represent any int value.>
Methoden:
1. toString() : Retourneert de tekenreeks die overeenkomt met de int-waarde.
Syntaxis:
public String toString(int b)>
Parameters:
b : int value for which string representation required.>
2. naarHexString() : Retourneert de tekenreeks die overeenkomt met de int-waarde in hexadecimale vorm, dat wil zeggen dat het een tekenreeks retourneert die de int-waarde vertegenwoordigt in hexadecimale tekens-[0-9][a-f]
Syntaxis:
public String toHexString(int b)>
Parameters:
b : int value for which hex string representation required.>
3. toOctalString() : Retourneert de tekenreeks die overeenkomt met de int-waarde in octale vorm, dat wil zeggen dat het een tekenreeks retourneert die de int-waarde vertegenwoordigt in octale tekens-[0-7]
Syntaxis:
public String toOctalString(int b)>
Parameters:
b : int value for which octal string representation required.>
4. naarBinaryString() : Retourneert de tekenreeks die overeenkomt met de int-waarde in binaire cijfers, dat wil zeggen dat het een tekenreeks retourneert die de int-waarde vertegenwoordigt in hexadecimale tekens-[0/1]
Syntaxis:
public String toBinaryString(int b)>
Parameters:
b : int value for which binary string representation required.>
5. waardeOf() : retourneert het object Integer dat is geïnitialiseerd met de opgegeven waarde.
Syntaxis:
public static Integer valueOf(int b)>
Parameters:
b : a int value>
- waardeOf(String val,int radix) : Nog een overbelaste functie die een functie biedt die vergelijkbaar is met new Integer(Integer.parseInteger(val,radix))
Syntaxis:
public static Integer valueOf(String val, int radix) throws NumberFormatException>
Parameters:
val : String to be parsed into int value radix : radix to be used while parsing>
Gooien:
NumberFormatException : if String cannot be parsed to a int value in given radix.>
- waardeOf(String waarde) : Nog een overbelaste functie die een functie biedt die vergelijkbaar is met new Integer(Integer.parseInt(val,10))
Syntaxis:
public static Integer valueOf(String s) throws NumberFormatException>
Parameters:
s : a String object to be parsed as int>
Gooien:
NumberFormatException : if String cannot be parsed to a int value in given radix.>
6. parseInt() : retourneert de int-waarde door de tekenreeks in de opgegeven radix te parseren. Verschilt van valueOf() omdat het een primitieve int-waarde retourneert en valueOf() een Integer-object retourneert.
Syntaxis:
public static int parseInt(String val, int radix) throws NumberFormatException>
Parameters:
val : String representation of int radix : radix to be used while parsing>
Gooit:
NumberFormatException : if String cannot be parsed to a int value in given radix.>
- Een andere overbelaste methode die alleen String als parameter bevat, radix is standaard ingesteld op 10.
Syntaxis:
public static int parseInt(String val) throws NumberFormatException>
Parameters:
val : String representation of int>
Gooien:
NumberFormatException : if String cannot be parsed to a int value in given radix.>
7. getInteger(): retourneert het object Integer dat de waarde vertegenwoordigt die is gekoppeld aan de gegeven systeemeigenschap, of null als deze niet bestaat.
Syntaxis:
public static Integer getInteger(String prop)>
Parameters:
prop : System property>
- Een andere overbelaste methode die het tweede argument retourneert als de eigenschap niet bestaat, dat wil zeggen dat het geen null retourneert, maar een standaardwaarde die door de gebruiker wordt opgegeven.
Syntaxis:
public static Integer getInteger(String prop, int val)>
Parameters:
prop : System property val : value to return if property does not exist.>
- Een andere overbelaste methode die de waarde parseert op basis van de geretourneerde waarde, dat wil zeggen als de geretourneerde waarde begint met #, dan wordt deze geparseerd als hexadecimaal, als deze begint met 0, dan wordt deze geparseerd als octaal, anders decimaal.
Syntaxis:
public static Integer getInteger(String prop, Integer val)>
Parameters:
prop : System property val : value to return if property does not exist.>
8. decoderen() : retourneert een Integer-object dat de gedecodeerde waarde van de opgegeven tekenreeks bevat. De opgegeven tekenreeks moet de volgende vorm hebben, anders wordt NumberFormatException gegenereerd:
Decimaal- (teken)decimaal_getal
Hex- (teken)0xHex_Cijfers
Hex- (teken)0XHex_Cijfers
Octaal- (teken) 0″Octale_cijfers
Syntaxis:
public static Integer decode(String s) throws NumberFormatException>
Parameters:
s : encoded string to be parsed into int val>
Gooien:
NumberFormatException : If the string cannot be decoded into a int value>
9. roterenLinks() : Retourneert een primitieve int door de bits te roteren die over een bepaalde afstand zijn achtergelaten in de twee-complementvorm van de gegeven waarde. Bij het naar links draaien wordt het meest significante bit naar de rechterkant of de minst significante positie verplaatst, d.w.z. er vindt cyclische beweging van bits plaats. Negatieve afstand betekent rotatie naar rechts.
Syntaxis:
public static int rotateLeft(int val, int dist)>
Parameters:
val : int value to be rotated dist : distance to rotate>
10. roterenRechts() : Retourneert een primitieve int door de bits over een bepaalde afstand naar rechts te draaien in de twee-complementvorm van de gegeven waarde. Bij het naar rechts draaien wordt het minst significante bit naar de linkerkant of naar de meest significante positie verplaatst, d.w.z. er vindt cyclische beweging van bits plaats. Negatieve afstand betekent rotatie naar links.
Syntaxis:
public static int rotateRight(int val, int dist)>
Parameters:
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>));> >}> }> |
>
>
Uitgang:
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. byteWaarde() : retourneert een bytewaarde die overeenkomt met dit gehele object.
Syntaxis:
'abc' is in cijfers'
public byte byteValue()>
12. kortewaarde() : retourneert een korte waarde die overeenkomt met dit gehele object.
Syntaxis:
public short shortValue()>
13. intWaarde() : retourneert een int-waarde die overeenkomt met dit gehele object.
Syntaxis:
public int intValue()>
13. langeWaarde() : retourneert een lange waarde die overeenkomt met dit gehele object.
Syntaxis:
public long longValue()>
14. dubbeleWaarde() : retourneert een dubbele waarde die overeenkomt met dit gehele object.
Syntaxis:
public double doubleValue()>
15. floatWaarde() : retourneert een float-waarde die overeenkomt met dit gehele object.
Syntaxis:
public float floatValue()>
16. hashCode() : retourneert de hashcode die overeenkomt met dit gehele object.
Syntaxis:
public int hashCode()>
17. aantal bits() : Retourneert het aantal ingestelde bits in twee-complement van het gegeven gehele getal.
Syntaxis:
public static int bitCount(int i)>
Parameters:
i : int value whose set bits to count>
18. aantalLeadingZeroes() : Retourneert het aantal 0 bits dat voorafgaat aan de hoogste 1 bit in twee-complementvorm van de waarde, d.w.z. als het getal in twee-complementvorm 0000 1010 0000 0000 is, dan retourneert deze functie 4.
Syntaxis:
public static int numberofLeadingZeroes(int i)>
Parameters:
i : int value whose leading zeroes to count in twos complement form>
19. aantalTrailingZeroes() : Retourneert het aantal 0 bits volgend op de laatste 1 bit in twee-complementvorm van de waarde, d.w.z. als het getal in twee-complementvorm 0000 1010 0000 0000 is, dan retourneert deze functie 9.
Syntaxis:
public static int numberofTrailingZeroes(int i)>
Parameters:
i : int value whose trailing zeroes to count in twos complement form>
20. hoogsteEenBit() : Retourneert een waarde met maximaal één bit, op de positie van de hoogste bit in de opgegeven waarde. Geeft 0 terug als de gegeven waarde 0 is, dat wil zeggen als het getal 0000 0000 0000 1111 is, dan retourneert deze functie 0000 0000 0000 1000 (één op zijn hoogst één bit in het gegeven getal)
Syntaxis:
public static int highestOneBit(int i)>
Parameters:
i : int value>
21. LaagsteEenBit() : Retourneert een waarde met maximaal één bit, op de positie van de laagste bit in de gegeven waarde. Geeft 0 terug als de gegeven waarde 0 is, dat wil zeggen als het getal 0000 0000 0000 1111 is, dan retourneert deze functie 0000 0000 0000 0001 (één op zijn hoogst één bit in het gegeven getal)
Syntaxis:
public static int LowestOneBit(int i)>
Parameters:
i : int value>
22. is gelijk aan() : Wordt gebruikt om de gelijkheid van twee Integer-objecten te vergelijken. Deze methode retourneert true als beide objecten dezelfde int-waarde bevatten. Moet alleen worden gebruikt als wordt gecontroleerd op gelijkheid. In alle andere gevallen verdient de CompareTo-methode de voorkeur.
Syntaxis:
public boolean equals(Object obj)>
Parameters:
obj : object to compare with>
23. vergelijkTo() : Wordt gebruikt om twee Integer-objecten te vergelijken op numerieke gelijkheid. Dit moet worden gebruikt bij het vergelijken van twee gehele waarden voor numerieke gelijkheid, omdat er onderscheid zou worden gemaakt tussen kleinere en grotere waarden. Retourneert een waarde kleiner dan 0,0, een waarde groter dan 0 voor kleiner dan, gelijk aan en groter dan.
Syntaxis:
public int compareTo(Integer b)>
Parameters:
b : Integer object to compare with>
24. vergelijk() : Wordt gebruikt om twee primitieve int-waarden te vergelijken voor numerieke gelijkheid. Omdat het een statische methode is, kan deze worden gebruikt zonder dat er een geheel getalobject wordt gemaakt.
Syntaxis:
public static int compare(int x,int y)>
Parameters:
x : int value y : another int value>
25. teken() : retourneert -1 voor negatieve waarden, 0 voor 0 en +1 voor waarden groter dan 0.
Syntaxis:
public static int signum(int val)>
Parameters:
val : int value for which signum is required.>
26. achteruit() : retourneert een primitieve int-waarde die de volgorde van de bits in de twee-complementvorm van de gegeven int-waarde omkeert.
Syntaxis:
public static int reverseBytes(int val)>
Parameters:
val : int value whose bits to reverse in order.>
27. omgekeerdeBytes() : retourneert een primitieve int-waarde waarbij de volgorde van de bytes in de twee-complementvorm van de gegeven int-waarde wordt omgedraaid.
Syntaxis:
public static int reverseBytes(int val)>
Parameters:
val : int value whose bits to reverse in order.>
28. statisch int CompareUnsigned(int x, int y) : deze methode vergelijkt twee int-waarden en behandelt de waarden numeriek als niet-ondertekend.
Syntaxis:
public static int compareUnsigned(int x, int y)>
29. statisch int DivideUnsigned(int deeltal, int deler) : Deze methode retourneert het quotiënt zonder teken van het delen van het eerste argument door het tweede, waarbij elk argument en het resultaat worden geïnterpreteerd als een waarde zonder teken.
Syntaxis:
public static int divideUnsigned(int dividend, int divisor)>
30. statisch int max(int a, int b) : Deze methode retourneert de grootste van twee int-waarden, alsof u Math.max aanroept.
Syntaxis:
public static int max(int a, int b)>
31. statisch int min(int a, int b) : Deze methode retourneert de kleinste van twee int-waarden, alsof u Math.min aanroept.
Syntaxis:
public static int min(int a, int b)>
32. statische int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) : Deze methode parseert het CharSequence-argument als een niet-ondertekende int in de opgegeven radix, beginnend bij de opgegeven beginIndex en zich uitstrekkend tot endIndex – 1.
Syntaxis:
public static int parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix) throws NumberFormatException>
33. statische int parseUnsignedInt(String s) : Deze methode parseert het stringargument als een decimaal geheel getal zonder teken.
Syntaxis:
public static int parseUnsignedInt(String s) throws NumberFormatException>
34. statische int parseUnsignedInt(String s, int radix) : Deze methode parseert het stringargument als een geheel getal zonder teken in de radix die is opgegeven door het tweede argument.
Syntaxis:
public static int parseUnsignedInt(String s, int radix) throws NumberFormatException>
35. statische int restUnsigned(int deeltal, int deler) : Deze methode retourneert de niet-ondertekende rest van het delen van het eerste argument door het tweede, waarbij elk argument en het resultaat worden geïnterpreteerd als een niet-ondertekende waarde.
Syntaxis:
public static int remainderUnsigned(int dividend, int divisor)>
36. statisch int som(int a, int b) : Deze methode telt twee gehele getallen bij elkaar op volgens de + operator.
Syntaxis:
public static int sum(int a, int b)>
37. statisch lang naarUnsignedLong(int x) : Deze methode converteert het argument naar een lang argument door een niet-ondertekende conversie.
Syntaxis:
public static long toUnsignedLong(int x)>
38. statische String toUnsignedString(int i) : Deze methode retourneert een tekenreeksrepresentatie van het argument als een decimale waarde zonder teken.
Syntaxis:
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);> >}> }> |
>
>
Uitgang:
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>
Initialisatie van Integer-wrapperklasse in Java:
Type 1: Direct initialiseren:
Er wordt een constant object van de klasse Integer gemaakt in de ruimte met constanten in het heapgeheugen. Ruimte van constanten: Voor een beter begrip moeten we ons voorstellen dat er enige ruimte is voor constanten in het heap-geheugen.
Voorbeeld:
Integer x = 200; //initializing directly x = 300; //modifying x x = 10; //modifying x again>
Geheel getal x = 200
- De compiler converteert de bovenstaande verklaring naar: Geheel getal x=Geheel getal.waardeOf(200) . Dit staat bekend als Autoboksen . De primitieve gehele waarde 200 wordt omgezet in een object.
(Om Autoboxing & Unboxing te begrijpen, kijk hier: )
- x wijst naar 200, wat aanwezig is in de ruimte van constanten. Zie Afb. 1.

figuur 1
x = 300
- Autoboxing wordt opnieuw uitgevoerd omdat x een Integer-klasseobject is dat rechtstreeks wordt geïnitialiseerd.
- Opmerking: Het direct geïnitialiseerde object(x) kan niet worden gewijzigd omdat het een constante is. Wanneer we proberen het object te wijzigen door naar een nieuwe constante (300) te verwijzen, zal de oude constante (200) aanwezig zijn in het heapgeheugen, maar het object zal naar de nieuwe constante wijzen.
- x wijst naar 300, wat aanwezig is in de ruimte van constanten. Zie Afb. 2.

Fig. 2
x = 10
- Opmerking: Standaard maakt de methode Integer.valueOf() voor de waarden -128 tot 127 geen nieuw exemplaar van Integer. Het retourneert een waarde uit zijn cache.
- x punten 10 die aanwezig is in de cache.

Afb. 3
Als we de volgende keer x = 200 of x=300 toekennen, wijst dit naar de waarde 200 of 300 die al aanwezig is in de ruimte van constanten. Als we aan x andere waarden toekennen dan deze twee waarden, ontstaat er een nieuwe constante.
(Bekijk het onderwerp voor het vergelijken van gehele wrapperklassen voor een beter begrip)
Type 2: Dynamisch initialiseren:
Een Integer-klasseobject dat geen constante is, wordt buiten de ruimte van constanten gemaakt. Het creëert ook een geheel getalconstante binnen de ruimte van constanten. De variabele verwijst naar het Integer-object en niet naar de Integer-constante.
Voorbeeld:
Integer a = new Integer(250); //Initializing dynamically a = 350; //Type 1 initialization>
Geheel getal a = nieuw geheel getal(250)
- 250 wordt gecreëerd binnen en buiten de ruimte van constanten. Variabele ‘a’ wijst naar de waarde die buiten de ruimte van constanten ligt. Zie Afb. 4.

Afb. 4
a = 350;
- Na autoboxing wijst ‘a’ naar 350. Zie Afb. 5.

Afb. 5
Als we de volgende keer a = 250 toekennen, verwijst dit niet naar het object dat al aanwezig is met dezelfde waarde, maar wordt er een nieuw object gemaakt.
Referenties: Officiële Java-documentatie